Small niri tryouts
This commit is contained in:
		
							parent
							
								
									d645c46790
								
							
						
					
					
						commit
						634aa0295f
					
				
					 7 changed files with 375 additions and 25 deletions
				
			
		|  | @ -40,7 +40,7 @@ in | |||
| 
 | ||||
|     environment.systemPackages = [ hyprlock-blur ]; | ||||
| 
 | ||||
|     ${namespace}.desktop.hyprland.settings = { | ||||
|     ${namespace}.desktop.hyprland.settings = mkIf config.desktop.hyprland.enable { | ||||
|       bind = [ | ||||
|         "$mod CTRL, l, exec, hyprlock-blur" | ||||
|       ]; | ||||
|  |  | |||
|  | @ -34,10 +34,10 @@ in | |||
|       systemd.user.sessionVariables = config.home-manager.users.${user}.home.sessionVariables; | ||||
|     }; | ||||
| 
 | ||||
|     qt = { | ||||
|       enable = true; | ||||
|       platformTheme = "gnome"; | ||||
|       style = "adwaita-dark"; | ||||
|     }; | ||||
|     # qt = { | ||||
|     #   enable = true; | ||||
|     #   platformTheme = "gnome"; | ||||
|     #   style = "adwaita-dark"; | ||||
|     # }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -293,24 +293,24 @@ in | |||
|                 "$mod CTRL, right, movecurrentworkspacetomonitor, r" | ||||
| 
 | ||||
|                 # move focus | ||||
|                 "$mod, h, hy3:movefocus, l" | ||||
|                 "$mod, j, hy3:movefocus, d" | ||||
|                 "$mod, k, hy3:movefocus, u" | ||||
|                 "$mod, l, hy3:movefocus, r" | ||||
|                 "$mod, left, hy3:movefocus, l" | ||||
|                 "$mod, down, hy3:movefocus, d" | ||||
|                 "$mod, up, hy3:movefocus, u" | ||||
|                 "$mod, right, hy3:movefocus, r" | ||||
|                 "$mod, h, movefocus, l" | ||||
|                 "$mod, j, movefocus, d" | ||||
|                 "$mod, k, movefocus, u" | ||||
|                 "$mod, l, movefocus, r" | ||||
|                 "$mod, left, movefocus, l" | ||||
|                 "$mod, down, movefocus, d" | ||||
|                 "$mod, up, movefocus, u" | ||||
|                 "$mod, right, movefocus, r" | ||||
| 
 | ||||
|                 # move focus | ||||
|                 "$mod SHIFT, h, hy3:movewindow, l, once" | ||||
|                 "$mod SHIFT, j, hy3:movewindow, d, once" | ||||
|                 "$mod SHIFT, k, hy3:movewindow, u, once" | ||||
|                 "$mod SHIFT, l, hy3:movewindow, r, once" | ||||
|                 "$mod SHIFT, left, hy3:movewindow, l, once" | ||||
|                 "$mod SHIFT, down, hy3:movewindow, d, once" | ||||
|                 "$mod SHIFT, up, hy3:movewindow, u, once" | ||||
|                 "$mod SHIFT, right, hy3:movewindow, r, once" | ||||
|                 "$mod SHIFT, h, movewindow, l, once" | ||||
|                 "$mod SHIFT, j, movewindow, d, once" | ||||
|                 "$mod SHIFT, k, movewindow, u, once" | ||||
|                 "$mod SHIFT, l, movewindow, r, once" | ||||
|                 "$mod SHIFT, left, movewindow, l, once" | ||||
|                 "$mod SHIFT, down, movewindow, d, once" | ||||
|                 "$mod SHIFT, up, movewindow, u, once" | ||||
|                 "$mod SHIFT, right, movewindow, r, once" | ||||
| 
 | ||||
|                 #run important programs | ||||
|                 "$mod, Return, exec, kitty" | ||||
|  | @ -332,7 +332,7 @@ in | |||
|                     in | ||||
|                     [ | ||||
|                       "$mod, code:1${toString i}, workspace, ${toString ws}" | ||||
|                       "$mod SHIFT, code:1${toString i}, hy3:movetoworkspace, ${toString ws}" | ||||
|                       "$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}" | ||||
|                     ] | ||||
|                   ) 9 | ||||
|                 ) | ||||
|  |  | |||
							
								
								
									
										207
									
								
								modules/nixos/desktop/niri/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								modules/nixos/desktop/niri/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,207 @@ | |||
| { | ||||
|   config, | ||||
|   inputs, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   system, | ||||
|   namespace, | ||||
|   ... | ||||
| }: | ||||
| with lib.${namespace}; | ||||
| let | ||||
|   inherit (lib) | ||||
|     mkIf | ||||
|     mkEnableOption | ||||
|     mkOption | ||||
|     mkMerge | ||||
|     types | ||||
|     ; | ||||
| 
 | ||||
|   cfg = config.${namespace}.desktop.niri; | ||||
| 
 | ||||
