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 | ||||
|   ]; | ||||
|  | ||||
|   kanshi.enable = true; | ||||
|   kanshi.laptop = true; | ||||
|  | ||||
|   waybar.enable = true; | ||||
|   waybar.squeekboard = true; | ||||
|   waybar.mpd = true; | ||||
|   waybar.battery = true; | ||||
|   waybar.backlight = true; | ||||
|   sway.enable = true; | ||||
|   sway.laptop = true; | ||||
|  | ||||
|   # Home Manager needs a bit of information about you and the paths it should | ||||
|   # manage. | ||||
|   | ||||
| @@ -4,6 +4,8 @@ | ||||
|   lib, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = config.sway; | ||||
|  | ||||
|   rotate_lisgd = pkgs.writeShellScriptBin "rotate_lisgd" '' | ||||
|     # PREV_ORIENTATION and ORIENTATION are given by rot8 | ||||
|  | ||||
| @@ -47,310 +49,213 @@ | ||||
|     gsettings set $gnome_schema gtk-theme 'Dracula' | ||||
|   ''; | ||||
| in { | ||||
|   imports = [./kanshi.nix ./waybar.nix]; | ||||
|   imports = [./kanshi.nix ./waybar.nix ./theme.nix]; | ||||
|  | ||||
|   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 | ||||
|   ]; | ||||
|   options = { | ||||
|     sway.enable = lib.mkEnableOption "sway, a lightweight window manager"; | ||||
|     sway.laptop = lib.mkEnableOption "laptop config"; | ||||
|   }; | ||||
|  | ||||
|   wayland.windowManager.sway = { | ||||
|     enable = true; | ||||
|     systemd = { | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     sway.kanshi.enable = lib.mkDefault true; | ||||
|     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; | ||||
|       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"; | ||||
|         }; | ||||
|       systemd = { | ||||
|         enable = true; | ||||
|         xdgAutostart = false; | ||||
|       }; | ||||
|  | ||||
|       input = { | ||||
|         "*" = { | ||||
|           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'"; | ||||
|         }; | ||||
|       wrapperFeatures = { | ||||
|         gtk = true; | ||||
|       }; | ||||
|  | ||||
|       modifier = "Mod4"; | ||||
|       keybindings = let | ||||
|         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"; | ||||
|       config = { | ||||
|         output = let | ||||
|           bgdir = ../../../assets; | ||||
|           bg1080 = bgdir + "/bg1080.png"; | ||||
|           bg1080vert = bgdir + "/bg1080vert.png"; | ||||
|           bg4k = bgdir + "/bg4k.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"; | ||||
|           }; | ||||
|         }; | ||||
|       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 = []; | ||||
|         input = { | ||||
|           "*" = { | ||||
|             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'"; | ||||
|           }; | ||||
|         }; | ||||
|  | ||||
|       fonts = { | ||||
|         names = ["FiraCode Nerd Font"]; | ||||
|         size = 11.0; | ||||
|         modifier = "Mod4"; | ||||
|         keybindings = let | ||||
|           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 = { | ||||
|         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"]; | ||||
|         } | ||||
|       ]; | ||||
|  | ||||
|       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 = '' | ||||
|         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" | ||||
|         bindswitch --reload --locked lid:off output eDP-1 enable | ||||
|       ''; | ||||
|     }; | ||||
|  | ||||
|     extraConfig = '' | ||||
|       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" | ||||
|       bindswitch --reload --locked lid:off output eDP-1 enable | ||||
|     ''; | ||||
|   }; | ||||
|     services.mako = { | ||||
|       enable = true; | ||||
|       actions = true; | ||||
|       anchor = "top-right"; | ||||
|  | ||||
|   # Theming | ||||
|   gtk = { | ||||
|     enable = true; | ||||
|     cursorTheme = { | ||||
|       package = pkgs.capitaine-cursors; | ||||
|       name = "capitaine-cursors-white"; | ||||
|       size = 24; | ||||
|       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; | ||||
|     }; | ||||
|     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, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = config.kanshi; | ||||
|   cfg = config.sway.kanshi; | ||||
| in { | ||||
|   options = { | ||||
|     kanshi.enable = lib.mkEnableOption "kanshi, a dynamic display recognizer"; | ||||
|     kanshi.laptop = lib.mkEnableOption "laptop workspaces"; | ||||
|     sway.kanshi.enable = lib.mkEnableOption "kanshi, a dynamic display recognizer"; | ||||
|     sway.kanshi.laptop = lib.mkEnableOption "laptop workspaces"; | ||||
|   }; | ||||
|  | ||||
|   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, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = config.waybar; | ||||
|   cfg = config.sway.waybar; | ||||
|  | ||||
|   schema = "org.gnome.desktop.a11y.applications"; | ||||
|   key = "screen-keyboard-enabled"; | ||||
| @@ -26,11 +26,11 @@ | ||||
|   ''; | ||||
| in { | ||||
|   options = { | ||||
|     waybar.enable = lib.mkEnableOption "waybar, a status bar for wayland compositors"; | ||||
|     waybar.squeekboard = lib.mkEnableOption "squeekboard"; | ||||
|     waybar.mpd = lib.mkEnableOption "mpd"; | ||||
|     waybar.battery = lib.mkEnableOption "battery"; | ||||
|     waybar.backlight = lib.mkEnableOption "backlight"; | ||||
|     sway.waybar.enable = lib.mkEnableOption "waybar, a status bar for wayland compositors"; | ||||
|     sway.waybar.squeekboard = lib.mkEnableOption "squeekboard"; | ||||
|     sway.waybar.mpd = lib.mkEnableOption "mpd"; | ||||
|     sway.waybar.battery = lib.mkEnableOption "battery"; | ||||
|     sway.waybar.backlight = lib.mkEnableOption "backlight"; | ||||
|   }; | ||||
|  | ||||
|   config = lib.mkIf cfg.enable { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user