mirror of
https://git.sr.ht/~rouven/nixos-config
synced 2025-01-19 01:21:39 +01:00
configured sway and swaync
This commit is contained in:
parent
7e1d2412ef
commit
d9c52d3cd1
11 changed files with 411 additions and 258 deletions
2
TODO
2
TODO
|
@ -1,2 +0,0 @@
|
||||||
grimshot for screenshots
|
|
||||||
swaynotificationcenter
|
|
12
flake.lock
12
flake.lock
|
@ -165,11 +165,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1685885003,
|
"lastModified": 1685999310,
|
||||||
"narHash": "sha256-+OB0EvZBfGvnlTGg6mtyUCqkMnUp9DkmRUU4d7BZBVE=",
|
"narHash": "sha256-gaRMZhc7z4KeU/xS3IWv3kC+WhVcAXOLXXGKLe5zn1Y=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "607d8fad96436b134424b9935166a7cd0884003e",
|
"rev": "28614ed7a1e3ace824c122237bdc0e5e0b62c5c3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -185,11 +185,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1685951361,
|
"lastModified": 1686037687,
|
||||||
"narHash": "sha256-Hx9yVkyEjVf5ohiWW2HmSuGgxDaVOqGLMIGSz/HV6f8=",
|
"narHash": "sha256-6jOnzbGk2hM60Se/Mk/TlZm92EHiVoB+kVDMILF6eq8=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "1a4e6e6a4b3272118a51bebb4a45ecd642383209",
|
"rev": "4afeedbd567ca2114f682f14a6de26d4a8188878",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
colors = config.colorScheme.colors;
|
colors = config.colorScheme.colors;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
alpha = if (config.colorScheme.kind == "dark") then 0.0 else 1.0;
|
# alpha = if (config.colorScheme.kind == "dark") then 0.0 else 1.0;
|
||||||
background = colors.base00;
|
background = colors.base00;
|
||||||
foreground = colors.base05;
|
foreground = colors.base05;
|
||||||
regular0 = colors.base02;
|
regular0 = colors.base02;
|
||||||
|
|
|
@ -1,77 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hyprpaper.nix
|
|
||||||
./session.nix
|
|
||||||
./waybar.nix
|
|
||||||
];
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = builtins.readFile ./hyprland.conf; # todo nix config when available
|
|
||||||
recommendedEnvironment = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
GRIM_DEFAULT_DIR = "~/Pictures/Screenshots/";
|
|
||||||
};
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
pulseaudio # installed to have pactl
|
|
||||||
jq
|
|
||||||
libnotify
|
|
||||||
fuzzel
|
|
||||||
wl-clipboard
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
swappy
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.configFile = {
|
|
||||||
"fuzzel/fuzzel.ini".text = ''
|
|
||||||
[main]
|
|
||||||
icon-theme=${config.gtk.iconTheme.name}
|
|
||||||
show-actions=yes
|
|
||||||
width=80
|
|
||||||
terminal=${pkgs.foot}/bin/foot
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
background=${config.colorScheme.colors.base00}ff
|
|
||||||
text=${config.colorScheme.colors.base05}ff
|
|
||||||
match=${config.colorScheme.colors.base08}ff
|
|
||||||
selection=${config.colorScheme.colors.base02}ff
|
|
||||||
selection-text=${config.colorScheme.colors.base04}ff
|
|
||||||
border=${config.colorScheme.colors.base01}ff
|
|
||||||
'';
|
|
||||||
|
|
||||||
"swappy/config".text = ''
|
|
||||||
[Default]
|
|
||||||
save_dir = ~/Pictures/Screenshots/
|
|
||||||
early_exit = true
|
|
||||||
'';
|
|
||||||
"mako/do-not-disturb.sh".text = ''
|
|
||||||
if [[ $(makoctl mode) = 'default' ]];then
|
|
||||||
notify-send 'Enabled Do Not Disturb mode'
|
|
||||||
sleep 3
|
|
||||||
makoctl mode -s do-not-disturb
|
|
||||||
else
|
|
||||||
makoctl mode -s default
|
|
||||||
notify-send 'Disabled Do Not Disturb mode'
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
services.mako = {
|
|
||||||
enable = true;
|
|
||||||
backgroundColor = "#${config.colorScheme.colors.base02}FF";
|
|
||||||
borderRadius = 20;
|
|
||||||
textColor = "#${config.colorScheme.colors.base05}FF";
|
|
||||||
layer = "overlay";
|
|
||||||
defaultTimeout = 10000;
|
|
||||||
extraConfig = ''
|
|
||||||
[urgency=high]
|
|
||||||
background-color=#${config.colorScheme.colors.base08}
|
|
||||||
default-timeout=0
|
|
||||||
[mode=do-not-disturb]
|
|
||||||
invisible=1
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,142 +0,0 @@
|
||||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
|
||||||
monitor=eDP-1, 1920x1080, 0x0, 1
|
|
||||||
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
|
||||||
input {
|
|
||||||
kb_layout = us
|
|
||||||
kb_variant = dvorak-alt-intl
|
|
||||||
|
|
||||||
follow_mouse = 1
|
|
||||||
|
|
||||||
touchpad {
|
|
||||||
natural_scroll = no
|
|
||||||
}
|
|
||||||
|
|
||||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
|
||||||
}
|
|
||||||
|
|
||||||
general {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
|
|
||||||
gaps_in = 5
|
|
||||||
gaps_out = 20
|
|
||||||
border_size = 2
|
|
||||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
|
||||||
col.inactive_border = rgba(595959aa)
|
|
||||||
|
|
||||||
layout = dwindle
|
|
||||||
}
|
|
||||||
|
|
||||||
decoration {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
|
|
||||||
rounding = 10
|
|
||||||
blur = yes
|
|
||||||
blur_size = 4
|
|
||||||
blur_passes = 2
|
|
||||||
blur_new_optimizations = on
|
|
||||||
|
|
||||||
drop_shadow = yes
|
|
||||||
shadow_range = 4
|
|
||||||
shadow_render_power = 3
|
|
||||||
col.shadow = rgba(1a1a1aee)
|
|
||||||
}
|
|
||||||
|
|
||||||
animations {
|
|
||||||
enabled = yes
|
|
||||||
|
|
||||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
|
||||||
|
|
||||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
|
||||||
|
|
||||||
animation = windows, 1, 7, myBezier
|
|
||||||
animation = windowsOut, 1, 7, default, popin 80%
|
|
||||||
animation = border, 1, 10, default
|
|
||||||
animation = fade, 1, 7, default
|
|
||||||
animation = workspaces, 1, 6, default
|
|
||||||
}
|
|
||||||
|
|
||||||
dwindle {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
|
||||||
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
|
||||||
preserve_split = yes # you probably want this
|
|
||||||
}
|
|
||||||
|
|
||||||
master {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
|
||||||
new_is_master = true
|
|
||||||
}
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
|
||||||
$mainMod = SUPER
|
|
||||||
|
|
||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
|
||||||
bind = $mainMod, Return, exec, footclient
|
|
||||||
bind = $mainMod SHIFT, Q, killactive,
|
|
||||||
bind = $mainMod, Space, togglefloating,
|
|
||||||
bind = $mainMod, F, fullscreen, 0 # fullscreen
|
|
||||||
bind = $mainMod, M, fullscreen, 1 # maximize
|
|
||||||
bind = $mainMod SHIFT, F, fakefullscreen, 0
|
|
||||||
bind = $mainMod, O, swapactiveworkspaces, 0 1
|
|
||||||
bind = $mainMod, U, focusurgentorlast
|
|
||||||
bind = ALT, Space, exec, fuzzel
|
|
||||||
|
|
||||||
bind = $mainMod, S, togglesplit, # dwindlr
|
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
|
||||||
bind = $mainMod, H, movefocus, l
|
|
||||||
bind = $mainMod, L, movefocus, r
|
|
||||||
bind = $mainMod, K, movefocus, u
|
|
||||||
bind = $mainMod, J, movefocus, d
|
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
|
||||||
bind = $mainMod, 1, workspace, 1
|
|
||||||
bind = $mainMod, 2, workspace, 2
|
|
||||||
bind = $mainMod, 3, workspace, 3
|
|
||||||
bind = $mainMod, 4, workspace, 4
|
|
||||||
bind = $mainMod, 5, workspace, 5
|
|
||||||
bind = $mainMod, 6, workspace, 6
|
|
||||||
bind = $mainMod, 7, workspace, 7
|
|
||||||
bind = $mainMod, 8, workspace, 8
|
|
||||||
bind = $mainMod, 9, workspace, 9
|
|
||||||
bind = $mainMod, 0, workspace, 10
|
|
||||||
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
|
||||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
|
||||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
|
||||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
|
||||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
|
||||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
|
||||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
|
||||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
|
||||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
|
||||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
|
||||||
|
|
||||||
# Scroll through existing workspaces wiswaylockth mainMod + scroll
|
|
||||||
bind = $mainMod, mouse_down, workspace, e+1
|
|
||||||
bind = $mainMod, mouse_up, workspace, e-1
|
|
||||||
|
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
||||||
bindm = $mainMod, mouse:272, movewindow
|
|
||||||
bindm = $mainMod, mouse:273, resizewindow
|
|
||||||
|
|
||||||
# All the fancy XF86 Keys
|
|
||||||
bind = ,Print, exec, grim -g "$(slurp)" - | wl-copy -t image/png
|
|
||||||
bind = ,XF86Launch2, exec, grim -g "$(slurp)" - | swappy -f -
|
|
||||||
binde = ,XF86MonBrightnessUp, exec, light -A 10
|
|
||||||
binde = ,XF86MonBrightnessDown, exec, light -U 10
|
|
||||||
bind = ,XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
|
|
||||||
bind = ,XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
|
||||||
binde = ,XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
|
|
||||||
binde = ,XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
|
|
||||||
binde = SHIFT, XF86AudioRaiseVolume, exec, pactl set-source-volume @DEFAULT_SOURCE@ +5%
|
|
||||||
binde = SHIFT, XF86AudioLowerVolume, exec, pactl set-source-volume @DEFAULT_SOURCE@ -5%
|
|
||||||
|
|
||||||
# even more fancy stuff (aka abusing XF86 keys)
|
|
||||||
bind = ,XF86Messenger, exec, makoctl dismiss
|
|
||||||
bind = SHIFT ,XF86Messenger, exec, makoctl restore
|
|
||||||
bind = ,XF86Go, exec, makoctl invoke
|
|
||||||
bind = ,Cancel, exec, sh ~/.config/mako/do-not-disturb.sh
|
|
||||||
bind = ,XF86Display, exec, hyprpaper
|
|
||||||
bind = ,XF86Favorites, exec, loginctl lock-session
|
|
||||||
bind = ,XF86PowerOff, exec, wlogout
|
|
|
@ -1,24 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
hyprpaper
|
|
||||||
];
|
|
||||||
xdg.configFile."hypr/hyprpaper.conf".text = ''
|
|
||||||
preload = ${../../../../images/wallpaper.png}
|
|
||||||
wallpaper =eDP-1, ${../../../../images/wallpaper.png}
|
|
||||||
wallpaper =HDMI-A-1, ${../../../../images/wallpaper.png}
|
|
||||||
'';
|
|
||||||
systemd.user.services.hyprpaper = {
|
|
||||||
Install.WantedBy = [ "graphical-session.target" ];
|
|
||||||
Service = {
|
|
||||||
ExecStart = "${pkgs.hyprpaper}/bin/hyprpaper";
|
|
||||||
Restart = "on-failure";
|
|
||||||
};
|
|
||||||
Unit = {
|
|
||||||
After = "graphical-session.target";
|
|
||||||
Description = "Blazingly fast wayland wallpaper utility with IPC controls";
|
|
||||||
Documentation = "https://github.com/hyprwm/hyprpaper";
|
|
||||||
PartOf = "graphical-session.target";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -8,8 +8,12 @@
|
||||||
];
|
];
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = rec {
|
||||||
|
startup = [
|
||||||
|
{
|
||||||
|
command = "${pkgs.swaybg}/bin/swaybg -i ${../../../../images/wallpaper.png}";
|
||||||
|
}
|
||||||
|
];
|
||||||
modifier = "Mod4";
|
modifier = "Mod4";
|
||||||
menu = "${pkgs.fuzzel}/bin/fuzzel";
|
menu = "${pkgs.fuzzel}/bin/fuzzel";
|
||||||
terminal = "${pkgs.foot}/bin/footclient";
|
terminal = "${pkgs.foot}/bin/footclient";
|
||||||
|
@ -24,9 +28,32 @@
|
||||||
xkb_variant = "dvorak-alt-intl";
|
xkb_variant = "dvorak-alt-intl";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
keybindings =
|
||||||
|
lib.mkOptionDefault {
|
||||||
|
"Mod1+space" = "exec ${menu}";
|
||||||
|
"Print" = "exec ${pkgs.sway-contrib.grimshot}/bin/grimshot copy area";
|
||||||
|
"XF86Launch2" = "exec ${pkgs.sway-contrib.grimshot}/bin/grimshot save area - | ${pkgs.swappy}/bin/swappy -f -";
|
||||||
|
"XF86MonBrightnessUp" = "exec ${pkgs.light}/bin/light -A 10";
|
||||||
|
"XF86MonBrightnessDown" = "exec ${pkgs.light}/bin/light -U 10";
|
||||||
|
# audio controls
|
||||||
|
"XF86AudioMute" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||||||
|
"XF86AudioMicMute" = "exec ${pkgs.pulseaudio}/bin/pactl set-source-mute @DEFAULT_SOURCE@ toggle";
|
||||||
|
"XF86AudioRaiseVolume" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ +5%";
|
||||||
|
"XF86AudioLowerVolume" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ -5%";
|
||||||
|
"Shift+XF86AudioRaiseVolume" = "exec ${pkgs.pulseaudio}/bin/pactl set-source-volume @DEFAULT_SOURCE@ +5%";
|
||||||
|
"Shift+XF86AudioLowerVolume" = "exec ${pkgs.pulseaudio}/bin/pactl set-source-volume @DEFAULT_SOURCE@ -5%";
|
||||||
|
|
||||||
|
"XF86Favorites" = "exec ${pkgs.systemd}/bin/loginctl lock-session";
|
||||||
|
"XF86PowerOff" = "exec ${pkgs.wlogout}/bin/wlogout";
|
||||||
|
|
||||||
|
"XF86Messenger" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client --toggle-panel";
|
||||||
|
"Cancel" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client --hide-latest";
|
||||||
|
"Shift+Cancel" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client --cloes-all";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
|
"swaync".source = ./swaync;
|
||||||
"fuzzel/fuzzel.ini".text = ''
|
"fuzzel/fuzzel.ini".text = ''
|
||||||
[main]
|
[main]
|
||||||
icon-theme=${config.gtk.iconTheme.name}
|
icon-theme=${config.gtk.iconTheme.name}
|
||||||
|
@ -42,5 +69,10 @@
|
||||||
selection-text=${config.colorScheme.colors.base04}ff
|
selection-text=${config.colorScheme.colors.base04}ff
|
||||||
border=${config.colorScheme.colors.base01}ff
|
border=${config.colorScheme.colors.base01}ff
|
||||||
'';
|
'';
|
||||||
|
"swappy/config".text = ''
|
||||||
|
[Default]
|
||||||
|
save_dir = ~/Pictures/Screenshots/
|
||||||
|
early_exit = true
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
swaylock-effects
|
swaylock-effects
|
||||||
wlogout
|
wl-clipboard
|
||||||
|
swaynotificationcenter
|
||||||
];
|
];
|
||||||
|
|
||||||
services.swayidle = {
|
services.swayidle = {
|
||||||
|
@ -15,6 +16,20 @@
|
||||||
{ timeout = 300; command = "${pkgs.swaylock-effects}/bin/swaylock"; }
|
{ timeout = 300; command = "${pkgs.swaylock-effects}/bin/swaylock"; }
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
systemd.user.services.swaync = {
|
||||||
|
Install.WantedBy = [ "graphical-session.target" ];
|
||||||
|
Service = {
|
||||||
|
ExecStart = "${pkgs.swaynotificationcenter}/bin/swaync";
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
Unit = {
|
||||||
|
After = "graphical-session.target";
|
||||||
|
Description = "Simple notification daemon with a GUI built for Sway";
|
||||||
|
Documentation = "https://github.com/ErikReider/SwayNotificationCenter";
|
||||||
|
PartOf = "graphical-session.target";
|
||||||
|
};
|
||||||
|
environment.PATH = "${pkgs.coreutils}/bin";
|
||||||
|
};
|
||||||
|
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
"swaylock/config".text = ''
|
"swaylock/config".text = ''
|
||||||
|
@ -30,7 +45,7 @@
|
||||||
'';
|
'';
|
||||||
|
|
||||||
"wlogout/style.css".text = ''
|
"wlogout/style.css".text = ''
|
||||||
* {
|
* {
|
||||||
background-image: none;
|
background-image: none;
|
||||||
}
|
}
|
||||||
window {
|
window {
|
||||||
|
|
54
users/rouven/modules/sway/swaync/config.json
Normal file
54
users/rouven/modules/sway/swaync/config.json
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
{
|
||||||
|
"$schema": "/etc/xdg/swaync/configSchema.json",
|
||||||
|
|
||||||
|
"positionX": "right",
|
||||||
|
"positionY": "top",
|
||||||
|
"control-center-margin-top": 20,
|
||||||
|
"control-center-margin-bottom": 0,
|
||||||
|
"control-center-margin-right": 20,
|
||||||
|
"control-center-margin-left": 0,
|
||||||
|
"control-center-width": 500,
|
||||||
|
"control-center-height": 600,
|
||||||
|
"fit-to-screen": false,
|
||||||
|
|
||||||
|
"layer": "top",
|
||||||
|
"cssPriority": "user",
|
||||||
|
"notification-icon-size": 64,
|
||||||
|
"notification-body-image-height": 100,
|
||||||
|
"notification-body-image-width": 200,
|
||||||
|
"timeout": 10,
|
||||||
|
"timeout-low": 5,
|
||||||
|
"timeout-critical": 0,
|
||||||
|
"notification-window-width": 500,
|
||||||
|
"keyboard-shortcuts": true,
|
||||||
|
"image-visibility": "when-available",
|
||||||
|
"transition-time": 200,
|
||||||
|
"hide-on-clear": true,
|
||||||
|
"hide-on-action": true,
|
||||||
|
"script-fail-notify": true,
|
||||||
|
|
||||||
|
"widgets": [
|
||||||
|
"title",
|
||||||
|
"dnd",
|
||||||
|
"mpris",
|
||||||
|
"notifications"
|
||||||
|
],
|
||||||
|
"widget-config": {
|
||||||
|
"title": {
|
||||||
|
"text": "Notifications",
|
||||||
|
"clear-all-button": true,
|
||||||
|
"button-text": "Clear All"
|
||||||
|
},
|
||||||
|
"dnd": {
|
||||||
|
"text": "Do Not Disturb"
|
||||||
|
},
|
||||||
|
"label": {
|
||||||
|
"max-lines": 5,
|
||||||
|
"text": "Label Text"
|
||||||
|
},
|
||||||
|
"mpris": {
|
||||||
|
"image-size": 96,
|
||||||
|
"image-radius": 12
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
297
users/rouven/modules/sway/swaync/style.css
Normal file
297
users/rouven/modules/sway/swaync/style.css
Normal file
|
@ -0,0 +1,297 @@
|
||||||
|
/* Dracula Theme */
|
||||||
|
@define-color foreground rgb(248, 248, 242);
|
||||||
|
@define-color background rgb(40, 42, 54);
|
||||||
|
@define-color background-alpha rgba(40, 42, 54, 0.8);
|
||||||
|
@define-color accent rgba(189, 147, 249, 0.8);
|
||||||
|
@define-color current-line rgb(68, 71, 90);
|
||||||
|
@define-color comment rgb(98, 114, 164);
|
||||||
|
|
||||||
|
.notification-row {
|
||||||
|
transition: all 200ms ease;
|
||||||
|
outline: none;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
margin-right: 13px;
|
||||||
|
margin-top: 8px;
|
||||||
|
border-radius: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .notification-row:focus,
|
||||||
|
.control-center .notification-row:hover {
|
||||||
|
opacity: 1;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row:focus .notification,
|
||||||
|
.notification-row:hover .notification {
|
||||||
|
box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.5);
|
||||||
|
border: 0px solid @accent;
|
||||||
|
background: @current-line;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .notification {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .notification-row {
|
||||||
|
opacity: 0.5;
|
||||||
|
margin: -5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification {
|
||||||
|
transition: all 200ms ease;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin: 12px 7px 0px 7px;
|
||||||
|
box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.5);
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Uncomment to enable specific urgency colors
|
||||||
|
.low {
|
||||||
|
background: yellow;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.normal {
|
||||||
|
background: green;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.critical {
|
||||||
|
background: red;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
.notification-content {
|
||||||
|
background: transparent;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button {
|
||||||
|
background: @current-line;
|
||||||
|
color: @foreground;
|
||||||
|
text-shadow: none;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 100%;
|
||||||
|
margin-top: 17px;
|
||||||
|
margin-right: 10px;
|
||||||
|
box-shadow: none;
|
||||||
|
border: none;
|
||||||
|
min-width: 24px;
|
||||||
|
min-height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button:hover {
|
||||||
|
box-shadow: none;
|
||||||
|
background: @comment;
|
||||||
|
transition: all 0.15s ease-in-out;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-default-action,
|
||||||
|
.notification-action {
|
||||||
|
padding: 4px;
|
||||||
|
margin: 0;
|
||||||
|
box-shadow: none;
|
||||||
|
background: @current-line;
|
||||||
|
border: 2px solid @accent;
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-default-action:hover,
|
||||||
|
.notification-action:hover {
|
||||||
|
-gtk-icon-effect: none;
|
||||||
|
background: @current-line;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-default-action {
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* When alternative actions are visible */
|
||||||
|
.notification-default-action:not(:only-child) {
|
||||||
|
border-bottom-left-radius: 0px;
|
||||||
|
border-bottom-right-radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-action {
|
||||||
|
border-radius: 0px;
|
||||||
|
border-top: none;
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* add bottom border radius to eliminate clipping */
|
||||||
|
.notification-action:first-child {
|
||||||
|
border-bottom-left-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-action:last-child {
|
||||||
|
border-bottom-right-radius: 8px;
|
||||||
|
border-right: 1px solid @accent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image {
|
||||||
|
}
|
||||||
|
|
||||||
|
.body-image {
|
||||||
|
margin-top: 6px;
|
||||||
|
background-color: @foreground;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.summary {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
background: transparent;
|
||||||
|
color: @foreground;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
background: transparent;
|
||||||
|
color: @foreground;
|
||||||
|
text-shadow: none;
|
||||||
|
margin-right: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.body {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: normal;
|
||||||
|
background: transparent;
|
||||||
|
color: @foreground;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The "Notifications" and "Do Not Disturb" text widget */
|
||||||
|
.top-action-title {
|
||||||
|
color: @foreground;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-clear-all {
|
||||||
|
color: @foreground;
|
||||||
|
text-shadow: none;
|
||||||
|
background: @background;
|
||||||
|
border: 2px solid @accent;
|
||||||
|
box-shadow: none;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-clear-all:hover {
|
||||||
|
background: @background;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-dnd {
|
||||||
|
border-radius: 8px;
|
||||||
|
background: @background;
|
||||||
|
border: 1px solid @accent;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-dnd:checked {
|
||||||
|
background: @accent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-dnd slider {
|
||||||
|
background: @background;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center {
|
||||||
|
background: @background-alpha;
|
||||||
|
border-radius: 10px;
|
||||||
|
background-clip: border-box;
|
||||||
|
padding: 4px;
|
||||||
|
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.7),
|
||||||
|
0 2px 6px 2px rgba(0, 0, 0, 0.3);
|
||||||
|
color: @foreground;
|
||||||
|
border: 2px solid @accent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-list {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Window behind control center and on all other monitors */
|
||||||
|
.blank-window {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*** Widgets ***/
|
||||||
|
|
||||||
|
/* Title widget */
|
||||||
|
.widget-title {
|
||||||
|
margin: 8px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
.widget-title > button {
|
||||||
|
font-size: initial;
|
||||||
|
color: @foreground;
|
||||||
|
text-shadow: none;
|
||||||
|
background: @background;
|
||||||
|
border: 2px solid @accent;
|
||||||
|
box-shadow: none;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.widget-title > button:hover {
|
||||||
|
background: @background;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* DND widget */
|
||||||
|
.widget-dnd {
|
||||||
|
margin: 8px;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
.widget-dnd > switch {
|
||||||
|
font-size: initial;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: @background;
|
||||||
|
border: 1px solid @accent;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.widget-dnd > switch:checked {
|
||||||
|
background: @accent;
|
||||||
|
}
|
||||||
|
.widget-dnd > switch slider {
|
||||||
|
background: @background;
|
||||||
|
border-radius: 8px;
|
||||||
|
border: 1px solid @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Label widget */
|
||||||
|
.widget-label {
|
||||||
|
margin: 8px;
|
||||||
|
}
|
||||||
|
.widget-label > label {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mpris widget */
|
||||||
|
.widget-mpris {
|
||||||
|
/* The parent to all players */
|
||||||
|
}
|
||||||
|
.widget-mpris-player {
|
||||||
|
padding: 8px;
|
||||||
|
margin: 8px;
|
||||||
|
background-color: @background;
|
||||||
|
border-radius: 8px;
|
||||||
|
border: 2px solid @accent;
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
.widget-mpris-title {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
.widget-mpris-subtitle {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
{ self, config, pkgs, ... }:
|
{ self, config, ... }:
|
||||||
{
|
{
|
||||||
# systemd.user.services.waybar.Service.Environment = "PATH=${pkgs.hyprland}/bin";
|
# systemd.user.services.waybar.Service.Environment = "PATH=${pkgs.hyprland}/bin";
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
|
|
Loading…
Reference in a new issue