|   apps-submodule = types.submodule { | ||||
|     options = { | ||||
|       terminal = mkOption { | ||||
|         type = types.package; | ||||
|         default = pkgs.kitty; | ||||
|         description = "The default Terminal to use"; | ||||
|       }; | ||||
|       runner = mkOption { | ||||
|         type = types.package; | ||||
|         default = pkgs.fuzzel; | ||||
|         description = "The app-runner to use"; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
| in | ||||
| { | ||||
|   options.${namespace}.desktop.niri = { | ||||
|     enable = mkEnableOption "Whether to enable niri"; | ||||
|     settings = mkOption { | ||||
|       type = types.attrs; | ||||
|       default = { }; | ||||
|       description = "Additional niri settings to apply."; | ||||
|     }; | ||||
|     apps = mkOption { | ||||
|       type = apps-submodule; | ||||
|       default = { }; | ||||
|       description = "Which apps to use"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = mkIf cfg.enable { | ||||
|     programs.niri = { | ||||
|       enable = true; | ||||
|       package = inputs.niri-flake.packages.${system}.niri-unstable; | ||||
|     }; | ||||
| 
 | ||||
|     environment.systemPackages = [ | ||||
|       pkgs.alacritty | ||||
|       pkgs.fuzzel | ||||
|     ]; | ||||
| 
 | ||||
|     ${namespace} = { | ||||
|       desktop.addons = { | ||||
|         hyprlock = enabled; | ||||
|         hypridle = enabled; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     snowfallorg.users."cholli".home.config = { | ||||
|       programs.niri.settings = mkMerge [ | ||||
|         { | ||||
|           input = { | ||||
|             keyboard = { | ||||
|               numlock = true; | ||||
|             }; | ||||
|           }; | ||||
| 
 | ||||
|           outputs."DP-1" = { | ||||
|             mode = { | ||||
|               width = 3440; | ||||
|               height = 1440; | ||||
|             }; | ||||
|           }; | ||||
|           outputs."HDMI-A-1" = { | ||||
|             mode = { | ||||
|               width = 1920; | ||||
|               height = 1080; | ||||
|             }; | ||||
|             transform.rotation = 90; | ||||
|           }; | ||||
| 
 | ||||
|           layout = { | ||||
|             gaps = 5; | ||||
|             center-focused-column = "never"; | ||||
| 
 | ||||
|             default-column-width = { | ||||
|               proportion = 0.5; | ||||
|             }; | ||||
| 
 | ||||
|             preset-column-widths = [ | ||||
|               { proportion = 1. / 3.; } | ||||
|               { proportion = 1. / 2.; } | ||||
|               { proportion = 2. / 3.; } | ||||
| 
 | ||||
|             ]; | ||||
| 
 | ||||
|             focus-ring = { | ||||
|               width = 1; | ||||
|               active = { | ||||
|                 color = "#7fc8ff"; | ||||
|               }; | ||||
|               inactive = { | ||||
|                 color = "#505050"; | ||||
|               }; | ||||
|             }; | ||||
|           }; | ||||
| 
 | ||||
|           hotkey-overlay.skip-at-startup = true; | ||||
| 
 | ||||
|           screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"; | ||||
| 
 | ||||
|           # block 1pass from screenshots and window capture | ||||
|           window-rules = [ | ||||
|           ]; | ||||
| 
 | ||||
|           binds = | ||||
|             with config.lib.niri; | ||||
|             let | ||||
|               workspaces = (builtins.genList (x: x + 1) 9); | ||||
| 
 | ||||
|               focus-workspaces = builtins.listToAttrs ( | ||||
|                 map (num: { | ||||
|                   name = "Mod=${toString num}"; | ||||
|                   value = { | ||||
|                     action.focus-workspace = num; | ||||
|                   }; | ||||
|                 }) workspaces | ||||
|               ); | ||||
|             in | ||||
| 
 | ||||
|             mkMerge [ | ||||
|               { | ||||
|                 "Mod+Shift+Slash".action = show-hotkey-overlay; | ||||
| 
 | ||||
|                 "Mod+Enter".action.spawn = "${lib.getExe cfg.apps.terminal}"; | ||||
|                 "Mod+D".action.spwan = "${lib.getExe cfg.apps.runner}"; | ||||
|                 "Mod+Alt+L".action.spawn = "hyprlock-blur"; | ||||
| 
 | ||||
|                 "Mod+Shift+Q" = { | ||||
|                   action = actions.close-window; | ||||
|                   repeat = false; | ||||
|                 }; | ||||
| 
 | ||||
|                 "Mod+O" = { | ||||
|                   action = actions.toggle-overview; | ||||
|                   repeat = false; | ||||
|                 }; | ||||
| 
 | ||||
|                 inherit focus-workspaces; | ||||
| 
 | ||||
|                 "XF86AudioRaiseVolume" = { | ||||
|                   action.spawn = [ | ||||
|                     "wpctl" | ||||
|                     "set-volume" | ||||
|                     "@DEFAULT_AUDIO_SINK@" | ||||
|                     "0.1+" | ||||
|                   ]; | ||||
|                   allow-when-locked = true; | ||||
|                 }; | ||||
|                 "XF86AudioLowerVolume" = { | ||||
|                   action.spawn = [ | ||||
|                     "wpctl" | ||||
|                     "set-volume" | ||||
|                     "@DEFAULT_AUDIO_SINK@" | ||||
|                     "0.1-" | ||||
|                   ]; | ||||
|                   allow-when-locked = true; | ||||
|                 }; | ||||
|                 "XF86AudioMute" = { | ||||
|                   action.spawn = [ | ||||
|                     "wpctl" | ||||
|                     "set-mute" | ||||
|                     "@DEFAULT_AUDIO_SINK@" | ||||
|                     "toggle" | ||||
|                   ]; | ||||
|                   allow-when-locked = true; | ||||
|                 }; | ||||
|                 "XF86AudioMicMute" = { | ||||
|                   action.spawn = [ | ||||
|                     "wpctl" | ||||
|                     "set-mute" | ||||
|                     "@DEFAULT_AUDIO_SOURCE@" | ||||
|                     "toggle" | ||||
|                   ]; | ||||
|                   allow-when-locked = true; | ||||
|                 }; | ||||
|               } | ||||
|             ]; | ||||
| 
 | ||||
|         } | ||||
|         cfg.settings | ||||
|       ]; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue