309 current 1970-01-01 01:00:00 23.11.20240514.9ddcaff 6.1.90 *
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								assets/bg1080.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/bg1080.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.2 MiB | 
							
								
								
									
										
											BIN
										
									
								
								assets/bg1080vert.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/bg1080vert.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 3.1 MiB | 
							
								
								
									
										
											BIN
										
									
								
								assets/bg4k.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/bg4k.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 7.2 MiB | 
| @@ -7,14 +7,8 @@ | |||||||
|     ../../modules/home |     ../../modules/home | ||||||
|   ]; |   ]; | ||||||
|  |  | ||||||
|   kanshi.enable = true; |   sway.enable = true; | ||||||
|   kanshi.laptop = true; |   sway.laptop = true; | ||||||
|  |  | ||||||
|   waybar.enable = true; |  | ||||||
|   waybar.squeekboard = true; |  | ||||||
|   waybar.mpd = true; |  | ||||||
|   waybar.battery = true; |  | ||||||
|   waybar.backlight = true; |  | ||||||
|  |  | ||||||
|   # Home Manager needs a bit of information about you and the paths it should |   # Home Manager needs a bit of information about you and the paths it should | ||||||
|   # manage. |   # manage. | ||||||
|   | |||||||
| @@ -4,6 +4,8 @@ | |||||||
|   lib, |   lib, | ||||||
|   ... |   ... | ||||||
| }: let | }: let | ||||||
|  |   cfg = config.sway; | ||||||
|  |  | ||||||
|   rotate_lisgd = pkgs.writeShellScriptBin "rotate_lisgd" '' |   rotate_lisgd = pkgs.writeShellScriptBin "rotate_lisgd" '' | ||||||
|     # PREV_ORIENTATION and ORIENTATION are given by rot8 |     # PREV_ORIENTATION and ORIENTATION are given by rot8 | ||||||
|  |  | ||||||
| @@ -47,310 +49,213 @@ | |||||||
|     gsettings set $gnome_schema gtk-theme 'Dracula' |     gsettings set $gnome_schema gtk-theme 'Dracula' | ||||||
|   ''; |   ''; | ||||||
| in { | in { | ||||||
|   imports = [./kanshi.nix ./waybar.nix]; |   imports = [./kanshi.nix ./waybar.nix ./theme.nix]; | ||||||
|  |  | ||||||
|   home.packages = with pkgs; [ |   options = { | ||||||
|     swaylock # screen locking |     sway.enable = lib.mkEnableOption "sway, a lightweight window manager"; | ||||||
|     swayidle # automatic screen locking after system idle time |     sway.laptop = lib.mkEnableOption "laptop config"; | ||||||
|     foot # terminal |   }; | ||||||
|     keepassxc # used for secrets instead of gnome-keyring |  | ||||||
|   ]; |  | ||||||
|  |  | ||||||
|   wayland.windowManager.sway = { |   config = lib.mkIf cfg.enable { | ||||||
|     enable = true; |     sway.kanshi.enable = lib.mkDefault true; | ||||||
|     systemd = { |     sway.waybar.enable = lib.mkDefault true; | ||||||
|  |     sway.theming.enable = lib.mkDefault true; | ||||||
|  |     sway.waybar.battery = lib.mkDefault cfg.laptop; | ||||||
|  |     sway.waybar.backlight = lib.mkDefault cfg.laptop; | ||||||
|  |     sway.waybar.squeekboard = lib.mkDefault cfg.laptop; | ||||||
|  |  | ||||||
|  |     home.packages = with pkgs; [ | ||||||
|  |       swaylock # screen locking | ||||||
|  |       swayidle # automatic screen locking after system idle time | ||||||
|  |       foot # terminal | ||||||
|  |       keepassxc # used for secrets instead of gnome-keyring | ||||||
|  |     ]; | ||||||
|  |  | ||||||
|  |     wayland.windowManager.sway = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       xdgAutostart = false; |       systemd = { | ||||||
|     }; |         enable = true; | ||||||
|  |         xdgAutostart = false; | ||||||
|     wrapperFeatures = { |  | ||||||
|       gtk = true; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     config = { |  | ||||||
|       output = let |  | ||||||
|         bgdir = "~/Documents/Blender/desktop background Informatiker"; |  | ||||||
|         bg1080 = bgdir + "/render 1080p new color.png"; |  | ||||||
|         bg1080vert = bgdir + "/render 1080p hochkant new.png"; |  | ||||||
|         bg4k = bgdir + "/render 4K new color.png"; |  | ||||||
|       in { |  | ||||||
|         eDP-1 = { |  | ||||||
|           bg = "'${bg1080}' fit"; |  | ||||||
|         }; |  | ||||||
|         HDMI-A-1 = { |  | ||||||
|           bg = "'${bg4k}' fit"; |  | ||||||
|         }; |  | ||||||
|         DP-3 = { |  | ||||||
|           bg = "'${bg1080}' fit"; |  | ||||||
|         }; |  | ||||||
|         DP-4 = { |  | ||||||
|           bg = "'${bg1080}' fit"; |  | ||||||
|         }; |  | ||||||
|         DP-5 = { |  | ||||||
|           bg = "'${bg1080vert}' fit"; |  | ||||||
|         }; |  | ||||||
|         DP-6 = { |  | ||||||
|           bg = "'${bg1080}' fit"; |  | ||||||
|         }; |  | ||||||
|         DP-7 = { |  | ||||||
|           bg = "'${bg1080vert}' fit"; |  | ||||||
|         }; |  | ||||||
|       }; |       }; | ||||||
|  |  | ||||||
|       input = { |       wrapperFeatures = { | ||||||
|         "*" = { |         gtk = true; | ||||||
|           xkb_layout = "de"; |  | ||||||
|           xkb_options = "caps:ctrl_modifier"; |  | ||||||
|           xkb_numlock = "enable"; |  | ||||||
|         }; |  | ||||||
|         "type:touchpad" = { |  | ||||||
|           tap = "enable"; |  | ||||||
|           natural_scroll = "enable"; |  | ||||||
|         }; |  | ||||||
|         # map laptop touchscreen to laptop display |  | ||||||
|         "1267:11676:ELAN2513:00_04F3:2D9C" = { |  | ||||||
|           map_to_output = "'AU Optronics 0x4B2D Unknown'"; |  | ||||||
|         }; |  | ||||||
|         # map laptop stylus to laptop display |  | ||||||
|         "1267:11676:ELAN2513:00_04F3:2D9C_Stylus" = { |  | ||||||
|           map_to_output = "'AU Optronics 0x4B2D Unknown'"; |  | ||||||
|         }; |  | ||||||
|       }; |       }; | ||||||
|  |  | ||||||
|       modifier = "Mod4"; |       config = { | ||||||
|       keybindings = let |         output = let | ||||||
|         modifier = config.wayland.windowManager.sway.config.modifier; |           bgdir = ../../../assets; | ||||||
|       in |           bg1080 = bgdir + "/bg1080.png"; | ||||||
|         lib.mkOptionDefault { |           bg1080vert = bgdir + "/bg1080vert.png"; | ||||||
|           # special workspaces |           bg4k = bgdir + "/bg4k.png"; | ||||||
|           "${modifier}+1" = "workspace main"; |         in { | ||||||
|           "${modifier}+2" = "workspace term"; |           eDP-1 = { | ||||||
|           "${modifier}+3" = "workspace msg"; |             bg = "'${bg1080}' fit"; | ||||||
|           "${modifier}+4" = "workspace music"; |           }; | ||||||
|           "${modifier}+Shift+1" = "move container to workspace main"; |           HDMI-A-1 = { | ||||||
|           "${modifier}+Shift+2" = "move container to workspace term"; |             bg = "'${bg4k}' fit"; | ||||||
|           "${modifier}+Shift+3" = "move container to workspace msg"; |           }; | ||||||
|           "${modifier}+Shift+4" = "move container to workspace music"; |           DP-3 = { | ||||||
|  |             bg = "'${bg1080}' fit"; | ||||||
|           # screen capture |           }; | ||||||
|           "${modifier}+Print" = ''exec ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.wl-clipboard}/bin/wl-copy''; |           DP-4 = { | ||||||
|           "${modifier}+Shift+Print" = ''exec ${pkgs.wf-recorder}/bin/wf-recorder -g "$(${pkgs.slurp}/bin/slurp)" -f "$HOME/Videos/screencapture_$(${pkgs.coreutils}/bin/date +%F-%T).mp4"''; |             bg = "'${bg1080}' fit"; | ||||||
|  |           }; | ||||||
|           # brightness |           DP-5 = { | ||||||
|           "XF86MonBrightnessDown" = "exec ${pkgs.light}/bin/light -U 5"; |             bg = "'${bg1080vert}' fit"; | ||||||
|           "XF86MonBrightnessUp" = "exec ${pkgs.light}/bin/light -A 5"; |           }; | ||||||
|           # volume |           DP-6 = { | ||||||
|           "XF86AudioRaiseVolume" = "exec '${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ +1%'"; |             bg = "'${bg1080}' fit"; | ||||||
|           "XF86AudioLowerVolume" = "exec '${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ -1%'"; |           }; | ||||||
|           "XF86AudioMute" = "exec '${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle'"; |           DP-7 = { | ||||||
|  |             bg = "'${bg1080vert}' fit"; | ||||||
|           # custom pause mode similar to typical system shutdown menus |           }; | ||||||
|           "${modifier}+F12" = "mode pause-break"; |  | ||||||
|         }; |         }; | ||||||
|       menu = "${pkgs.nwg-launchers}/bin/nwggrid -client"; |  | ||||||
|  |  | ||||||
|       # use foot as default terminal |         input = { | ||||||
|       terminal = "foot"; |           "*" = { | ||||||
|       assigns = { |             xkb_layout = "de"; | ||||||
|         "main" = [{app_id = "firefox";}]; |             xkb_options = "caps:ctrl_modifier"; | ||||||
|         "term" = [{app_id = "foot-startup";}]; |             xkb_numlock = "enable"; | ||||||
|         "msg" = [{title = "\\[Locked\\] - KeePassXC$";}]; |           }; | ||||||
|       }; |           "type:touchpad" = { | ||||||
|       bars = []; |             tap = "enable"; | ||||||
|  |             natural_scroll = "enable"; | ||||||
|  |           }; | ||||||
|  |           # map laptop touchscreen to laptop display | ||||||
|  |           "1267:11676:ELAN2513:00_04F3:2D9C" = { | ||||||
|  |             map_to_output = "'AU Optronics 0x4B2D Unknown'"; | ||||||
|  |           }; | ||||||
|  |           # map laptop stylus to laptop display | ||||||
|  |           "1267:11676:ELAN2513:00_04F3:2D9C_Stylus" = { | ||||||
|  |             map_to_output = "'AU Optronics 0x4B2D Unknown'"; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|       fonts = { |         modifier = "Mod4"; | ||||||
|         names = ["FiraCode Nerd Font"]; |         keybindings = let | ||||||
|         size = 11.0; |           modifier = config.wayland.windowManager.sway.config.modifier; | ||||||
|  |         in | ||||||
|  |           lib.mkOptionDefault { | ||||||
|  |             # special workspaces | ||||||
|  |             "${modifier}+1" = "workspace main"; | ||||||
|  |             "${modifier}+2" = "workspace term"; | ||||||
|  |             "${modifier}+3" = "workspace msg"; | ||||||
|  |             "${modifier}+4" = "workspace music"; | ||||||
|  |             "${modifier}+Shift+1" = "move container to workspace main"; | ||||||
|  |             "${modifier}+Shift+2" = "move container to workspace term"; | ||||||
|  |             "${modifier}+Shift+3" = "move container to workspace msg"; | ||||||
|  |             "${modifier}+Shift+4" = "move container to workspace music"; | ||||||
|  |  | ||||||
|  |             # screen capture | ||||||
|  |             "${modifier}+Print" = ''exec ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.wl-clipboard}/bin/wl-copy''; | ||||||
|  |             "${modifier}+Shift+Print" = ''exec ${pkgs.wf-recorder}/bin/wf-recorder -g "$(${pkgs.slurp}/bin/slurp)" -f "$HOME/Videos/screencapture_$(${pkgs.coreutils}/bin/date +%F-%T).mp4"''; | ||||||
|  |  | ||||||
|  |             # brightness | ||||||
|  |             "XF86MonBrightnessDown" = "exec ${pkgs.light}/bin/light -U 5"; | ||||||
|  |             "XF86MonBrightnessUp" = "exec ${pkgs.light}/bin/light -A 5"; | ||||||
|  |             # volume | ||||||
|  |             "XF86AudioRaiseVolume" = "exec '${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ +1%'"; | ||||||
|  |             "XF86AudioLowerVolume" = "exec '${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ -1%'"; | ||||||
|  |             "XF86AudioMute" = "exec '${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle'"; | ||||||
|  |  | ||||||
|  |             # custom pause mode similar to typical system shutdown menus | ||||||
|  |             "${modifier}+F12" = "mode pause-break"; | ||||||
|  |           }; | ||||||
|  |         menu = "${pkgs.nwg-launchers}/bin/nwggrid -client"; | ||||||
|  |  | ||||||
|  |         # use foot as default terminal | ||||||
|  |         terminal = "foot"; | ||||||
|  |         assigns = { | ||||||
|  |           "main" = [{app_id = "firefox";}]; | ||||||
|  |           "term" = [{app_id = "foot-startup";}]; | ||||||
|  |           "msg" = [{title = "\\[Locked\\] - KeePassXC$";}]; | ||||||
|  |         }; | ||||||
|  |         bars = []; | ||||||
|  |  | ||||||
|  |         fonts = { | ||||||
|  |           names = ["FiraCode Nerd Font"]; | ||||||
|  |           size = 11.0; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |         modes = { | ||||||
|  |           pause-break = { | ||||||
|  |             e = "exec --no-startup-id swaymsg exit, mode default"; | ||||||
|  |             s = "exec --no-startup-id ${pkgs.dash}/bin/dash -c '${pkgs.swaylock}/bin/swaylock & systemctl suspend-then-hibernate', mode default"; | ||||||
|  |             r = "exec --no-startup-id systemctl reboot"; | ||||||
|  |             End = "exec --no-startup-id systemctl poweroff"; | ||||||
|  |             Return = "mode default"; | ||||||
|  |             Escape = "mode default"; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |         startup = [ | ||||||
|  |           {command = "${dbus-sway-environment}/bin/dbus-sway-environment";} | ||||||
|  |           {command = "${configure-gtk}/bin/configure-gtk";} | ||||||
|  |           {command = "${pkgs.squeekboard}/bin/squeekboard";} | ||||||
|  |           {command = "${pkgs.rot8}/bin/rot8 -n 10 -h ${rotate_lisgd}/bin/rotate_lisgd";} | ||||||
|  |           {command = "${rotate_lisgd}/bin/rotate_lisgd";} | ||||||
|  |           {command = "${pkgs.nwg-launchers}/bin/nwggrid-server -fp";} | ||||||
|  |           {command = "${pkgs.keepassxc}/bin/keepassxc";} | ||||||
|  |           {command = "${pkgs.foot}/bin/foot -a foot-startup";} | ||||||
|  |           {command = "${pkgs.networkmanagerapplet}/bin/nm-applet";} | ||||||
|  |         ]; | ||||||
|  |  | ||||||
|  |         defaultWorkspace = "main"; | ||||||
|  |         workspaceAutoBackAndForth = true; | ||||||
|  |         workspaceOutputAssign = [ | ||||||
|  |           { | ||||||
|  |             workspace = "main"; | ||||||
|  |             output = ["DP-3" "DP-4" "DP-6" "HDMI-A-1" "eDP-1"]; | ||||||
|  |           } | ||||||
|  |           { | ||||||
|  |             workspace = "term"; | ||||||
|  |             output = ["DP-5" "DP-4" "DP-7" "eDP-1"]; | ||||||
|  |           } | ||||||
|  |           { | ||||||
|  |             workspace = "msg"; | ||||||
|  |             output = ["eDP-1"]; | ||||||
|  |           } | ||||||
|  |           { | ||||||
|  |             workspace = "music"; | ||||||
|  |             output = ["eDP-1"]; | ||||||
|  |           } | ||||||
|  |           { | ||||||
|  |             workspace = "5"; | ||||||
|  |             output = ["DP-3" "DP-4" "DP-6" "HDMI-A-1" "eDP-1"]; | ||||||
|  |           } | ||||||
|  |         ]; | ||||||
|       }; |       }; | ||||||
|  |  | ||||||
|       modes = { |       extraConfig = '' | ||||||
|         pause-break = { |         bindswitch --reload --locked lid:on exec "[ $(${pkgs.sway}/bin/swaymsg -t get_outputs | ${pkgs.jq}/bin/jq '. | length') -gt 1 ] && ${pkgs.sway}/bin/swaymsg output eDP-1 disable" | ||||||
|           e = "exec --no-startup-id swaymsg exit, mode default"; |         bindswitch --reload --locked lid:off output eDP-1 enable | ||||||
|           s = "exec --no-startup-id ${pkgs.dash}/bin/dash -c '${pkgs.swaylock}/bin/swaylock & systemctl suspend-then-hibernate', mode default"; |       ''; | ||||||
|           r = "exec --no-startup-id systemctl reboot"; |  | ||||||
|           End = "exec --no-startup-id systemctl poweroff"; |  | ||||||
|           Return = "mode default"; |  | ||||||
|           Escape = "mode default"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|  |  | ||||||
|       startup = [ |  | ||||||
|         {command = "${dbus-sway-environment}/bin/dbus-sway-environment";} |  | ||||||
|         {command = "${configure-gtk}/bin/configure-gtk";} |  | ||||||
|         {command = "${pkgs.squeekboard}/bin/squeekboard";} |  | ||||||
|         {command = "${pkgs.rot8}/bin/rot8 -n 10 -h ${rotate_lisgd}/bin/rotate_lisgd";} |  | ||||||
|         {command = "${rotate_lisgd}/bin/rotate_lisgd";} |  | ||||||
|         {command = "${pkgs.nwg-launchers}/bin/nwggrid-server -fp";} |  | ||||||
|         {command = "${pkgs.keepassxc}/bin/keepassxc";} |  | ||||||
|         {command = "${pkgs.foot}/bin/foot -a foot-startup";} |  | ||||||
|         {command = "${pkgs.networkmanagerapplet}/bin/nm-applet";} |  | ||||||
|       ]; |  | ||||||
|  |  | ||||||
|       defaultWorkspace = "main"; |  | ||||||
|       workspaceAutoBackAndForth = true; |  | ||||||
|       workspaceOutputAssign = [ |  | ||||||
|         { |  | ||||||
|           workspace = "main"; |  | ||||||
|           output = ["DP-3" "DP-4" "DP-6" "HDMI-A-1" "eDP-1"]; |  | ||||||
|         } |  | ||||||
|         { |  | ||||||
|           workspace = "term"; |  | ||||||
|           output = ["DP-5" "DP-4" "DP-7" "eDP-1"]; |  | ||||||
|         } |  | ||||||
|         { |  | ||||||
|           workspace = "msg"; |  | ||||||
|           output = ["eDP-1"]; |  | ||||||
|         } |  | ||||||
|         { |  | ||||||
|           workspace = "music"; |  | ||||||
|           output = ["eDP-1"]; |  | ||||||
|         } |  | ||||||
|         { |  | ||||||
|           workspace = "5"; |  | ||||||
|           output = ["DP-3" "DP-4" "DP-6" "HDMI-A-1" "eDP-1"]; |  | ||||||
|         } |  | ||||||
|       ]; |  | ||||||
|  |  | ||||||
|       colors = { |  | ||||||
|         background = "#00000000"; |  | ||||||
|         focused = { |  | ||||||
|           border = "#00FFEE"; |  | ||||||
|           background = "#4477AA"; |  | ||||||
|           text = "#F0F0F0"; |  | ||||||
|           childBorder = "#00FFEE"; |  | ||||||
|           indicator = "#00AA88"; |  | ||||||
|         }; |  | ||||||
|         focusedInactive = { |  | ||||||
|           border = "#626262"; |  | ||||||
|           background = "#444444"; |  | ||||||
|           text = "#F0F0F0"; |  | ||||||
|           childBorder = "#626262"; |  | ||||||
|           indicator = "#00AA88"; |  | ||||||
|         }; |  | ||||||
|         placeholder = { |  | ||||||
|           border = "#313131"; |  | ||||||
|           background = "#222222"; |  | ||||||
|           text = "#F0F0F0"; |  | ||||||
|           childBorder = "#313131"; |  | ||||||
|           indicator = "#005544"; |  | ||||||
|         }; |  | ||||||
|         unfocused = { |  | ||||||
|           border = "#313131"; |  | ||||||
|           background = "#222222"; |  | ||||||
|           text = "#F0F0F0"; |  | ||||||
|           childBorder = "#313131"; |  | ||||||
|           indicator = "#00AA88"; |  | ||||||
|         }; |  | ||||||
|         urgent = { |  | ||||||
|           border = "#FF3131"; |  | ||||||
|           background = "#882222"; |  | ||||||
|           text = "#F0F0F0"; |  | ||||||
|           childBorder = "#FF3131"; |  | ||||||
|           indicator = "#00AA88"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|  |  | ||||||
|       focus.mouseWarping = true; |  | ||||||
|  |  | ||||||
|       gaps = { |  | ||||||
|         inner = 5; |  | ||||||
|         smartGaps = true; |  | ||||||
|         smartBorders = "no_gaps"; |  | ||||||
|       }; |  | ||||||
|       window.titlebar = false; |  | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     extraConfig = '' |     services.mako = { | ||||||
|       bindswitch --reload --locked lid:on exec "[ $(${pkgs.sway}/bin/swaymsg -t get_outputs | ${pkgs.jq}/bin/jq '. | length') -gt 1 ] && ${pkgs.sway}/bin/swaymsg output eDP-1 disable" |       enable = true; | ||||||
|       bindswitch --reload --locked lid:off output eDP-1 enable |       actions = true; | ||||||
|     ''; |       anchor = "top-right"; | ||||||
|   }; |  | ||||||
|  |  | ||||||
|   # Theming |       backgroundColor = "#313131"; | ||||||
|   gtk = { |       borderColor = "#00FFEE"; | ||||||
|     enable = true; |       progressColor = "#338833"; | ||||||
|     cursorTheme = { |       textColor = "#e0e0e0"; | ||||||
|       package = pkgs.capitaine-cursors; |       extraConfig = '' | ||||||
|       name = "capitaine-cursors-white"; |         [urgency=low] | ||||||
|       size = 24; |         border-color=#008877 | ||||||
|  |       ''; | ||||||
|  |  | ||||||
|  |       borderRadius = 10; | ||||||
|  |       borderSize = 2; | ||||||
|  |       height = 100; | ||||||
|  |       width = 400; | ||||||
|  |  | ||||||
|  |       defaultTimeout = 10000; # ms | ||||||
|  |       font = "FiraCode Nerd Font 11"; | ||||||
|  |       icons = true; | ||||||
|  |       markup = true; | ||||||
|     }; |     }; | ||||||
|     iconTheme = { |  | ||||||
|       package = pkgs.whitesur-icon-theme; |  | ||||||
|       name = "WhiteSur-dark"; |  | ||||||
|     }; |  | ||||||
|     theme = { |  | ||||||
|       package = pkgs.whitesur-gtk-theme; |  | ||||||
|       name = "WhiteSur-Dark"; |  | ||||||
|     }; |  | ||||||
|     gtk3.extraConfig = { |  | ||||||
|       gtk-dialogs-use-header = false; |  | ||||||
|       gtk-cursor-theme-size = 0; |  | ||||||
|       gtk-toolbar-style = "GTK_TOOLBAR_BOTH_HORIZ"; |  | ||||||
|       gtk-toolbar-icon-style = "GTK_ICON_SIZE_LARGE_TOOLBAR"; |  | ||||||
|       gtk-button-images = 0; |  | ||||||
|       gtk-menu-images = 0; |  | ||||||
|       gtk-enable-event-sounds = 0; |  | ||||||
|       gtk-enable-input-feedback-sounds = 1; |  | ||||||
|       gtk-xft-antialias = 1; |  | ||||||
|       gtk-xft-hinting = 1; |  | ||||||
|       gtk-xft-hintstyle = "hintslight"; |  | ||||||
|       gtk-xft-rgba = "none"; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
|   home.pointerCursor = { |  | ||||||
|     package = pkgs.capitaine-cursors; |  | ||||||
|     name = "capitaine-cursors-white"; |  | ||||||
|     size = 24; |  | ||||||
|     x11.enable = true; |  | ||||||
|     x11.defaultCursor = "capitaine-cursors-white"; |  | ||||||
|   }; |  | ||||||
|   xsession.enable = true; |  | ||||||
|  |  | ||||||
|   home.file."tofi" = { |  | ||||||
|     enable = true; |  | ||||||
|     target = ".config/tofi/config"; |  | ||||||
|     text = '' |  | ||||||
|       # fullscreen theming |  | ||||||
|       width = 100% |  | ||||||
|       height = 100% |  | ||||||
|       border-width = 0 |  | ||||||
|       outline-width = 0 |  | ||||||
|       padding-top = 32 |  | ||||||
|       result-spacing = 25 |  | ||||||
|       font = FiraCode Nerd Font |  | ||||||
|       background-color = #000D |  | ||||||
|       text-color = #00FFEE |  | ||||||
|       selection-color = #EEFF00 |  | ||||||
|       hint-font = false |  | ||||||
|  |  | ||||||
|       # search behavior |  | ||||||
|       history = true |  | ||||||
|       fuzzy-match = true |  | ||||||
|     ''; |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
|   services.mako = { |  | ||||||
|     enable = true; |  | ||||||
|     actions = true; |  | ||||||
|     anchor = "top-right"; |  | ||||||
|  |  | ||||||
|     backgroundColor = "#313131"; |  | ||||||
|     borderColor = "#00FFEE"; |  | ||||||
|     progressColor = "#338833"; |  | ||||||
|     textColor = "#e0e0e0"; |  | ||||||
|     extraConfig = '' |  | ||||||
|       [urgency=low] |  | ||||||
|       border-color=#008877 |  | ||||||
|     ''; |  | ||||||
|  |  | ||||||
|     borderRadius = 10; |  | ||||||
|     borderSize = 2; |  | ||||||
|     height = 100; |  | ||||||
|     width = 400; |  | ||||||
|  |  | ||||||
|     defaultTimeout = 10000; # ms |  | ||||||
|     font = "FiraCode Nerd Font 11"; |  | ||||||
|     icons = true; |  | ||||||
|     markup = true; |  | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -4,11 +4,11 @@ | |||||||
|   pkgs, |   pkgs, | ||||||
|   ... |   ... | ||||||
| }: let | }: let | ||||||
|   cfg = config.kanshi; |   cfg = config.sway.kanshi; | ||||||
| in { | in { | ||||||
|   options = { |   options = { | ||||||
|     kanshi.enable = lib.mkEnableOption "kanshi, a dynamic display recognizer"; |     sway.kanshi.enable = lib.mkEnableOption "kanshi, a dynamic display recognizer"; | ||||||
|     kanshi.laptop = lib.mkEnableOption "laptop workspaces"; |     sway.kanshi.laptop = lib.mkEnableOption "laptop workspaces"; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|   | |||||||
							
								
								
									
										103
									
								
								modules/home/sway/theme.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								modules/home/sway/theme.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,103 @@ | |||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   config, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   cfg = config.sway.theming; | ||||||
|  | in { | ||||||
|  |   options = { | ||||||
|  |     sway.theming.enable = lib.mkEnableOption "theming for sway"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   config = lib.mkIf cfg.enable { | ||||||
|  |     wayland.windowManager.sway.config = { | ||||||
|  |       colors = { | ||||||
|  |         background = "#00000000"; | ||||||
|  |         focused = { | ||||||
|  |           border = "#00FFEE"; | ||||||
|  |           background = "#4477AA"; | ||||||
|  |           text = "#F0F0F0"; | ||||||
|  |           childBorder = "#00FFEE"; | ||||||
|  |           indicator = "#00AA88"; | ||||||
|  |         }; | ||||||
|  |         focusedInactive = { | ||||||
|  |           border = "#626262"; | ||||||
|  |           background = "#444444"; | ||||||
|  |           text = "#F0F0F0"; | ||||||
|  |           childBorder = "#626262"; | ||||||
|  |           indicator = "#00AA88"; | ||||||
|  |         }; | ||||||
|  |         placeholder = { | ||||||
|  |           border = "#313131"; | ||||||
|  |           background = "#222222"; | ||||||
|  |           text = "#F0F0F0"; | ||||||
|  |           childBorder = "#313131"; | ||||||
|  |           indicator = "#005544"; | ||||||
|  |         }; | ||||||
|  |         unfocused = { | ||||||
|  |           border = "#313131"; | ||||||
|  |           background = "#222222"; | ||||||
|  |           text = "#F0F0F0"; | ||||||
|  |           childBorder = "#313131"; | ||||||
|  |           indicator = "#00AA88"; | ||||||
|  |         }; | ||||||
|  |         urgent = { | ||||||
|  |           border = "#FF3131"; | ||||||
|  |           background = "#882222"; | ||||||
|  |           text = "#F0F0F0"; | ||||||
|  |           childBorder = "#FF3131"; | ||||||
|  |           indicator = "#00AA88"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       focus.mouseWarping = true; | ||||||
|  |  | ||||||
|  |       gaps = { | ||||||
|  |         inner = 5; | ||||||
|  |         smartGaps = true; | ||||||
|  |         smartBorders = "no_gaps"; | ||||||
|  |       }; | ||||||
|  |       window.titlebar = false; | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |     gtk = { | ||||||
|  |       enable = true; | ||||||
|  |       cursorTheme = { | ||||||
|  |         package = pkgs.capitaine-cursors; | ||||||
|  |         name = "capitaine-cursors-white"; | ||||||
|  |         size = 24; | ||||||
|  |       }; | ||||||
|  |       iconTheme = { | ||||||
|  |         package = pkgs.whitesur-icon-theme; | ||||||
|  |         name = "WhiteSur-dark"; | ||||||
|  |       }; | ||||||
|  |       theme = { | ||||||
|  |         package = pkgs.whitesur-gtk-theme; | ||||||
|  |         name = "WhiteSur-Dark"; | ||||||
|  |       }; | ||||||
|  |       gtk3.extraConfig = { | ||||||
|  |         gtk-dialogs-use-header = false; | ||||||
|  |         gtk-cursor-theme-size = 0; | ||||||
|  |         gtk-toolbar-style = "GTK_TOOLBAR_BOTH_HORIZ"; | ||||||
|  |         gtk-toolbar-icon-style = "GTK_ICON_SIZE_LARGE_TOOLBAR"; | ||||||
|  |         gtk-button-images = 0; | ||||||
|  |         gtk-menu-images = 0; | ||||||
|  |         gtk-enable-event-sounds = 0; | ||||||
|  |         gtk-enable-input-feedback-sounds = 1; | ||||||
|  |         gtk-xft-antialias = 1; | ||||||
|  |         gtk-xft-hinting = 1; | ||||||
|  |         gtk-xft-hintstyle = "hintslight"; | ||||||
|  |         gtk-xft-rgba = "none"; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |     home.pointerCursor = { | ||||||
|  |       package = pkgs.capitaine-cursors; | ||||||
|  |       name = "capitaine-cursors-white"; | ||||||
|  |       size = 24; | ||||||
|  |       x11.enable = true; | ||||||
|  |       x11.defaultCursor = "capitaine-cursors-white"; | ||||||
|  |     }; | ||||||
|  |     xsession.enable = true; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @@ -4,7 +4,7 @@ | |||||||
|   pkgs, |   pkgs, | ||||||
|   ... |   ... | ||||||
| }: let | }: let | ||||||
|   cfg = config.waybar; |   cfg = config.sway.waybar; | ||||||
|  |  | ||||||
|   schema = "org.gnome.desktop.a11y.applications"; |   schema = "org.gnome.desktop.a11y.applications"; | ||||||
|   key = "screen-keyboard-enabled"; |   key = "screen-keyboard-enabled"; | ||||||
| @@ -26,11 +26,11 @@ | |||||||
|   ''; |   ''; | ||||||
| in { | in { | ||||||
|   options = { |   options = { | ||||||
|     waybar.enable = lib.mkEnableOption "waybar, a status bar for wayland compositors"; |     sway.waybar.enable = lib.mkEnableOption "waybar, a status bar for wayland compositors"; | ||||||
|     waybar.squeekboard = lib.mkEnableOption "squeekboard"; |     sway.waybar.squeekboard = lib.mkEnableOption "squeekboard"; | ||||||
|     waybar.mpd = lib.mkEnableOption "mpd"; |     sway.waybar.mpd = lib.mkEnableOption "mpd"; | ||||||
|     waybar.battery = lib.mkEnableOption "battery"; |     sway.waybar.battery = lib.mkEnableOption "battery"; | ||||||
|     waybar.backlight = lib.mkEnableOption "backlight"; |     sway.waybar.backlight = lib.mkEnableOption "backlight"; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user