mirror of
				https://github.com/Jokiller230/puzzlevision.git
				synced 2025-10-30 13:20:04 +00:00 
			
		
		
		
	
		
			Some checks failed
		
		
	
	Nix: validate flake.lock / Check Lockfile (push) Has been cancelled
				
			Nix: validate flake / Validate x86_64-linux (push) Has been cancelled
				
			Trufflehog: check for exposed secrets / Run trufflehog (push) Has been cancelled
				
			Nix: check for unused code / Run deadnix (push) Has been cancelled
				
			
		
			
				
	
	
		
			117 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   lib,
 | |
|   pkgs,
 | |
|   self,
 | |
|   config,
 | |
|   osConfig,
 | |
|   ...
 | |
| }:
 | |
| let
 | |
|   inherit (lib) mkIf mkOption;
 | |
|   inherit (self) namespace;
 | |
|   inherit (self.lib) mkOpt;
 | |
| 
 | |
|   cfg = config.${namespace}.desktop.gnome;
 | |
| in
 | |
| {
 | |
|   options.${namespace}.desktop.gnome = with lib.types; {
 | |
|     enabled-extensions = mkOption {
 | |
|       type = listOf package;
 | |
|       default = with pkgs.gnomeExtensions; [
 | |
|         user-themes
 | |
|         blur-my-shell
 | |
|         appindicator
 | |
|         unite
 | |
|         color-picker
 | |
|         clipboard-history
 | |
|       ];
 | |
|       example = [
 | |
|         dash-to-dock
 | |
|         blur-my-shell
 | |
|       ];
 | |
|       description = "Specify gnome extensions to install.";
 | |
|     };
 | |
|     favorite-apps = mkOption {
 | |
|       type = listOf str;
 | |
|       default = [
 | |
|         "org.gnome.Nautilus.desktop"
 | |
|         "obsidian.desktop"
 | |
|         "firefox.desktop"
 | |
|         "dev.zed.Zed.desktop"
 | |
|       ];
 | |
|       example = [
 | |
|         "org.gnome.Nautilus.desktop"
 | |
|         "obsidian.desktop"
 | |
|       ];
 | |
|       description = "Specify your favorite apps (sorted left to right).";
 | |
|     };
 | |
|     extensions = {
 | |
|       unite = {
 | |
|         show-window-buttons = mkOption {
 | |
|           type = str;
 | |
|           default = "never";
 | |
|           example = "never | maximized | tiled | both | always";
 | |
|           description = "Specify when Unite should display window buttons within the top panel.";
 | |
|         };
 | |
|         hide-window-titlebars = mkOption {
 | |
|           type = str;
 | |
|           default = "maximized";
 | |
|           example = "never | maximized | tiled | both | always";
 | |
|           description = "Specify when Unite should hide window titlebars.";
 | |
|         };
 | |
|       };
 | |
|       blur-my-shell = {
 | |
|         enable-blur = mkOpt bool false "Whether to enable blur-my-shell application blur.";
 | |
|       };
 | |
|     };
 | |
|     wallpaper =
 | |
|       mkOpt path ../wallpapers/building_top_sit_dusk.jpg
 | |
|         "Specify the path of your prefered Gnome wallpaper.";
 | |
|   };
 | |
| 
 | |
|   config = mkIf osConfig.${namespace}.desktop.gnome.enable {
 | |
|     home.packages = cfg.enabled-extensions;
 | |
| 
 | |
|     dconf.settings = {
 | |
|       "org/gnome/shell" = {
 | |
|         favorite-apps = cfg.favorite-apps;
 | |
|         enabled-extensions = lib.forEach cfg.enabled-extensions (x: x.extensionUuid);
 | |
|         disabled-extensions = [ ]; # Make sure none of our extensions are disabled on system rebuild
 | |
|       };
 | |
|       "org/gnome/shell/extensions/unite" =
 | |
|         mkIf (builtins.elem pkgs.gnomeExtensions.unite cfg.enabled-extensions)
 | |
|           {
 | |
|             show-window-buttons = cfg.extensions.unite.show-window-buttons;
 | |
|             hide-window-titlebars = cfg.extensions.unite.hide-window-titlebars;
 | |
| 
 | |
|             use-activities-text = false;
 | |
|             extend-left-box = false;
 | |
|             reduce-panel-spacing = false;
 | |
|             show-legacy-tray = false;
 | |
|             show-appmenu-button = false;
 | |
|             show-desktop-name = false;
 | |
|             enable-titlebar-actions = false;
 | |
|             restrict-to-primary-screen = false;
 | |
|             hide-activities-button = "never";
 | |
|             autofocus-windows = true;
 | |
|             notifications-position = "right";
 | |
|           };
 | |
|       "org/gnome/shell/extensions/blur-my-shell/applications" =
 | |
|         mkIf cfg.extensions.blur-my-shell.enable-blur
 | |
|           {
 | |
|             blur = true;
 | |
|             sigma = 30;
 | |
|             opacity = 230;
 | |
|             enable-all = true;
 | |
|             dynamic-opacity = false;
 | |
|           };
 | |
|       "org/gnome/desktop/background" = {
 | |
|         picture-uri = "file://${cfg.wallpaper}";
 | |
|         picture-uri-dark = "file://${cfg.wallpaper}";
 | |
|       };
 | |
|       "org/gnome/desktop/interface" = {
 | |
|         color-scheme = "prefer-dark";
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| }
 |