some more refinement
This commit is contained in:
		| @@ -15,14 +15,16 @@ | ||||
|     settings = { | ||||
|       "$mod" = "SUPER"; | ||||
|       "$browser" = "firefox"; | ||||
|       "$launcher-cmd" = "wofi --show drun -n"; | ||||
|       "$ide" = "code"; | ||||
|  | ||||
|       # Global bindings | ||||
|       bind = [ | ||||
|         # Launch applications | ||||
|         "$mod, space, exec, walker" | ||||
|         "$mod, space, exec, $launcher-cmd" | ||||
|         "$mod, return, exec, kitty" | ||||
|         "$mod, b, exec, $browser" | ||||
|         "$mod, s, exec, code" | ||||
|         "$mod, s, exec, $ide" | ||||
|         "$mod, e, exec, nautilus" | ||||
|  | ||||
|  | ||||
| @@ -51,7 +53,8 @@ | ||||
|       ]; | ||||
|  | ||||
|       exec-once = [ | ||||
|         "${pkgs.hyprpaper}/bin/hyprpaper" | ||||
|         # "${pkgs.hyprpaper}/bin/hyprpaper" | ||||
|         # hyprpaper is handled as its own service | ||||
|         "${pkgs.waybar}/bin/waybar" | ||||
|       ]; | ||||
|  | ||||
| @@ -70,7 +73,7 @@ | ||||
|  | ||||
|       input = { | ||||
|         kb_layout = "de"; | ||||
|         kb_options = "caps:control"; | ||||
|         kb_options = "caps:escape"; | ||||
|         numlock_by_default = true; | ||||
|         # mouse input should be unchanged | ||||
|         natural_scroll = false; | ||||
| @@ -98,14 +101,7 @@ | ||||
|           # color = "#000000"; | ||||
|         }; | ||||
|  | ||||
|         # set this on a per-program basis | ||||
|         # blur = { | ||||
|         #   enabled = true; | ||||
|         #   size = 4; | ||||
|         #   passes = 2; | ||||
|         #   new_optimizations = true; | ||||
|         #   ignore_opacity = true; | ||||
|         # }; | ||||
|         # blur is set on a per-program basis | ||||
|         layerrule = [ | ||||
|           "blur, wofi" | ||||
|           "ignorezero, wofi" | ||||
| @@ -130,22 +126,6 @@ | ||||
|     ]; | ||||
|   }; | ||||
|  | ||||
|   programs.walker = { | ||||
|     enable = true; | ||||
|     runAsService = true; | ||||
|  | ||||
|     # All options from the config.json can be used here. | ||||
|     config = { | ||||
|       search.placeholder = "Search"; | ||||
|       ui.fullscreen = true; | ||||
|       list = { | ||||
|         height = 200; | ||||
|       }; | ||||
|       websearch.prefix = "?"; | ||||
|       switcher.prefix = "/"; | ||||
|     }; | ||||
|   }; | ||||
|  | ||||
|  | ||||
|   programs.hyprlock = { | ||||
|     enable = true; | ||||
|   | ||||
| @@ -1,15 +1,60 @@ | ||||
| { | ||||
|   pkgs, | ||||
|   lib, | ||||
|  ... | ||||
| }: | ||||
| {  | ||||
| with lib; let | ||||
|   wallpapers = builtins.path { path = ../../../wallpapers; }; | ||||
|  | ||||
|   wallpaperBashArray = "(\"${strings.concatStrings (strings.intersperse "\" \"" (map (wallpaper: "${wallpaper}") wallpapers))}\")"; | ||||
|   wallpaperRandomizer = pkgs.writeShellScriptBin "wallpaperRandomizer" '' | ||||
|     wallpapers=${wallpaperBashArray} | ||||
|     rand=$[$RANDOM % ''${#wallpapers[@]}] | ||||
|     wallpaper=''${wallpapers[$rand]} | ||||
|  | ||||
|     monitor=(`hyprctl monitors | grep Monitor | awk '{print $2}'`) | ||||
|     hyprctl hyprpaper unload all | ||||
|     hyprctl hyprpaper preload $wallpaper | ||||
|     for m in ''${monitor[@]}; do | ||||
|       hyprctl hyprpaper wallpaper "$m,$wallpaper" | ||||
|     done | ||||
|   ''; | ||||
| in { | ||||
|   home.packages = [wallpaperRandomizer]; | ||||
|  | ||||
|   services.hyprpaper = { | ||||
|     enable = true; | ||||
|     settings = { | ||||
|       # TODO: implement this correctly | ||||
|       # preload = builtins.attrValues (builtins.readFile ../../../wallpapers/luke-chesser-eICUFSeirc0-unsplash.jpg); | ||||
|       # wallpaper = [ | ||||
|       #   ", ${builtins.attrValues (builtins.readFile ../../../wallpapers/luke-chesser-eICUFSeirc0-unsplash.jpg)}" | ||||
|       # ]; | ||||
|  | ||||
|     # settings = { | ||||
|     #   ipc = "on"; | ||||
|     #   splash = false; | ||||
|     #   splash_offset = 2.0; | ||||
|     # }; | ||||
|   }; | ||||
|  | ||||
|   systemd.user = { | ||||
|     services.wallpaperRandomizer = { | ||||
|       Install = {WantedBy = ["graphical-session.target"];}; | ||||
|  | ||||
|       Unit = { | ||||
|         Description = "Set random desktop background using hyprpaper"; | ||||
|         After = ["graphical-session-pre.target"]; | ||||
|         PartOf = ["graphical-session.target"]; | ||||
|       }; | ||||
|  | ||||
|       Service = { | ||||
|         Type = "oneshot"; | ||||
|         ExecStart = "${wallpaperRandomizer}/bin/wallpaperRandomizer"; | ||||
|         IOSchedulingClass = "idle"; | ||||
|       }; | ||||
|     }; | ||||
|  | ||||
|     timers.wallpaperRandomizer = { | ||||
|       Unit = {Description = "Set random desktop background using hyprpaper on an interval";}; | ||||
|  | ||||
|       Timer = {OnUnitActiveSec = "6h";}; | ||||
|  | ||||
|       Install = {WantedBy = ["timers.target"];}; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
| @@ -9,10 +9,16 @@ | ||||
|             cursor_trail = 3; | ||||
|         }; | ||||
|         keybindings = { | ||||
|             # TODO - they should not overwrite default behaviour | ||||
|             # "ctrl+c" = "copy_to_clipboard"; | ||||
|             # "ctrl+v" = "paste_from_clipboard"; | ||||
|             # copy and paste | ||||
|             "ctrl+shift+c" = "copy_to_clipboard"; | ||||
|             "ctrl+shift+v" = "paste_from_clipboard"; | ||||
|             # zoom | ||||
|             "ctrl+shift+plus" = "increase_font_size"; | ||||
|             "ctrl+shift+minus" = "decrease_font_size"; | ||||
|             "ctrl+shift+0" = "reset_font_size"; | ||||
|             # tabs | ||||
|             "ctrl+shift+t" = "new_tab"; | ||||
|             "ctrl+shift+w" = "close_tab"; | ||||
|         }; | ||||
|     }; | ||||
|  | ||||
| } | ||||
|   | ||||
							
								
								
									
										8
									
								
								modules/home-manager/kubectl.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								modules/home-manager/kubectl.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| {pkgs, ...}:  | ||||
| { | ||||
|     home.packages = [ | ||||
|         pkgs.kubie | ||||
|         pkgs.kubectl | ||||
|     ]; | ||||
|      | ||||
| } | ||||
							
								
								
									
										108
									
								
								modules/home-manager/wofi.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								modules/home-manager/wofi.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,108 @@ | ||||
| { config, pkgs, lib, ... }: | ||||
| let | ||||
|   accent = "#ffffff"; | ||||
|   background = "#000000"; | ||||
|   background-alt = "#000000"; | ||||
|   foreground = "##ffffff"; | ||||
|   font = "Roboto"; | ||||
|   rounding = 5; | ||||
|   font-size = 25; | ||||
| in { | ||||
|  | ||||
|   home.packages = with pkgs; [ wofi-emoji ]; | ||||
|  | ||||
|   programs.wofi = { | ||||
|     enable = true; | ||||
|  | ||||
|     settings = { | ||||
|       allow_markup = true; | ||||
|       width = 450; | ||||
|       show = "drun"; | ||||
|       prompt = "Apps"; | ||||
|       normal_window = true; | ||||
|       layer = "top"; | ||||
|       term = "foot"; | ||||
|       height = "305px"; | ||||
|       orientation = "vertical"; | ||||
|       halign = "fill"; | ||||
|       line_wrap = "off"; | ||||
|       dynamic_lines = false; | ||||
|       allow_images = true; | ||||
|       image_size = 24; | ||||
|       exec_search = false; | ||||
|       hide_search = false; | ||||
|       parse_search = false; | ||||
|       insensitive = true; | ||||
|       hide_scroll = true; | ||||
|       no_actions = true; | ||||
|       sort_order = "default"; | ||||
|       gtk_dark = true; | ||||
|       filter_rate = 100; | ||||
|       key_expand = "Tab"; | ||||
|       key_exit = "Escape"; | ||||
|     }; | ||||
|  | ||||
|     style = lib.mkForce | ||||
|       # css | ||||
|       '' | ||||
|         * { | ||||
|           font-family: "${font}"; | ||||
|           font-weight: 500; | ||||
|           font-size: ${toString font-size}px; | ||||
|         } | ||||
|  | ||||
|         #window { | ||||
|           background-color: ${background}; | ||||
|           color: ${foreground}; | ||||
|           border-radius: ${toString rounding}px; | ||||
|         } | ||||
|  | ||||
|         #outer-box { | ||||
|           padding: 20px; | ||||
|         } | ||||
|  | ||||
|         #input { | ||||
|           background-color: ${background-alt}; | ||||
|           border: 0px solid ${accent}; | ||||
|           color: ${foreground}; | ||||
|           padding: 8px 12px; | ||||
|         } | ||||
|  | ||||
|         #scroll { | ||||
|           margin-top: 20px; | ||||
|         } | ||||
|  | ||||
|         #inner-box {} | ||||
|  | ||||
|         #img { | ||||
|           padding-right: 8px; | ||||
|         } | ||||
|  | ||||
|         #text { | ||||
|           color: ${foreground}; | ||||
|         } | ||||
|  | ||||
|         #text:selected { | ||||
|           color: ${foreground}; | ||||
|         } | ||||
|  | ||||
|         #entry { | ||||
|           padding: 6px; | ||||
|         } | ||||
|  | ||||
|         #entry:selected { | ||||
|           background-color: ${accent}; | ||||
|           color: ${foreground}; | ||||
|         } | ||||
|  | ||||
|         #unselected {} | ||||
|  | ||||
|         #selected {} | ||||
|  | ||||
|         #input, | ||||
|         #entry:selected { | ||||
|           border-radius: ${toString rounding}px; | ||||
|         } | ||||
|       ''; | ||||
|   }; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user