reorganised options
This commit is contained in:
		
							parent
							
								
									bf3bb961f3
								
							
						
					
					
						commit
						0b5941f31d
					
				
					 17 changed files with 389 additions and 458 deletions
				
			
		|  | @ -17,7 +17,14 @@ | |||
|     laser.enable = true; | ||||
|     windowManager = "niri-session"; | ||||
|     wm.niri.enable = true; | ||||
|     hyprland.enable = false; | ||||
|     fuzzel.enable = true; | ||||
|     hyprlock.enable = true; | ||||
|     hyprpaper.enable = true; | ||||
|     hypridle.enable = true; | ||||
|     mako.enable = true; | ||||
|     waybar.enable = true; | ||||
|     wlogout.enable = true; | ||||
|     utils.enable = true; | ||||
|   }; | ||||
| 
 | ||||
|   common.syncthing = { | ||||
|  |  | |||
|  | @ -2,8 +2,9 @@ | |||
| { | ||||
| 
 | ||||
|   imports = [ | ||||
|     ./hyprland.nix | ||||
|     ./niri.nix | ||||
|     ./river.nix | ||||
|     ./waybar.nix | ||||
|     ./options.nix | ||||
|     ./wlroots_utils.nix | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
|  | @ -260,5 +260,11 @@ lib.mkIf config.desktop.hyprland.enable { | |||
| 
 | ||||
|       }; | ||||
|     }; | ||||
|     home.packages = [ | ||||
|       (pkgs.writeShellScriptBin "hyprexit" '' | ||||
|         ${pkgs.hyprland}/bin/hyprctl dispatch exit | ||||
|         ${pkgs.systemd}/bin/loginctl terminate-user willifan | ||||
|       '') | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
|  | @ -3,15 +3,11 @@ | |||
|   options = { | ||||
|     desktop = { | ||||
|       fuzzel.enable = lib.mkOption { | ||||
|         default = config.desktop.enable; | ||||
|         type = lib.types.bool; | ||||
|       }; | ||||
|       hyprexit.enable = lib.mkOption { | ||||
|         default = config.desktop.enable; | ||||
|         default = false; | ||||
|         type = lib.types.bool; | ||||
|       }; | ||||
|       hypridle.enable = lib.mkOption { | ||||
|         default = config.desktop.enable; | ||||
|         default = false; | ||||
|         type = lib.types.bool; | ||||
|       }; | ||||
| 
 | ||||
|  | @ -36,24 +32,29 @@ | |||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|       waybar.enable = lib.mkOption { | ||||
|         default = false; | ||||
|         type = lib.types.bool; | ||||
|       }; | ||||
| 
 | ||||
|       hyprlock.enable = lib.mkOption { | ||||
|         default = config.desktop.enable; | ||||
|         default = false; | ||||
|         type = lib.types.bool; | ||||
|       }; | ||||
|       hyprpaper.enable = lib.mkOption { | ||||
|         default = config.desktop.enable; | ||||
|         default = false; | ||||
|         type = lib.types.bool; | ||||
|       }; | ||||
|       mako.enable = lib.mkOption { | ||||
|         default = config.desktop.enable; | ||||
|         default = false; | ||||
|         type = lib.types.bool; | ||||
|       }; | ||||
|       utils.enable = lib.mkOption { | ||||
|         default = config.desktop.enable; | ||||
|         default = false; | ||||
|         type = lib.types.bool; | ||||
|       }; | ||||
|       wlogout.enable = lib.mkOption { | ||||
|         default = config.desktop.enable; | ||||
|         default = false; | ||||
|         type = lib.types.bool; | ||||
|       }; | ||||
|     }; | ||||
|  | @ -1,19 +0,0 @@ | |||
| { lib, config, ... }: | ||||
| lib.mkIf config.desktop.wm.river.enable { | ||||
|   home-manager.users.willifan = { | ||||
|     wayland.windowManager.river = { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         map = { | ||||
|           normal = { | ||||
|             "Super Q" = "spawn 'kitty'"; | ||||
|             "Super R" = "spawn 'fuzzel'"; | ||||
|             "Super E" = "spawn 'thunar'"; | ||||
| 
 | ||||
|             "Super C" = "close"; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,153 +0,0 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| let | ||||
|   icons = fetchTarball { | ||||
|     url = "https://files.huwe.mooo.com/waybar.tar.gz"; | ||||
|     sha256 = "0h5r8r7vscm6yv25kgyzx5y325n5ri78n28vmdvgmysp351drm57"; | ||||
|   }; | ||||
| in | ||||
| lib.mkIf config.desktop.wm.niri.enable { | ||||
|   home-manager.users.willifan = { | ||||
|     programs.waybar = { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         mainBar = { | ||||
|           layer = "top"; | ||||
|           position = "top"; | ||||
|           height = 25; | ||||
|           output = [ | ||||
|             "eDP-1" | ||||
|           ]; | ||||
|           modules-left = [ "clock" "mpris" ]; | ||||
|           modules-center = [ "niri/workspaces" ]; | ||||
|           modules-right = [ "tray" "group/ressources" "group/peripherals" "group/wireless" "group/power" ]; | ||||
| 
 | ||||
|           "group/ressources" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "group/cpu" "group/memory" ]; | ||||
|           }; | ||||
|           "group/peripherals" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "group/volume" "group/backlight" ]; | ||||
|           }; | ||||
|           "group/wireless" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "group/networking" "group/bluetooth" ]; | ||||
|           }; | ||||
|           "group/power" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "group/battery" "image#power" ]; | ||||
|           }; | ||||
| 
 | ||||
| 
 | ||||
|           "clock" = { | ||||
|             interval = 1; | ||||
|             format = "{:%H:%M:%S}"; | ||||
|           }; | ||||
|           "mpris" = { | ||||
|             format = ""; | ||||
|             format-playing = "{dynamic}"; | ||||
|             dynamic-order = [ "title" "artist" "album" "position" "length" ]; | ||||
|             dynamic-len = 30;  | ||||
|           }; | ||||
|           "niri/workspaces" = { | ||||
|             all-outputs = true; | ||||
|           }; | ||||
| 
 | ||||
|           "group/cpu" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#cpu" "cpu" ]; | ||||
|           }; | ||||
|           "image#cpu" = { | ||||
|             path = "${icons}/cpu.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "cpu" = { | ||||
|             format = "{usage}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/memory" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#memory" "memory" ]; | ||||
|           }; | ||||
|           "image#memory" = { | ||||
|             path = "${icons}/ram.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "memory" = { | ||||
|             format = "{percentage}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/volume" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#volume" "wireplumber" ]; | ||||
|           }; | ||||
|           "image#volume" = { | ||||
|             path = "${icons}/volume.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "wireplumber" = { | ||||
|             format = "{volume}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/backlight" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#backlight" "backlight" ]; | ||||
|           }; | ||||
|           "image#backlight" = { | ||||
|             path = "${icons}/brightness.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "backlight" = { | ||||
|             format = "{percent}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/networking" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#networking" "network" ]; | ||||
|           }; | ||||
|           "image#networking" = { | ||||
|             path = "${icons}/wifiHigh.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "network" = { | ||||
|             format = "{signalStrength}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/bluetooth" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#bluetooth" "bluetooth" ]; | ||||
|           }; | ||||
|           "image#bluetooth" = { | ||||
|             path = "${icons}/bluetooth.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "bluetooth" = { | ||||
|             format = "{status}"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/battery" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#battery" "battery" ]; | ||||
|           }; | ||||
|           "image#battery" = { | ||||
|             path = "${icons}/battery.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "battery" = { | ||||
|             format = "{capacity}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "image#power" = { | ||||
|             path = "${icons}/power.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|       systemd = { | ||||
|         enable = true; | ||||
|       }; | ||||
| 
 | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										360
									
								
								modules/home-manager/desktop/compositors/wlroots_utils.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										360
									
								
								modules/home-manager/desktop/compositors/wlroots_utils.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,360 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| let | ||||
|   icons = fetchTarball { | ||||
|     url = "https://files.huwe.mooo.com/waybar.tar.gz"; | ||||
|     sha256 = "0h5r8r7vscm6yv25kgyzx5y325n5ri78n28vmdvgmysp351drm57"; | ||||
|   }; | ||||
| in | ||||
| { | ||||
|   home-manager.users.willifan = { | ||||
|     home.packages = lib.mkIf config.desktop.utils.enable [ | ||||
| 
 | ||||
|       pkgs.hyprpicker | ||||
|       pkgs.hyprcursor | ||||
| 
 | ||||
|       pkgs.grim | ||||
|       pkgs.slurp | ||||
|       pkgs.wl-clipboard | ||||
|       pkgs.playerctl | ||||
| 
 | ||||
|       pkgs.dconf | ||||
| 
 | ||||
|       pkgs.papirus-icon-theme | ||||
|     ]; | ||||
| 
 | ||||
|     programs.fuzzel = lib.mkIf config.desktop.fuzzel.enable { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         main = { | ||||
|           lines = 12; | ||||
|           width = 45; | ||||
|           line-height = 20; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     services.hyprpaper = lib.mkIf config.desktop.hyprpaper.enable { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         splash = true; | ||||
|         ipc = "off"; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     services.mako = lib.mkIf config.desktop.mako.enable { | ||||
|       enable = true; | ||||
|       borderRadius = 10; | ||||
|       borderSize = 2; | ||||
|     }; | ||||
| 
 | ||||
|     services.hypridle = lib.mkIf config.desktop.hypridle.enable { | ||||
|       enable = true; | ||||
|       settings = { | ||||
| 
 | ||||
|         general = { | ||||
|           lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances. | ||||
|           before_sleep_cmd = "loginctl lock-session && sleep 2"; # lock before suspend. | ||||
|           after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display. | ||||
|         }; | ||||
| 
 | ||||
|         listener = [ | ||||
|           #{ | ||||
|           #  timeout = 150;                                # 2.5min. | ||||
|           #  on-timeout = brightnessctl -s set 10;         # set monitor backlight to minimum, avoid 0 on OLED monitor. | ||||
|           #  on-resume = brightnessctl -r;                 # monitor backlight restor. | ||||
|           #} | ||||
| 
 | ||||
|           { | ||||
|             timeout = 300; # 5min | ||||
|             on-timeout = "loginctl lock-session"; # lock screen when timeout has passed | ||||
|           } | ||||
| 
 | ||||
|           { | ||||
|             timeout = 380; # 5.5min | ||||
|             on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed | ||||
|             on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired. | ||||
|           } | ||||
| 
 | ||||
|           { | ||||
|             timeout = 600; # 30min | ||||
|             on-timeout = "systemctl suspend-then-hibernate"; # suspend pc | ||||
|           } | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     programs.waybar = lib.mkIf config.desktop.waybar.enable { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         mainBar = { | ||||
|           layer = "top"; | ||||
|           position = "top"; | ||||
|           height = 25; | ||||
|           output = [ | ||||
|             "eDP-1" | ||||
|           ]; | ||||
|           modules-left = [ "clock" "mpris" ]; | ||||
|           modules-center = [ "niri/workspaces" ]; | ||||
|           modules-right = [ "tray" "group/ressources" "group/peripherals" "group/wireless" "group/power" ]; | ||||
| 
 | ||||
|           "group/ressources" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "group/cpu" "group/memory" ]; | ||||
|           }; | ||||
|           "group/peripherals" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "group/volume" "group/backlight" ]; | ||||
|           }; | ||||
|           "group/wireless" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "group/networking" "group/bluetooth" ]; | ||||
|           }; | ||||
|           "group/power" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "group/battery" "image#power" ]; | ||||
|           }; | ||||
| 
 | ||||
| 
 | ||||
|           "clock" = { | ||||
|             interval = 1; | ||||
|             format = "{:%H:%M:%S}"; | ||||
|           }; | ||||
|           "mpris" = { | ||||
|             format = ""; | ||||
|             format-playing = "{dynamic}"; | ||||
|             dynamic-order = [ "title" "artist" "album" "position" "length" ]; | ||||
|             dynamic-len = 30; | ||||
|           }; | ||||
|           "niri/workspaces" = { | ||||
|             all-outputs = true; | ||||
|           }; | ||||
| 
 | ||||
|           "group/cpu" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#cpu" "cpu" ]; | ||||
|           }; | ||||
|           "image#cpu" = { | ||||
|             path = "${icons}/cpu.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "cpu" = { | ||||
|             format = "{usage}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/memory" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#memory" "memory" ]; | ||||
|           }; | ||||
|           "image#memory" = { | ||||
|             path = "${icons}/ram.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "memory" = { | ||||
|             format = "{percentage}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/volume" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#volume" "wireplumber" ]; | ||||
|           }; | ||||
|           "image#volume" = { | ||||
|             path = "${icons}/volume.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "wireplumber" = { | ||||
|             format = "{volume}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/backlight" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#backlight" "backlight" ]; | ||||
|           }; | ||||
|           "image#backlight" = { | ||||
|             path = "${icons}/brightness.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "backlight" = { | ||||
|             format = "{percent}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/networking" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#networking" "network" ]; | ||||
|           }; | ||||
|           "image#networking" = { | ||||
|             path = "${icons}/wifiHigh.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "network" = { | ||||
|             format = "{signalStrength}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/bluetooth" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#bluetooth" "bluetooth" ]; | ||||
|           }; | ||||
|           "image#bluetooth" = { | ||||
|             path = "${icons}/bluetooth.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "bluetooth" = { | ||||
|             format = "{status}"; | ||||
|           }; | ||||
| 
 | ||||
|           "group/battery" = { | ||||
|             orientation = "inherit"; | ||||
|             modules = [ "image#battery" "battery" ]; | ||||
|           }; | ||||
|           "image#battery" = { | ||||
|             path = "${icons}/battery.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|           "battery" = { | ||||
|             format = "{capacity}%"; | ||||
|           }; | ||||
| 
 | ||||
|           "image#power" = { | ||||
|             path = "${icons}/power.png"; | ||||
|             size = 16; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|       systemd = { | ||||
|         enable = true; | ||||
|       }; | ||||
| 
 | ||||
|     }; | ||||
| 
 | ||||
|     programs.hyprlock = lib.mkIf config.desktop.hyprlock.enable { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         background = { | ||||
|           monitor = ""; | ||||
|           # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations | ||||
|           blur_passes = 3; # 0 disables blurring | ||||
|           blur_size = 7; | ||||
|           noise = 0.0117; | ||||
|           contrast = 0.8916; | ||||
|           brightness = 0.8172; | ||||
|           vibrancy = 0.1696; | ||||
|           vibrancy_darkness = 0.0; | ||||
|         }; | ||||
| 
 | ||||
|         input-field = { | ||||
|           monitor = ""; | ||||
|           size = "300, 75"; | ||||
|           outline_thickness = 3; | ||||
|           dots_size = 0.33; # Scale of input-field height, 0.2 - 0.8 | ||||
|           dots_spacing = 0.15; # Scale of dots' absolute size, 0.0 - 1.0 | ||||
|           dots_center = false; | ||||
|           dots_rounding = -1; # -1 default circle, -2 follow input-field rounding | ||||
|           fade_on_empty = true; | ||||
|           fade_timeout = 1000; # Milliseconds before fade_on_empty is triggered. | ||||
|           placeholder_text = "<i>Input Password...</i>"; # Text rendered in the input box when it's empty. | ||||
|           hide_input = false; | ||||
|           rounding = -1; # -1 means complete rounding (circle/oval) | ||||
|           fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>"; # can be set to empty | ||||
|           fail_transition = 300; # transition time in ms between normal outer_color and fail_color | ||||
|           capslock_color = -1; | ||||
|           numlock_color = -1; | ||||
|           bothlock_color = -1; # when both locks are active. -1 means don't change outer color (same for above) | ||||
|           invert_numlock = false; # change color if numlock is off | ||||
|           position = "0, -20"; | ||||
|           halign = "center"; | ||||
|           valign = "center"; | ||||
|         }; | ||||
| 
 | ||||
|         label = { | ||||
|           monitor = ""; | ||||
|           text = "Hi there, $USER"; | ||||
|           color = "rgba(200, 200, 200, 1.0)"; | ||||
|           font_size = 25; | ||||
|           font_family = "Noto Sans"; | ||||
|           position = "0, 80"; | ||||
|           halign = "center"; | ||||
|           valign = "center"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     programs.wlogout = lib.mkIf config.desktop.wlogout.enable { | ||||
|       enable = true; | ||||
|       layout = [ | ||||
|         { | ||||
|           label = "shutdown"; | ||||
|           action = "systemctl poweroff"; | ||||
|           text = "Shutdown"; | ||||
|         } | ||||
|         { | ||||
|           label = "hyprland"; | ||||
|           action = "hyprctl dispatch exit"; | ||||
|           text = "Exit Hyprland"; | ||||
|         } | ||||
|         { | ||||
|           label = "whatever"; | ||||
|           action = ""; | ||||
|           text = "whatever"; | ||||
|         } | ||||
|         { | ||||
|           label = "reboot"; | ||||
|           action = "systemctl reboot"; | ||||
|           text = "Reboot"; | ||||
|         } | ||||
|         { | ||||
|           label = "suspend"; | ||||
|           action = "systemctl suspend"; | ||||
|           text = "Suspend"; | ||||
|         } | ||||
|         { | ||||
|           label = "hibernate"; | ||||
|           action = "systemctl hibernate"; | ||||
|           text = "Hibernate"; | ||||
|         } | ||||
|       ]; | ||||
| 
 | ||||
|       style = '' | ||||
|         @import url("file:///home/willifan/.config/gtk-4.0/gtk.css"); | ||||
|         * { | ||||
|         	background-image: none; | ||||
|         	box-shadow: none; | ||||
|         } | ||||
| 
 | ||||
|         window { | ||||
|         	background-color: rgba(12, 12, 12, 0.9); | ||||
|         } | ||||
| 
 | ||||
|         button { | ||||
|           border-radius: 10px; | ||||
|           border-color: #ffa44b; | ||||
|         	border-style: solid; | ||||
|           border-width: 2px; | ||||
|         	background-repeat: no-repeat; | ||||
|         	background-position: center; | ||||
|         	background-size: 25%; | ||||
|         } | ||||
| 
 | ||||
|         button:focus, button:active, button:hover { | ||||
|         	/*background-color: #3700B3;*/ | ||||
|         	outline-style: none; | ||||
|         } | ||||
| 
 | ||||
|         #suspend { | ||||
|           background-image: image(url("${icons}/suspend.png")); | ||||
|         } | ||||
| 
 | ||||
|         #hibernate { | ||||
|           background-image: image(url("${icons}/hibernate.png")); | ||||
|         } | ||||
| 
 | ||||
|         #shutdown { | ||||
|           background-image: image(url("${icons}/shutdown.png")); | ||||
|         } | ||||
| 
 | ||||
|         #reboot { | ||||
|           background-image: image(url("${icons}/reboot.png")); | ||||
|         } | ||||
|       ''; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -2,7 +2,6 @@ | |||
| { | ||||
| 
 | ||||
|   imports = [ | ||||
|     ./hyprland | ||||
|     ./compositors | ||||
| 
 | ||||
|     ./options.nix | ||||
|  |  | |||
|  | @ -1,21 +0,0 @@ | |||
| { ... }: | ||||
| 
 | ||||
| { | ||||
| 
 | ||||
| 
 | ||||
|   #home-manager.users.willifan = { | ||||
|   imports = [ | ||||
|     ./fuzzel.nix | ||||
|     ./hyprexit.nix | ||||
|     ./hypridle.nix | ||||
|     ./hyprlock.nix | ||||
|     ./hyprpaper.nix | ||||
|     ./mako.nix | ||||
|     ./utils.nix | ||||
|     ./wlogout.nix | ||||
|     ./options.nix | ||||
|     ./hyprland.nix | ||||
|   ]; | ||||
|   #}; | ||||
| 
 | ||||
| } | ||||
|  | @ -1,15 +0,0 @@ | |||
| { lib, config, ... }: | ||||
| { | ||||
|   home-manager.users.willifan = { | ||||
|     programs.fuzzel = lib.mkIf config.desktop.fuzzel.enable { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         main = { | ||||
|           lines = 12; | ||||
|           width = 45; | ||||
|           line-height = 20; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,11 +0,0 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| { | ||||
|   home-manager.users.willifan = { | ||||
|     home.packages = lib.mkIf config.desktop.hyprexit.enable [ | ||||
|       (pkgs.writeShellScriptBin "hyprexit" '' | ||||
|         ${pkgs.hyprland}/bin/hyprctl dispatch exit | ||||
|         ${pkgs.systemd}/bin/loginctl terminate-user willifan | ||||
|       '') | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,40 +0,0 @@ | |||
| { lib, config, ... }: | ||||
| { | ||||
|   home-manager.users.willifan = { | ||||
|     services.hypridle = lib.mkIf config.desktop.hypridle.enable { | ||||
|       enable = true; | ||||
|       settings = { | ||||
| 
 | ||||
|         general = { | ||||
|           lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances. | ||||
|           before_sleep_cmd = "loginctl lock-session && sleep 2"; # lock before suspend. | ||||
|           after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display. | ||||
|         }; | ||||
| 
 | ||||
|         listener = [ | ||||
|           #{ | ||||
|           #  timeout = 150;                                # 2.5min. | ||||
|           #  on-timeout = brightnessctl -s set 10;         # set monitor backlight to minimum, avoid 0 on OLED monitor. | ||||
|           #  on-resume = brightnessctl -r;                 # monitor backlight restor. | ||||
|           #} | ||||
| 
 | ||||
|           { | ||||
|             timeout = 300; # 5min | ||||
|             on-timeout = "loginctl lock-session"; # lock screen when timeout has passed | ||||
|           } | ||||
| 
 | ||||
|           { | ||||
|             timeout = 380; # 5.5min | ||||
|             on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed | ||||
|             on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired. | ||||
|           } | ||||
| 
 | ||||
|           { | ||||
|             timeout = 600; # 30min | ||||
|             on-timeout = "systemctl suspend-then-hibernate"; # suspend pc | ||||
|           } | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,56 +0,0 @@ | |||
| { lib, config, ... }: | ||||
| { | ||||
|   home-manager.users.willifan = { | ||||
|     programs.hyprlock = lib.mkIf config.desktop.hyprlock.enable { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         background = { | ||||
|           monitor = ""; | ||||
|           # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations | ||||
|           blur_passes = 3; # 0 disables blurring | ||||
|           blur_size = 7; | ||||
|           noise = 0.0117; | ||||
|           contrast = 0.8916; | ||||
|           brightness = 0.8172; | ||||
|           vibrancy = 0.1696; | ||||
|           vibrancy_darkness = 0.0; | ||||
|         }; | ||||
| 
 | ||||
|         input-field = { | ||||
|           monitor = ""; | ||||
|           size = "300, 75"; | ||||
|           outline_thickness = 3; | ||||
|           dots_size = 0.33; # Scale of input-field height, 0.2 - 0.8 | ||||
|           dots_spacing = 0.15; # Scale of dots' absolute size, 0.0 - 1.0 | ||||
|           dots_center = false; | ||||
|           dots_rounding = -1; # -1 default circle, -2 follow input-field rounding | ||||
|           fade_on_empty = true; | ||||
|           fade_timeout = 1000; # Milliseconds before fade_on_empty is triggered. | ||||
|           placeholder_text = "<i>Input Password...</i>"; # Text rendered in the input box when it's empty. | ||||
|           hide_input = false; | ||||
|           rounding = -1; # -1 means complete rounding (circle/oval) | ||||
|           fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>"; # can be set to empty | ||||
|           fail_transition = 300; # transition time in ms between normal outer_color and fail_color | ||||
|           capslock_color = -1; | ||||
|           numlock_color = -1; | ||||
|           bothlock_color = -1; # when both locks are active. -1 means don't change outer color (same for above) | ||||
|           invert_numlock = false; # change color if numlock is off | ||||
|           position = "0, -20"; | ||||
|           halign = "center"; | ||||
|           valign = "center"; | ||||
|         }; | ||||
| 
 | ||||
|         label = { | ||||
|           monitor = ""; | ||||
|           text = "Hi there, $USER"; | ||||
|           color = "rgba(200, 200, 200, 1.0)"; | ||||
|           font_size = 25; | ||||
|           font_family = "Noto Sans"; | ||||
|           position = "0, 80"; | ||||
|           halign = "center"; | ||||
|           valign = "center"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,15 +0,0 @@ | |||
| { lib, config, ... }: | ||||
| { | ||||
|   home-manager.users.willifan = { | ||||
|     services.hyprpaper = lib.mkIf config.desktop.hyprpaper.enable { | ||||
|       enable = true; | ||||
|       settings = { | ||||
| 
 | ||||
|         splash = true; | ||||
| 
 | ||||
|         ipc = "off"; | ||||
| 
 | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,11 +0,0 @@ | |||
| { lib, config, ... }: | ||||
| { | ||||
|   home-manager.users.willifan = { | ||||
|     services.mako = lib.mkIf config.desktop.mako.enable { | ||||
|       enable = true; | ||||
|       borderRadius = 10; | ||||
|       borderSize = 2; | ||||
| 
 | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,19 +0,0 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| { | ||||
|   home-manager.users.willifan = { | ||||
|     home.packages = lib.mkIf config.desktop.utils.enable [ | ||||
| 
 | ||||
|       pkgs.hyprpicker | ||||
|       pkgs.hyprcursor | ||||
| 
 | ||||
|       pkgs.grim | ||||
|       pkgs.slurp | ||||
|       pkgs.wl-clipboard | ||||
|       pkgs.playerctl | ||||
| 
 | ||||
|       pkgs.dconf | ||||
| 
 | ||||
|       pkgs.papirus-icon-theme | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,83 +0,0 @@ | |||
| { lib, config, ... }: | ||||
| { | ||||
|   home-manager.users.willifan = { | ||||
|     programs.wlogout = lib.mkIf config.desktop.wlogout.enable { | ||||
|       enable = true; | ||||
|       layout = [ | ||||
|         { | ||||
|           label = "shutdown"; | ||||
|           action = "systemctl poweroff"; | ||||
|           text = "Shutdown"; | ||||
|         } | ||||
|         { | ||||
|           label = "hyprland"; | ||||
|           action = "hyprctl dispatch exit"; | ||||
|           text = "Exit Hyprland"; | ||||
|         } | ||||
|         { | ||||
|           label = "whatever"; | ||||
|           action = ""; | ||||
|           text = "whatever"; | ||||
|         } | ||||
|         { | ||||
|           label = "reboot"; | ||||
|           action = "systemctl reboot"; | ||||
|           text = "Reboot"; | ||||
|         } | ||||
|         { | ||||
|           label = "suspend"; | ||||
|           action = "systemctl suspend"; | ||||
|           text = "Suspend"; | ||||
|         } | ||||
|         { | ||||
|           label = "hibernate"; | ||||
|           action = "systemctl hibernate"; | ||||
|           text = "Hibernate"; | ||||
|         } | ||||
|       ]; | ||||
| 
 | ||||
|       style = '' | ||||
|         @import url("file:///home/willifan/.config/gtk-4.0/gtk.css"); | ||||
|         * { | ||||
|         	background-image: none; | ||||
|         	box-shadow: none; | ||||
|         } | ||||
| 
 | ||||
|         window { | ||||
|         	background-color: rgba(12, 12, 12, 0.9); | ||||
|         } | ||||
| 
 | ||||
|         button { | ||||
|           border-radius: 10px; | ||||
|           border-color: #ffa44b; | ||||
|         	border-style: solid; | ||||
|           border-width: 2px; | ||||
|         	background-repeat: no-repeat; | ||||
|         	background-position: center; | ||||
|         	background-size: 25%; | ||||
|         } | ||||
| 
 | ||||
|         button:focus, button:active, button:hover { | ||||
|         	/*background-color: #3700B3;*/ | ||||
|         	outline-style: none; | ||||
|         } | ||||
| 
 | ||||
|         #suspend { | ||||
|           background-image: image(url("/home/willifan/.config/desktop-utils/images/suspend.png")); | ||||
|         } | ||||
| 
 | ||||
|         #hibernate { | ||||
|           background-image: image(url("/home/willifan/.config/desktop-utils/images/hibernate.png")); | ||||
|         } | ||||
| 
 | ||||
|         #shutdown { | ||||
|           background-image: image(url("/home/willifan/.config/desktop-utils/images/shutdown.png")); | ||||
|         } | ||||
| 
 | ||||
|         #reboot { | ||||
|           background-image: image(url("/home/willifan/.config/desktop-utils/images/reboot.png")); | ||||
|         } | ||||
|       ''; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue