| 
									
										
										
										
											2025-04-23 14:19:05 +01:00
										 |  |  | { | 
					
						
							|  |  |  |   config, | 
					
						
							|  |  |  |   lib, | 
					
						
							|  |  |  |   pkgs, | 
					
						
							|  |  |  |   ... | 
					
						
							|  |  |  | }: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | with lib; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let | 
					
						
							| 
									
										
										
										
											2025-05-03 16:50:27 +01:00
										 |  |  |   cfg = config.desktop.dwm; | 
					
						
							| 
									
										
										
										
											2025-04-23 14:19:05 +01:00
										 |  |  | in | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2025-05-03 16:50:27 +01:00
										 |  |  |   options.desktop.dwm.enable = mkEnableOption "Enable dwm"; | 
					
						
							| 
									
										
										
										
											2025-04-23 14:19:05 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   config = mkIf cfg.enable { | 
					
						
							|  |  |  |     services = { | 
					
						
							|  |  |  |       dwm-status = { | 
					
						
							|  |  |  |         enable = true; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-22 13:55:04 +01:00
										 |  |  |         settings.order = [ | 
					
						
							| 
									
										
										
										
											2025-04-23 14:19:05 +01:00
										 |  |  |           "audio" | 
					
						
							|  |  |  |           "battery" | 
					
						
							|  |  |  |           "network" | 
					
						
							|  |  |  |           "time" | 
					
						
							|  |  |  |         ]; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       xserver.windowManager.dwm.enable = true; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     systemd.user.services.dwm-status.serviceConfig.Restart = "on-failure"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     environment.systemPackages = with pkgs; [ | 
					
						
							|  |  |  |       dmenu | 
					
						
							|  |  |  |       dmenu-bluetooth | 
					
						
							|  |  |  |       dunst | 
					
						
							|  |  |  |       networkmanager_dmenu | 
					
						
							|  |  |  |       poweralertd | 
					
						
							|  |  |  |       slock | 
					
						
							|  |  |  |       xdotool | 
					
						
							|  |  |  |       xwallpaper | 
					
						
							|  |  |  |     ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     home-manager.users.opdavies = | 
					
						
							|  |  |  |       { config, ... }: | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         home = { | 
					
						
							|  |  |  |           file."${config.home.sessionVariables.XINITRC}".source = ./xinitrc; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           sessionVariables = { | 
					
						
							|  |  |  |             XINITRC = "${config.xdg.configHome}/X11/xinitrc"; | 
					
						
							|  |  |  |           }; | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |