move shared gnome config to homeModule
This commit is contained in:
		
							parent
							
								
									f1855c1265
								
							
						
					
					
						commit
						f5e1b9c7ee
					
				
					 7 changed files with 174 additions and 132 deletions
				
			
		|  | @ -106,6 +106,7 @@ | ||||||
|           commonSpecialArgs = { |           commonSpecialArgs = { | ||||||
|             inherit device; |             inherit device; | ||||||
|             vinzenzHomeModules = self.homeModules; |             vinzenzHomeModules = self.homeModules; | ||||||
|  |             vinzenzLib = self.lib; | ||||||
|           }; |           }; | ||||||
|         in |         in | ||||||
|         nixpkgs.lib.nixosSystem { |         nixpkgs.lib.nixosSystem { | ||||||
|  | @ -170,6 +171,7 @@ | ||||||
|                 self.homeModules.templates |                 self.homeModules.templates | ||||||
|                 self.homeModules.zsh-basics |                 self.homeModules.zsh-basics | ||||||
|                 self.homeModules.nano |                 self.homeModules.nano | ||||||
|  |                 self.homeModules.gnome-extensions | ||||||
|               ]; |               ]; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -58,6 +58,8 @@ | ||||||
|     nextcloud-client |     nextcloud-client | ||||||
| 
 | 
 | ||||||
|     lutris |     lutris | ||||||
|  | 
 | ||||||
|  |     foliate | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   home.file = { |   home.file = { | ||||||
|  |  | ||||||
|  | @ -1,23 +1,21 @@ | ||||||
| { pkgs, ... }: | { pkgs, ... }: | ||||||
| { | { | ||||||
|   config = { |   config = { | ||||||
|     home.packages = |     home.packages = with pkgs.gnomeExtensions; [ | ||||||
|       with pkgs.gnomeExtensions; |       solaar-extension | ||||||
|       [ |     ]; | ||||||
|         # battery-health-charging |  | ||||||
|         quick-settings-tweaker |  | ||||||
|         solaar-extension |  | ||||||
|         alphabetical-app-grid |  | ||||||
|       ] |  | ||||||
|       ++ (with pkgs; [ foliate ]); |  | ||||||
| 
 | 
 | ||||||
|     dconf.settings = { |     dconf.settings = { | ||||||
|       "org/gnome/shell" = { |       "org/gnome/shell".enabled-extensions = [ | ||||||
|         enabled-extensions = [ |         "GPaste@gnome-shell-extensions.gnome.org" | ||||||
|           "GPaste@gnome-shell-extensions.gnome.org" |         "solaar-extension@sidevesh" | ||||||
|           "solaar-extension@sidevesh" |       ]; | ||||||
|           "AlphabeticalAppGrid@stuarthayhurst" |       "org/gnome/desktop/interface".color-scheme = "prefer-dark"; | ||||||
|         ]; |       "org/gnome/desktop/wm/keybindings" = { | ||||||
|  |         switch-windows = [ "<Alt>Tab" ]; | ||||||
|  |         switch-windows-backward = [ "<Shift><Alt>Tab" ]; | ||||||
|  |         switch-applications = [ "<Super>Tab" ]; | ||||||
|  |         switch-applications-backward = [ "<Shift><Super>Tab" ]; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
							
								
								
									
										101
									
								
								homeModules/gnome-extensions.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								homeModules/gnome-extensions.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,101 @@ | ||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   osConfig, | ||||||
|  |   config, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | { | ||||||
|  |   options.vinzenz.gnome-extensions = | ||||||
|  |     let | ||||||
|  |       mkDefaultEnabledOption = | ||||||
|  |         name: | ||||||
|  |         lib.mkOption { | ||||||
|  |           default = true; | ||||||
|  |           example = false; | ||||||
|  |           description = "Whether to enable ${name}."; | ||||||
|  |           type = lib.types.bool; | ||||||
|  |         }; | ||||||
|  |     in | ||||||
|  |     { | ||||||
|  |       enable = mkDefaultEnabledOption "gnome extended options"; | ||||||
|  |       appindicator.enable = mkDefaultEnabledOption "appindicator"; | ||||||
|  |       caffeine.enable = mkDefaultEnabledOption "caffeine"; | ||||||
|  |       tailscale-qs.enable = lib.mkOption { | ||||||
|  |         default = osConfig.services.tailscale.enable; | ||||||
|  |         example = true; | ||||||
|  |         description = "Whether to enable tailscale quick setting."; | ||||||
|  |         type = lib.types.bool; | ||||||
|  |       }; | ||||||
|  |       alphabetic-apps.enable = mkDefaultEnabledOption "alphabetic app grid"; | ||||||
|  |       clock-show-seconds = mkDefaultEnabledOption "clock seconds"; | ||||||
|  |       show-battery-percentage = mkDefaultEnabledOption "battery percentage"; | ||||||
|  |       enable-numlock = mkDefaultEnabledOption "num lock on login"; | ||||||
|  |       enable-systool-warning = lib.mkEnableOption "system configuration tool warning"; | ||||||
|  |       edge-tiling = mkDefaultEnabledOption "edge tiling"; | ||||||
|  |       dynamic-workspaces = mkDefaultEnabledOption "dynamic workspaces"; | ||||||
|  |       tap-to-click = mkDefaultEnabledOption "tap to click"; | ||||||
|  |       two-finger-scrolling = mkDefaultEnabledOption "two finger scrolling"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |   config = | ||||||
|  |     let | ||||||
|  |       cfg = config.vinzenz.gnome-extensions; | ||||||
|  |     in | ||||||
|  |     lib.mkIf cfg.enable ( | ||||||
|  |       lib.mkMerge [ | ||||||
|  |         { | ||||||
|  |           dconf = { | ||||||
|  |             enable = true; | ||||||
|  |             settings = { | ||||||
|  |               "org/gnome/shell" = { | ||||||
|  |                 disable-user-extensions = false; | ||||||
|  |                 disabled-extensions = [ ]; | ||||||
|  |                 enabled-extensions = [ ]; | ||||||
|  |               }; | ||||||
|  | 
 | ||||||
|  |               "ca/desrt/dconf-editor".show-warning = cfg.enable-systool-warning; | ||||||
|  |               "org/gnome/tweaks".show-extensions-notice = cfg.enable-systool-warning; | ||||||
|  |               "org/gnome/mutter" = { | ||||||
|  |                 inherit (cfg) edge-tiling dynamic-workspaces; | ||||||
|  |               }; | ||||||
|  |               "org/gnome/desktop/peripherals/touchpad" = { | ||||||
|  |                 inherit (cfg) tap-to-click; | ||||||
|  |                 two-finger-scrolling-enabled = cfg.two-finger-scrolling; | ||||||
|  |               }; | ||||||
|  |               "org/gnome/desktop/interface" = { | ||||||
|  |                 inherit (cfg) clock-show-seconds show-battery-percentage; | ||||||
|  |               }; | ||||||
|  |             }; | ||||||
|  |           }; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         (lib.mkIf cfg.tailscale-qs.enable { | ||||||
|  |           home.packages = [ pkgs.gnomeExtensions.tailscale-qs ]; | ||||||
|  |           dconf.settings."org/gnome/shell".enabled-extensions = [ "tailscale@joaophi.github.com" ]; | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         (lib.mkIf cfg.appindicator.enable { | ||||||
|  |           home.packages = [ pkgs.gnomeExtensions.appindicator ]; | ||||||
|  |           dconf.settings."org/gnome/shell".enabled-extensions = [ "appindicatorsupport@rgcjonas.gmail.com" ]; | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         (lib.mkIf cfg.caffeine.enable { | ||||||
|  |           home.packages = [ pkgs.gnomeExtensions.caffeine ]; | ||||||
|  |           dconf.settings."org/gnome/shell".enabled-extensions = [ "caffeine@patapon.info" ]; | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         (lib.mkIf cfg.alphabetic-apps.enable { | ||||||
|  |           home.packages = [ pkgs.gnomeExtensions.alphabetical-app-grid ]; | ||||||
|  |           dconf.settings = { | ||||||
|  |             "org/gnome/shell".enabled-extensions = [ "AlphabeticalAppGrid@stuarthayhurst" ]; | ||||||
|  |             "org/gnome/shell/extensions/alphabetical-app-grid".folder-order-position = "start"; | ||||||
|  |           }; | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         (lib.mkIf cfg.enable-numlock { | ||||||
|  |           dconf.settings."org/gnome/desktop/peripherals/keyboard".numlock-state = true; | ||||||
|  |         }) | ||||||
|  |       ] | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  | @ -1,25 +1,22 @@ | ||||||
| { pkgs, ... }: | { pkgs, ... }: | ||||||
| { | { | ||||||
|   config = { |   hardware = { | ||||||
|     hardware = { |     graphics = { | ||||||
|       graphics = { |       enable32Bit = true; | ||||||
|         enable32Bit = true; |       extraPackages = with pkgs; [ mangohud ]; | ||||||
|         extraPackages = with pkgs; [ mangohud ]; |       extraPackages32 = with pkgs; [ mangohud ]; | ||||||
|         extraPackages32 = with pkgs; [ mangohud ]; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       xpadneo.enable = true; |  | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     environment.systemPackages = with pkgs; [ |     xpadneo.enable = true; | ||||||
|       wineWowPackages.stagingFull |  | ||||||
|       wineWowPackages.fonts |  | ||||||
|       winetricks |  | ||||||
|       dxvk |  | ||||||
|       mangohud |  | ||||||
|       vulkan-tools |  | ||||||
|       glxinfo |  | ||||||
|     ]; |  | ||||||
| 
 |  | ||||||
|   }; |   }; | ||||||
|  | 
 | ||||||
|  |   environment.systemPackages = with pkgs; [ | ||||||
|  |     wineWowPackages.stagingFull | ||||||
|  |     wineWowPackages.fonts | ||||||
|  |     winetricks | ||||||
|  |     dxvk | ||||||
|  |     mangohud | ||||||
|  |     vulkan-tools | ||||||
|  |     glxinfo | ||||||
|  |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,43 +0,0 @@ | ||||||
| { |  | ||||||
|   "org/gnome/desktop/interface" = { |  | ||||||
|     color-scheme = "prefer-dark"; |  | ||||||
|     clock-show-seconds = true; |  | ||||||
|     show-battery-percentage = true; |  | ||||||
|   }; |  | ||||||
|   "org/gnome/mutter" = { |  | ||||||
|     edge-tiling = true; |  | ||||||
|     dynamic-workspaces = true; |  | ||||||
|   }; |  | ||||||
|   "org/gnome/desktop/peripherals/keyboard" = { |  | ||||||
|     numlock-state = true; |  | ||||||
|   }; |  | ||||||
|   "org/gnome/desktop/peripherals/touchpad" = { |  | ||||||
|     tap-to-click = true; |  | ||||||
|     two-finger-scrolling-enabled = true; |  | ||||||
|   }; |  | ||||||
|   "org/gnome/tweaks" = { |  | ||||||
|     show-extensions-notice = false; |  | ||||||
|   }; |  | ||||||
|   "org/gnome/shell" = { |  | ||||||
|     disable-user-extensions = false; |  | ||||||
|     disabled-extensions = [ ]; |  | ||||||
|     enabled-extensions = [ |  | ||||||
|       "tailscale@joaophi.github.com" |  | ||||||
|       "appindicatorsupport@rgcjonas.gmail.com" |  | ||||||
|       "workspace-indicator@gnome-shell-extensions.gcampax.github.com" |  | ||||||
|       "caffeine@patapon.info" |  | ||||||
|     ]; |  | ||||||
|   }; |  | ||||||
|   "ca/desrt/dconf-editor" = { |  | ||||||
|     show-warning = false; |  | ||||||
|   }; |  | ||||||
|   "org/gnome/desktop/wm/keybindings" = { |  | ||||||
|     switch-windows = [ "<Alt>Tab" ]; |  | ||||||
|     switch-windows-backward = [ "<Shift><Alt>Tab" ]; |  | ||||||
|     switch-applications = [ "<Super>Tab" ]; |  | ||||||
|     switch-applications-backward = [ "<Shift><Super>Tab" ]; |  | ||||||
|   }; |  | ||||||
|   "org/gnome/shell/extensions/alphabetical-app-grid" = { |  | ||||||
|     folder-order-position = "start"; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,61 +1,46 @@ | ||||||
| { pkgs, ... }: | { pkgs, ... }: | ||||||
| { | { | ||||||
|   config = { |   # remove some gnome default apps | ||||||
|     # remove some gnome default apps |   environment.gnome.excludePackages = with pkgs; [ | ||||||
|     environment.gnome.excludePackages = with pkgs; [ |     cheese # photo booth | ||||||
|       cheese # photo booth |     epiphany # web browser | ||||||
|       epiphany # web browser |     evince # document viewer | ||||||
|       evince # document viewer |     geary # email client | ||||||
|       geary # email client |     gnome-maps | ||||||
|       gnome-maps |     gnome-weather | ||||||
|       gnome-weather |     gnome-tour | ||||||
|       gnome-tour |     sysprof | ||||||
|       sysprof |     orca # screen reader | ||||||
|       orca # screen reader |     gnome-weather | ||||||
|       gnome-weather |     gnome-backgrounds | ||||||
|       gnome-backgrounds |     gnome-user-docs | ||||||
|       gnome-user-docs |     yelp # help app | ||||||
|       yelp # help app |     # gnome-music | ||||||
|       # gnome-music |     # totem # video player | ||||||
|       # totem # video player |     # snapshot # camera | ||||||
|       # snapshot # camera |     # baobab # disk usage | ||||||
|       # baobab # disk usage |   ]; | ||||||
|     ]; |  | ||||||
| 
 | 
 | ||||||
|     # RDP connections |   # RDP connections | ||||||
|     services.gnome.gnome-remote-desktop.enable = true; |   services.gnome.gnome-remote-desktop.enable = true; | ||||||
|     networking.firewall.allowedTCPPorts = [ 3389 ]; |   networking.firewall.allowedTCPPorts = [ 3389 ]; | ||||||
| 
 | 
 | ||||||
|     home-manager.sharedModules = [ |   home-manager.sharedModules = [ | ||||||
|       { |     { | ||||||
|         home.packages = |       home.packages = with pkgs; [ | ||||||
|           with pkgs; |         gitg | ||||||
|           [ |         meld | ||||||
|             gitg |         simple-scan | ||||||
|             meld |         pinta | ||||||
|             simple-scan |         dconf-editor | ||||||
|             pinta |         gpaste | ||||||
|             dconf-editor |         ghex | ||||||
|             gpaste |         impression | ||||||
|             ghex |         papers | ||||||
|             impression |  | ||||||
|             papers |  | ||||||
| 
 | 
 | ||||||
|             # graphical installer for flatpak apps |         # graphical installer for flatpak apps | ||||||
|             gnome-software |         gnome-software | ||||||
|           ] |       ]; | ||||||
|           ++ (with gnomeExtensions; [ |     } | ||||||
|             caffeine |   ]; | ||||||
|             appindicator |  | ||||||
|           ]); |  | ||||||
| 
 |  | ||||||
|         dconf.settings = import ./gnome-shared-dconf.nix; |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       { |  | ||||||
|         home.packages = with pkgs; [ trayscale ] ++ (with gnomeExtensions; [ tailscale-qs ]); |  | ||||||
|         dconf.settings."org/gnome/shell".enabled-extensions = [ "tailscale@joaophi.github.com" ]; |  | ||||||
|       } |  | ||||||
|     ]; |  | ||||||
|   }; |  | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Vinzenz Schroeter
						Vinzenz Schroeter