forked from fabian/nix
		
	add sway and xdg config
This commit is contained in:
		
							parent
							
								
									9687235d30
								
							
						
					
					
						commit
						ef8939612e
					
				
					 5 changed files with 144 additions and 0 deletions
				
			
		|  | @ -84,6 +84,7 @@ in { | |||
|     ./startx.nix | ||||
|     ./picom.nix | ||||
|     ./theme.nix | ||||
|     ./sway.nix | ||||
|   ]; | ||||
| 
 | ||||
|   config = let | ||||
|  |  | |||
							
								
								
									
										109
									
								
								home/modules/gui/sway.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								home/modules/gui/sway.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,109 @@ | |||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| with lib; let | ||||
|   cfg = config.local.gui; | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = [ | ||||
|       pkgs.wlr-randr | ||||
|     ]; | ||||
| 
 | ||||
|     programs = { | ||||
|       waybar.enable = true; | ||||
| 
 | ||||
|       wofi.enable = true; | ||||
|     }; | ||||
| 
 | ||||
|     services = { | ||||
|       swayidle = { | ||||
|         enable = true; | ||||
| 
 | ||||
|         timeouts = [ | ||||
|           { | ||||
|             timeout = 600; | ||||
|             command = "${getExe pkgs.gtklock} -d"; | ||||
|           } | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     systemd.user.services.wl-gammarelay-rs = { | ||||
|       Unit.After = ["sway-session.target"]; | ||||
|       Install.WantedBy = ["sway-session.target"]; | ||||
| 
 | ||||
|       Service.ExecStart = getExe pkgs.wl-gammarelay-rs; | ||||
|     }; | ||||
| 
 | ||||
|     wayland.windowManager.sway = { | ||||
|       enable = true; | ||||
| 
 | ||||
|       config = { | ||||
|         modifier = "Mod4"; | ||||
|         focus.followMouse = true; | ||||
| 
 | ||||
|         fonts = { | ||||
|           size = 11.0; | ||||
|           names = ["DejaVu Sans Mono"]; | ||||
|           style = "Bold Semi-Condensed"; | ||||
|         }; | ||||
| 
 | ||||
|         bars = singleton { | ||||
|           command = "waybar"; | ||||
|           position = "top"; | ||||
|         }; | ||||
| 
 | ||||
|         keybindings = let | ||||
|           mod = config.wayland.windowManager.sway.config.modifier; | ||||
|           wofi = config.programs.wofi.package; | ||||
| 
 | ||||
|           grimshot = getExe pkgs.sway-contrib.grimshot; | ||||
|         in | ||||
|           mkOptionDefault { | ||||
|             "${mod}+a" = "focus parent"; | ||||
|             "${mod}+c" = "focus child"; | ||||
|             "${mod}+d" = "exec --no-startup-id ${getExe wofi} -S run"; | ||||
|             "${mod}+i" = "exec busctl --user call rs.wl-gammarelay / rs.wl.gammarelay ToggleInverted"; | ||||
|             "${mod}+o" = "exec ${getExe pkgs.gtklock} -d"; | ||||
|             "${mod}+Return" = "exec ${lib.getExe pkgs.kitty} ${lib.getExe pkgs.tmux}"; | ||||
|             "${mod}+Shift+e" = "input * xkb_layout latam"; | ||||
|             "${mod}+Shift+u" = "input * xkb_layout us"; | ||||
|             "${mod}+p" = "exec ${grimshot} copy active"; | ||||
|             "${mod}+Shift+p" = "exec ${grimshot} copy area"; | ||||
|             "${mod}+Ctrl+p" = "exec ${grimshot} copy window"; | ||||
|           }; | ||||
| 
 | ||||
|         window.commands = [ | ||||
|           # (No) Title Bars | ||||
|           { | ||||
|             command = "border pixel 5"; | ||||
|             criteria.class = "^.*"; | ||||
|           } | ||||
| 
 | ||||
|           { | ||||
|             command = "floating enabled"; | ||||
|             criteria.class = "floating"; | ||||
|           } | ||||
|         ]; | ||||
|       }; | ||||
| 
 | ||||
|       extraSessionCommands = '' | ||||
|         export SDL_VIDEODRIVER=wayland | ||||
|         # needs qt5.qtwayland in systemPackages | ||||
|         export QT_QPA_PLATFORM=wayland | ||||
|         export QT_WAYLAND_DISABLE_WINDOWDECORATION="1" | ||||
|         # Fix for some Java AWT applications (e.g. Android Studio), | ||||
|         # use this if they aren't displayed properly: | ||||
|         export _JAVA_AWT_WM_NONREPARENTING=1 | ||||
|       ''; | ||||
| 
 | ||||
|       swaynag.enable = true; | ||||
|       systemd.enable = true; | ||||
| 
 | ||||
|       xwayland = true; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue