forked from jan-leila/nix-config
		
	reconfigured how home manager gets applied
This commit is contained in:
		
							parent
							
								
									26b231a329
								
							
						
					
					
						commit
						ff295dc7ac
					
				
					 8 changed files with 438 additions and 361 deletions
				
			
		|  | @ -30,6 +30,7 @@ | ||||||
| - Look into this for flake templates https://nix.dev/manual/nix/2.22/command-ref/new-cli/nix3-flake-init | - Look into this for flake templates https://nix.dev/manual/nix/2.22/command-ref/new-cli/nix3-flake-init | ||||||
| - Look into this for headscale https://carlosvaz.com/posts/setting-up-headscale-on-nixos/ | - Look into this for headscale https://carlosvaz.com/posts/setting-up-headscale-on-nixos/ | ||||||
| - Look into this for home assistant configuration https://nixos.wiki/wiki/Home_Assistant https://myme.no/posts/2021-11-25-nixos-home-assistant.html | - Look into this for home assistant configuration https://nixos.wiki/wiki/Home_Assistant https://myme.no/posts/2021-11-25-nixos-home-assistant.html | ||||||
|  | - This person seams to know what they are doing with home manager https://github.com/arvigeus/nixos-config/ | ||||||
| 
 | 
 | ||||||
| ## Configuration | ## Configuration | ||||||
| set up git configuration for local development: `git config --local include.path .gitconfig` | set up git configuration for local development: `git config --local include.path .gitconfig` | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										14
									
								
								flake.nix
									
										
									
									
									
								
							|  | @ -71,13 +71,13 @@ | ||||||
|         modules = [ |         modules = [ | ||||||
|           ./hosts/horizon/configuration.nix |           ./hosts/horizon/configuration.nix | ||||||
|           nixos-hardware.nixosModules.framework-11th-gen-intel |           nixos-hardware.nixosModules.framework-11th-gen-intel | ||||||
|           home-manager.nixosModules.default |           home-manager.nixosModules.home-manager | ||||||
|           # { |           { | ||||||
|           #   home-manager.useGlobalPkgs = true; |             home-manager.useGlobalPkgs = true; | ||||||
|           #   home-manager.useUserPackages = true; |             home-manager.useUserPackages = true; | ||||||
|           #   home-manager.extraSpecialArgs = { inherit inputs; }; |             home-manager.backupFileExtension = "backup"; | ||||||
|           #   home-manager.users = import ./users; |             home-manager.extraSpecialArgs = { inherit inputs; }; | ||||||
|           # } |           } | ||||||
|         ]; |         ]; | ||||||
|       }; |       }; | ||||||
|       # Leyla Desktop |       # Leyla Desktop | ||||||
|  |  | ||||||
|  | @ -14,6 +14,10 @@ | ||||||
|     ../../enviroments/client |     ../../enviroments/client | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|  |   home-manager.users.leyla.config = { | ||||||
|  |     isFullUser = true; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|   users = { |   users = { | ||||||
|     leyla.isFullUser = true; |     leyla.isFullUser = true; | ||||||
|     ester.isFullUser = true; |     ester.isFullUser = true; | ||||||
|  |  | ||||||
|  | @ -4,4 +4,5 @@ | ||||||
|   users.mutableUsers = false; |   users.mutableUsers = false; | ||||||
| 
 | 
 | ||||||
|   home-manager.extraSpecialArgs = {inherit inputs;}; |   home-manager.extraSpecialArgs = {inherit inputs;}; | ||||||
|  |   home-manager.users = import ./home.nix; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								users/home.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								users/home.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | ||||||
|  | { | ||||||
|  |   leyla = import ./leyla/home.nix; | ||||||
|  |   # ester = import ./ester/home.nix; | ||||||
|  |   # eve = import ./eve/home.nix; | ||||||
|  | } | ||||||
|  | @ -6,9 +6,9 @@ | ||||||
| }: let | }: let | ||||||
|   cfg = config.users.leyla; |   cfg = config.users.leyla; | ||||||
| in { | in { | ||||||
|   imports = [ |   # imports = [ | ||||||
|     ./packages.nix |   #   ./packages.nix | ||||||
|   ]; |   # ]; | ||||||
| 
 | 
 | ||||||
|   options.users.leyla = { |   options.users.leyla = { | ||||||
|     isFullUser = lib.mkEnableOption "create usable leyla user"; |     isFullUser = lib.mkEnableOption "create usable leyla user"; | ||||||
|  | @ -69,6 +69,6 @@ in { | ||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     home-manager.users.leyla = lib.mkIf (cfg.isFullUser || cfg.isThinUser) (import ./home.nix); |     # home-manager.users.leyla = lib.mkIf (cfg.isFullUser || cfg.isThinUser) (import ./home.nix); | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,259 +1,272 @@ | ||||||
| { | { | ||||||
|  |   lib, | ||||||
|   config, |   config, | ||||||
|   pkgs, |   pkgs, | ||||||
|   ... |   ... | ||||||
| }: { | }: { | ||||||
|   # Home Manager needs a bit of information about you and the paths it should |   imports = [ | ||||||
|   # manage. |     ./packages.nix | ||||||
|   home = { |   ]; | ||||||
|     username = "leyla"; |  | ||||||
|     homeDirectory = "/home/leyla"; |  | ||||||
| 
 | 
 | ||||||
|     # This value determines the Home Manager release that your configuration is |   options = { | ||||||
|     # compatible with. This helps avoid breakage when a new Home Manager release |     isFullUser = lib.mkEnableOption "create usable leyla user"; | ||||||
|     # introduces backwards incompatible changes. |     isThinUser = lib.mkEnableOption "create usable user but witohut user applications"; | ||||||
|     # |     hasGPU = lib.mkEnableOption "installs gpu intensive programs"; | ||||||
|     # You should not change this value, even if you update Home Manager. If you do |  | ||||||
|     # want to update the value, then make sure to first check the Home Manager |  | ||||||
|     # release notes. |  | ||||||
|     stateVersion = "23.11"; # Please read the comment before changing. |  | ||||||
| 
 |  | ||||||
|     # The home.packages option allows you to install Nix packages into your |  | ||||||
|     # environment. |  | ||||||
|     packages = [ |  | ||||||
|       # # Adds the 'hello' command to your environment. It prints a friendly |  | ||||||
|       # # "Hello, world!" when run. |  | ||||||
|       # pkgs.hello |  | ||||||
| 
 |  | ||||||
|       # # It is sometimes useful to fine-tune packages, for example, by applying |  | ||||||
|       # # overrides. You can do that directly here, just don't forget the |  | ||||||
|       # # parentheses. Maybe you want to install Nerd Fonts with a limited number of |  | ||||||
|       # # fonts? |  | ||||||
|       # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) |  | ||||||
| 
 |  | ||||||
|       # # You can also create simple shell scripts directly inside your |  | ||||||
|       # # configuration. For example, this adds a command 'my-hello' to your |  | ||||||
|       # # environment: |  | ||||||
|       # (pkgs.writeShellScriptBin "my-hello" '' |  | ||||||
|       #   echo "Hello, ${config.home.username}!" |  | ||||||
|       # '') |  | ||||||
|     ]; |  | ||||||
| 
 |  | ||||||
|     # Home Manager is pretty good at managing dotfiles. The primary way to manage |  | ||||||
|     # plain files is through 'home.file'. |  | ||||||
|     file = { |  | ||||||
|       # # Building this configuration will create a copy of 'dotfiles/screenrc' in |  | ||||||
|       # # the Nix store. Activating the configuration will then make '~/.screenrc' a |  | ||||||
|       # # symlink to the Nix store copy. |  | ||||||
|       # ".screenrc".source = dotfiles/screenrc; |  | ||||||
| 
 |  | ||||||
|       # # You can also set the file content immediately. |  | ||||||
|       # ".gradle/gradle.properties".text = '' |  | ||||||
|       #   org.gradle.console=verbose |  | ||||||
|       #   org.gradle.daemon.idletimeout=3600000 |  | ||||||
|       # ''; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     # Home Manager can also manage your environment variables through |  | ||||||
|     # 'home.sessionVariables'. If you don't want to manage your shell through Home |  | ||||||
|     # Manager then you have to manually source 'hm-session-vars.sh' located at |  | ||||||
|     # either |  | ||||||
|     # |  | ||||||
|     #  ~/.nix-profile/etc/profile.d/hm-session-vars.sh |  | ||||||
|     # |  | ||||||
|     # or |  | ||||||
|     # |  | ||||||
|     #  ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh |  | ||||||
|     # |  | ||||||
|     # or |  | ||||||
|     # |  | ||||||
|     #  /etc/profiles/per-user/leyla/etc/profile.d/hm-session-vars.sh |  | ||||||
|     # |  | ||||||
|     sessionVariables = { |  | ||||||
|       # EDITOR = "emacs"; |  | ||||||
|     }; |  | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   programs = { |   config = { | ||||||
|     # Let Home Manager install and manage itself. |     # Home Manager needs a bit of information about you and the paths it should | ||||||
|     home-manager.enable = true; |     # manage. | ||||||
|  |     home = { | ||||||
|  |       username = "leyla"; | ||||||
|  |       homeDirectory = "/home/leyla"; | ||||||
| 
 | 
 | ||||||
|     # set up git defaults |       # This value determines the Home Manager release that your configuration is | ||||||
|     git = { |       # compatible with. This helps avoid breakage when a new Home Manager release | ||||||
|       enable = true; |       # introduces backwards incompatible changes. | ||||||
|       userName = "Leyla Becker"; |       # | ||||||
|       userEmail = "git@jan-leila.com"; |       # You should not change this value, even if you update Home Manager. If you do | ||||||
|       extraConfig.init.defaultBranch = "main"; |       # want to update the value, then make sure to first check the Home Manager | ||||||
|  |       # release notes. | ||||||
|  |       stateVersion = "23.11"; # Please read the comment before changing. | ||||||
|  | 
 | ||||||
|  |       # The home.packages option allows you to install Nix packages into your | ||||||
|  |       # environment. | ||||||
|  |       packages = [ | ||||||
|  |         # # Adds the 'hello' command to your environment. It prints a friendly | ||||||
|  |         # # "Hello, world!" when run. | ||||||
|  |         # pkgs.hello | ||||||
|  | 
 | ||||||
|  |         # # It is sometimes useful to fine-tune packages, for example, by applying | ||||||
|  |         # # overrides. You can do that directly here, just don't forget the | ||||||
|  |         # # parentheses. Maybe you want to install Nerd Fonts with a limited number of | ||||||
|  |         # # fonts? | ||||||
|  |         # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) | ||||||
|  | 
 | ||||||
|  |         # # You can also create simple shell scripts directly inside your | ||||||
|  |         # # configuration. For example, this adds a command 'my-hello' to your | ||||||
|  |         # # environment: | ||||||
|  |         # (pkgs.writeShellScriptBin "my-hello" '' | ||||||
|  |         #   echo "Hello, ${config.home.username}!" | ||||||
|  |         # '') | ||||||
|  |       ]; | ||||||
|  | 
 | ||||||
|  |       # Home Manager is pretty good at managing dotfiles. The primary way to manage | ||||||
|  |       # plain files is through 'home.file'. | ||||||
|  |       file = { | ||||||
|  |         # # Building this configuration will create a copy of 'dotfiles/screenrc' in | ||||||
|  |         # # the Nix store. Activating the configuration will then make '~/.screenrc' a | ||||||
|  |         # # symlink to the Nix store copy. | ||||||
|  |         # ".screenrc".source = dotfiles/screenrc; | ||||||
|  | 
 | ||||||
|  |         # # You can also set the file content immediately. | ||||||
|  |         # ".gradle/gradle.properties".text = '' | ||||||
|  |         #   org.gradle.console=verbose | ||||||
|  |         #   org.gradle.daemon.idletimeout=3600000 | ||||||
|  |         # ''; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       # Home Manager can also manage your environment variables through | ||||||
|  |       # 'home.sessionVariables'. If you don't want to manage your shell through Home | ||||||
|  |       # Manager then you have to manually source 'hm-session-vars.sh' located at | ||||||
|  |       # either | ||||||
|  |       # | ||||||
|  |       #  ~/.nix-profile/etc/profile.d/hm-session-vars.sh | ||||||
|  |       # | ||||||
|  |       # or | ||||||
|  |       # | ||||||
|  |       #  ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh | ||||||
|  |       # | ||||||
|  |       # or | ||||||
|  |       # | ||||||
|  |       #  /etc/profiles/per-user/leyla/etc/profile.d/hm-session-vars.sh | ||||||
|  |       # | ||||||
|  |       sessionVariables = { | ||||||
|  |         # EDITOR = "emacs"; | ||||||
|  |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     # add direnv to auto load flakes for development |     programs = { | ||||||
|     direnv = { |       # Let Home Manager install and manage itself. | ||||||
|       enable = true; |       home-manager.enable = true; | ||||||
|       enableBashIntegration = true; # see note on other shells below | 
 | ||||||
|       nix-direnv.enable = true; |       # set up git defaults | ||||||
|  |       git = { | ||||||
|  |         enable = true; | ||||||
|  |         userName = "Leyla Becker"; | ||||||
|  |         userEmail = "git@jan-leila.com"; | ||||||
|  |         extraConfig.init.defaultBranch = "main"; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       # add direnv to auto load flakes for development | ||||||
|  |       direnv = { | ||||||
|  |         enable = true; | ||||||
|  |         enableBashIntegration = true; # see note on other shells below | ||||||
|  |         nix-direnv.enable = true; | ||||||
|  |       }; | ||||||
|  |       bash.enable = true; # see note on other shells below | ||||||
|  |        | ||||||
|  |       # firefox = { | ||||||
|  |       #   enable = true; | ||||||
|  |       #   profiles.leyla = { | ||||||
|  | 
 | ||||||
|  |       #     settings = { | ||||||
|  |       #         "browser.search.defaultenginename" = "Searx"; | ||||||
|  |       #         "browser.search.order.1" = "Searx"; | ||||||
|  |       #     }; | ||||||
|  | 
 | ||||||
|  |       #     search = { | ||||||
|  |       #       force = true; | ||||||
|  |       #       default = "Searx"; | ||||||
|  |       #       engines = { | ||||||
|  |       #         "Nix Packages" = { | ||||||
|  |       #           urls = [{ | ||||||
|  |       #             template = "https://search.nixos.org/packages"; | ||||||
|  |       #             params = [ | ||||||
|  |       #               { name = "type"; value = "packages"; } | ||||||
|  |       #               { name = "query"; value = "{searchTerms}"; } | ||||||
|  |       #             ]; | ||||||
|  |       #           }]; | ||||||
|  |       #           icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; | ||||||
|  |       #           definedAliases = [ "@np" ]; | ||||||
|  |       #         }; | ||||||
|  |       #         "NixOS Wiki" = { | ||||||
|  |       #           urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; | ||||||
|  |       #           iconUpdateURL = "https://nixos.wiki/favicon.png"; | ||||||
|  |       #           updateInterval = 24 * 60 * 60 * 1000; # every day | ||||||
|  |       #           definedAliases = [ "@nw" ]; | ||||||
|  |       #         }; | ||||||
|  |       #         "Searx" = { | ||||||
|  |       #           urls = [{ template = "https://search.jan-leila.com/?q={searchTerms}"; }]; | ||||||
|  |       #           iconUpdateURL = "https://nixos.wiki/favicon.png"; | ||||||
|  |       #           updateInterval = 24 * 60 * 60 * 1000; # every day | ||||||
|  |       #           definedAliases = [ "@searx" ]; | ||||||
|  |       #         }; | ||||||
|  |       #       }; | ||||||
|  |       #     }; | ||||||
|  | 
 | ||||||
|  |       #     extentions = with pkgs.nur.repos.rycee.firefox-addons; [ | ||||||
|  |       #         ublock-origin | ||||||
|  |       #         bitwarden | ||||||
|  | 
 | ||||||
|  |       #     ]; | ||||||
|  | 
 | ||||||
|  |       #     bookmarks = [ | ||||||
|  |       #       { | ||||||
|  |       #         name = "Media"; | ||||||
|  |       #         url = "https://jellyfin.jan-leila.com/"; | ||||||
|  |       #         keyword = ""; | ||||||
|  |       #         tags = [""]; | ||||||
|  |       #       } | ||||||
|  |       #       { | ||||||
|  |       #         name = "Drive"; | ||||||
|  |       #         url = "https://drive.jan-leila.com/"; | ||||||
|  |       #         keyword = ""; | ||||||
|  |       #         tags = [""]; | ||||||
|  |       #       } | ||||||
|  |       #       { | ||||||
|  |       #         name = "Git"; | ||||||
|  |       #         url = "https://git.jan-leila.com/"; | ||||||
|  |       #         keyword = ""; | ||||||
|  |       #         tags = [""]; | ||||||
|  |       #       } | ||||||
|  |       #       { | ||||||
|  |       #         name = "Home Automation"; | ||||||
|  |       #         url = "https://home-assistant.jan-leila.com/"; | ||||||
|  |       #         keyword = ""; | ||||||
|  |       #         tags = [""]; | ||||||
|  |       #       } | ||||||
|  |       #       { | ||||||
|  |       #         name = "Mail"; | ||||||
|  |       #         url = "https://mail.protonmail.com"; | ||||||
|  |       #         keyword = ""; | ||||||
|  |       #         tags = [""]; | ||||||
|  |       #       } | ||||||
|  |       #       { | ||||||
|  |       #         name = "Open Street Map"; | ||||||
|  |       #         url = "https://www.openstreetmap.org/"; | ||||||
|  |       #         keyword = ""; | ||||||
|  |       #         tags = [""]; | ||||||
|  |       #       } | ||||||
|  |       #       { | ||||||
|  |       #         name = "Password Manager"; | ||||||
|  |       #         url = "https://vault.bitwarden.com/"; | ||||||
|  |       #         keyword = ""; | ||||||
|  |       #         tags = [""]; | ||||||
|  |       #       } | ||||||
|  |       #       { | ||||||
|  |       #         name = "Mastodon"; | ||||||
|  |       #         url = "https://tech.lgbt"; | ||||||
|  |       #         keyword = ""; | ||||||
|  |       #         tags = [""]; | ||||||
|  |       #       } | ||||||
|  |       #       { | ||||||
|  |       #         name = "Linked In"; | ||||||
|  |       #         url = "https://www.linkedin.com/"; | ||||||
|  |       #         keyword = ""; | ||||||
|  |       #         tags = [""]; | ||||||
|  |       #       } | ||||||
|  |       #       { | ||||||
|  |       #         name = "Job Search"; | ||||||
|  |       #         url = "https://www.jobsinnetwork.com/?state=cleaned_history&language%5B%5D=en&query=react&locations.countryCode%5B%5D=IT&locations.countryCode%5B%5D=DE&locations.countryCode%5B%5D=NL&experience%5B%5D=medior&experience%5B%5D=junior&page=1"; | ||||||
|  |       #         keyword = ""; | ||||||
|  |       #         tags = [""]; | ||||||
|  |       #       } | ||||||
|  |       #       { | ||||||
|  |       #         name = "React Docs"; | ||||||
|  |       #         url = "https://react.dev/"; | ||||||
|  |       #         keyword = ""; | ||||||
|  |       #         tags = [""]; | ||||||
|  |       #       } | ||||||
|  |       #       # Template | ||||||
|  |       #       # { | ||||||
|  |       #       #   name = ""; | ||||||
|  |       #       #   url = ""; | ||||||
|  |       #       #   keyword = ""; | ||||||
|  |       #       #   tags = [""]; | ||||||
|  |       #       # } | ||||||
|  |       #     ]; | ||||||
|  |       #   }; | ||||||
|  |       # } | ||||||
|     }; |     }; | ||||||
|     bash.enable = true; # see note on other shells below |  | ||||||
| 
 | 
 | ||||||
|     # firefox = { |     dconf = { | ||||||
|     #   enable = true; |       enable = true; | ||||||
|     #   profiles.leyla = { |       settings = { | ||||||
|  |         "org/gnome/desktop/interface".color-scheme = "prefer-dark"; | ||||||
| 
 | 
 | ||||||
|     #     settings = { |         "org/gnome/shell" = { | ||||||
|     #         "browser.search.defaultenginename" = "Searx"; |           disable-user-extensions = false; # enables user extensions | ||||||
|     #         "browser.search.order.1" = "Searx"; |           enabled-extensions = [ | ||||||
|     #     }; |             # Put UUIDs of extensions that you want to enable here. | ||||||
|  |             # If the extension you want to enable is packaged in nixpkgs, | ||||||
|  |             # you can easily get its UUID by accessing its extensionUuid | ||||||
|  |             # field (look at the following example). | ||||||
|  |             pkgs.gnomeExtensions.dash-to-dock.extensionUuid | ||||||
| 
 | 
 | ||||||
|     #     search = { |             # Alternatively, you can manually pass UUID as a string. | ||||||
|     #       force = true; |             # "dash-to-dock@micxgx.gmail.com" | ||||||
|     #       default = "Searx"; |           ]; | ||||||
|     #       engines = { |         }; | ||||||
|     #         "Nix Packages" = { |  | ||||||
|     #           urls = [{ |  | ||||||
|     #             template = "https://search.nixos.org/packages"; |  | ||||||
|     #             params = [ |  | ||||||
|     #               { name = "type"; value = "packages"; } |  | ||||||
|     #               { name = "query"; value = "{searchTerms}"; } |  | ||||||
|     #             ]; |  | ||||||
|     #           }]; |  | ||||||
|     #           icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; |  | ||||||
|     #           definedAliases = [ "@np" ]; |  | ||||||
|     #         }; |  | ||||||
|     #         "NixOS Wiki" = { |  | ||||||
|     #           urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; |  | ||||||
|     #           iconUpdateURL = "https://nixos.wiki/favicon.png"; |  | ||||||
|     #           updateInterval = 24 * 60 * 60 * 1000; # every day |  | ||||||
|     #           definedAliases = [ "@nw" ]; |  | ||||||
|     #         }; |  | ||||||
|     #         "Searx" = { |  | ||||||
|     #           urls = [{ template = "https://search.jan-leila.com/?q={searchTerms}"; }]; |  | ||||||
|     #           iconUpdateURL = "https://nixos.wiki/favicon.png"; |  | ||||||
|     #           updateInterval = 24 * 60 * 60 * 1000; # every day |  | ||||||
|     #           definedAliases = [ "@searx" ]; |  | ||||||
|     #         }; |  | ||||||
|     #       }; |  | ||||||
|     #     }; |  | ||||||
| 
 | 
 | ||||||
|     #     extentions = with pkgs.nur.repos.rycee.firefox-addons; [ |         "org/gnome/shell/extensions/dash-to-dock" = { | ||||||
|     #         ublock-origin |           "dock-position" = "LEFT"; | ||||||
|     #         bitwarden |           "intellihide-mode" = "ALL_WINDOWS"; | ||||||
|  |           "show-trash" = false; | ||||||
|  |           "require-pressure-to-show" = false; | ||||||
|  |           "show-mounts" = false; | ||||||
|  |         }; | ||||||
| 
 | 
 | ||||||
|     #     ]; |         "org/gnome/settings-daemon/plugins/media-keys" = { | ||||||
| 
 |           custom-keybindings = [ | ||||||
|     #     bookmarks = [ |             "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" | ||||||
|     #       { |           ]; | ||||||
|     #         name = "Media"; |         }; | ||||||
|     #         url = "https://jellyfin.jan-leila.com/"; |         "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { | ||||||
|     #         keyword = ""; |           binding = "<Super>t"; | ||||||
|     #         tags = [""]; |           command = "kgx"; | ||||||
|     #       } |           name = "Open Terminal"; | ||||||
|     #       { |         }; | ||||||
|     #         name = "Drive"; |  | ||||||
|     #         url = "https://drive.jan-leila.com/"; |  | ||||||
|     #         keyword = ""; |  | ||||||
|     #         tags = [""]; |  | ||||||
|     #       } |  | ||||||
|     #       { |  | ||||||
|     #         name = "Git"; |  | ||||||
|     #         url = "https://git.jan-leila.com/"; |  | ||||||
|     #         keyword = ""; |  | ||||||
|     #         tags = [""]; |  | ||||||
|     #       } |  | ||||||
|     #       { |  | ||||||
|     #         name = "Home Automation"; |  | ||||||
|     #         url = "https://home-assistant.jan-leila.com/"; |  | ||||||
|     #         keyword = ""; |  | ||||||
|     #         tags = [""]; |  | ||||||
|     #       } |  | ||||||
|     #       { |  | ||||||
|     #         name = "Mail"; |  | ||||||
|     #         url = "https://mail.protonmail.com"; |  | ||||||
|     #         keyword = ""; |  | ||||||
|     #         tags = [""]; |  | ||||||
|     #       } |  | ||||||
|     #       { |  | ||||||
|     #         name = "Open Street Map"; |  | ||||||
|     #         url = "https://www.openstreetmap.org/"; |  | ||||||
|     #         keyword = ""; |  | ||||||
|     #         tags = [""]; |  | ||||||
|     #       } |  | ||||||
|     #       { |  | ||||||
|     #         name = "Password Manager"; |  | ||||||
|     #         url = "https://vault.bitwarden.com/"; |  | ||||||
|     #         keyword = ""; |  | ||||||
|     #         tags = [""]; |  | ||||||
|     #       } |  | ||||||
|     #       { |  | ||||||
|     #         name = "Mastodon"; |  | ||||||
|     #         url = "https://tech.lgbt"; |  | ||||||
|     #         keyword = ""; |  | ||||||
|     #         tags = [""]; |  | ||||||
|     #       } |  | ||||||
|     #       { |  | ||||||
|     #         name = "Linked In"; |  | ||||||
|     #         url = "https://www.linkedin.com/"; |  | ||||||
|     #         keyword = ""; |  | ||||||
|     #         tags = [""]; |  | ||||||
|     #       } |  | ||||||
|     #       { |  | ||||||
|     #         name = "Job Search"; |  | ||||||
|     #         url = "https://www.jobsinnetwork.com/?state=cleaned_history&language%5B%5D=en&query=react&locations.countryCode%5B%5D=IT&locations.countryCode%5B%5D=DE&locations.countryCode%5B%5D=NL&experience%5B%5D=medior&experience%5B%5D=junior&page=1"; |  | ||||||
|     #         keyword = ""; |  | ||||||
|     #         tags = [""]; |  | ||||||
|     #       } |  | ||||||
|     #       { |  | ||||||
|     #         name = "React Docs"; |  | ||||||
|     #         url = "https://react.dev/"; |  | ||||||
|     #         keyword = ""; |  | ||||||
|     #         tags = [""]; |  | ||||||
|     #       } |  | ||||||
|     #       # Template |  | ||||||
|     #       # { |  | ||||||
|     #       #   name = ""; |  | ||||||
|     #       #   url = ""; |  | ||||||
|     #       #   keyword = ""; |  | ||||||
|     #       #   tags = [""]; |  | ||||||
|     #       # } |  | ||||||
|     #     ]; |  | ||||||
|     #   }; |  | ||||||
|     # } |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   dconf = { |  | ||||||
|     enable = true; |  | ||||||
|     settings = { |  | ||||||
|       "org/gnome/desktop/interface".color-scheme = "prefer-dark"; |  | ||||||
| 
 |  | ||||||
|       "org/gnome/shell" = { |  | ||||||
|         disable-user-extensions = false; # enables user extensions |  | ||||||
|         enabled-extensions = [ |  | ||||||
|           # Put UUIDs of extensions that you want to enable here. |  | ||||||
|           # If the extension you want to enable is packaged in nixpkgs, |  | ||||||
|           # you can easily get its UUID by accessing its extensionUuid |  | ||||||
|           # field (look at the following example). |  | ||||||
|           pkgs.gnomeExtensions.dash-to-dock.extensionUuid |  | ||||||
| 
 |  | ||||||
|           # Alternatively, you can manually pass UUID as a string. |  | ||||||
|           # "dash-to-dock@micxgx.gmail.com" |  | ||||||
|         ]; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       "org/gnome/shell/extensions/dash-to-dock" = { |  | ||||||
|         "dock-position" = "LEFT"; |  | ||||||
|         "intellihide-mode" = "ALL_WINDOWS"; |  | ||||||
|         "show-trash" = false; |  | ||||||
|         "require-pressure-to-show" = false; |  | ||||||
|         "show-mounts" = false; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       "org/gnome/settings-daemon/plugins/media-keys" = { |  | ||||||
|         custom-keybindings = [ |  | ||||||
|           "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" |  | ||||||
|         ]; |  | ||||||
|       }; |  | ||||||
|       "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { |  | ||||||
|         binding = "<Super>t"; |  | ||||||
|         command = "kgx"; |  | ||||||
|         name = "Open Terminal"; |  | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  | @ -1,17 +1,12 @@ | ||||||
| { | { | ||||||
|   lib, |   lib, | ||||||
|   config, |   config, | ||||||
|  |   osConfig, | ||||||
|   pkgs, |   pkgs, | ||||||
|   inputs, |   inputs, | ||||||
|   ... |   ... | ||||||
| }: let | }: | ||||||
|   cfg = config.users.leyla; | { | ||||||
| in { |  | ||||||
|   imports = [ |  | ||||||
|     ../../overlays/intellij.nix |  | ||||||
|     ../../overlays/vscodium.nix |  | ||||||
|   ]; |  | ||||||
| 
 |  | ||||||
|   nixpkgs = { |   nixpkgs = { | ||||||
|     overlays = [ |     overlays = [ | ||||||
|       inputs.nix-vscode-extensions.overlays.default |       inputs.nix-vscode-extensions.overlays.default | ||||||
|  | @ -19,119 +14,177 @@ in { | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   programs = { |   programs = { | ||||||
|     bash.shellAliases = lib.mkIf cfg.isFullUser { |     bash.shellAliases = lib.mkIf config.isFullUser { | ||||||
|       code = "codium"; |       code = "codium"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     steam = lib.mkIf cfg.isFullUser { |     vscode = let  | ||||||
|  |       extensions = inputs.nix-vscode-extensions.extensions.${pkgs.system}; | ||||||
|  |       open-vsx = extensions.open-vsx; | ||||||
|  |       vscode-marketplace = extensions.vscode-marketplace; | ||||||
|  |     in | ||||||
|  |     { | ||||||
|       enable = true; |       enable = true; | ||||||
|       remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play |      | ||||||
|       dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server |       package = pkgs.vscodium; | ||||||
|  | 
 | ||||||
|  |       mutableExtensionsDir = false; | ||||||
|  |       enableUpdateCheck = false; | ||||||
|  |       enableExtensionUpdateCheck = false; | ||||||
|  | 
 | ||||||
|  |       userSettings = { | ||||||
|  |         "workbench.colorTheme" = "Atom One Dark"; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       extensions = with extensions.open-vsx; [ | ||||||
|  |         # vs code feel extensions | ||||||
|  |         ms-vscode.atom-keybindings | ||||||
|  |         akamud.vscode-theme-onedark | ||||||
|  |         streetsidesoftware.code-spell-checker | ||||||
|  |         streetsidesoftware.code-spell-checker-german | ||||||
|  |         streetsidesoftware.code-spell-checker-italian | ||||||
|  |         jeanp413.open-remote-ssh | ||||||
|  | 
 | ||||||
|  |         # nix extensions | ||||||
|  |         pinage404.nix-extension-pack | ||||||
|  |         jnoortheen.nix-ide | ||||||
|  | 
 | ||||||
|  |         # html extensions | ||||||
|  |         formulahendry.auto-rename-tag | ||||||
|  |         ms-vscode.live-server | ||||||
|  | 
 | ||||||
|  |         # js extensions | ||||||
|  |         dsznajder.es7-react-js-snippets | ||||||
|  |         dbaeumer.vscode-eslint | ||||||
|  |         standard.vscode-standard | ||||||
|  |         firsttris.vscode-jest-runner | ||||||
|  |         stylelint.vscode-stylelint | ||||||
|  |         tauri-apps.tauri-vscode | ||||||
|  | 
 | ||||||
|  |         # misc extensions | ||||||
|  |         bungcip.better-toml | ||||||
|  | 
 | ||||||
|  |         # the number at the start of the name here doesnt resolve nicely so we have to refernce it as a part of open-vsx directly instead of though with | ||||||
|  |         open-vsx."10nates".ollama-autocoder | ||||||
|  |       ] | ||||||
|  |       ++ (with extensions.vscode-marketplace; [ | ||||||
|  |         # js extensions | ||||||
|  |         karyfoundation.nearley | ||||||
|  |       ]); | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     noisetorch.enable = cfg.isFullUser; |  | ||||||
| 
 | 
 | ||||||
|     adb.enable = cfg.isFullUser; |     # steam = lib.mkIf config.isFullUser { | ||||||
|  |     #   enable = true; | ||||||
|  |     #   remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play | ||||||
|  |     #   dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server | ||||||
|  |     # }; | ||||||
|  | 
 | ||||||
|  |     # noisetorch.enable = config.isFullUser; | ||||||
|  | 
 | ||||||
|  |     # adb.enable = config.isFullUser; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   users.users.leyla.packages = lib.mkIf (cfg.isFullUser || cfg.isThinUser) ( |   home = { | ||||||
|     lib.mkMerge [ |     packages = lib.mkIf (config.isFullUser || config.isThinUser) ( | ||||||
|       ( |       lib.mkMerge [ | ||||||
|         with pkgs; [ |         ( | ||||||
|           # comand line tools |  | ||||||
|           yt-dlp |  | ||||||
|           ffmpeg |  | ||||||
|           imagemagick |  | ||||||
|         ] |  | ||||||
|       ) |  | ||||||
|       ( |  | ||||||
|         lib.mkIf (!cfg.isThinUser) ( |  | ||||||
|           with pkgs; [ |           with pkgs; [ | ||||||
|             #foss platforms |             # comand line tools | ||||||
|             signal-desktop |             yt-dlp | ||||||
|             bitwarden |             ffmpeg | ||||||
|             firefox |             imagemagick | ||||||
|             ungoogled-chromium |  | ||||||
|             libreoffice |  | ||||||
|             inkscape |  | ||||||
|             gimp |  | ||||||
|             krita |  | ||||||
|             freecad |  | ||||||
|             # cura |  | ||||||
|             kicad-small |  | ||||||
|             makemkv |  | ||||||
|             transmission_4-gtk |  | ||||||
|             onionshare |  | ||||||
|             easytag |  | ||||||
|             # rhythmbox |  | ||||||
|             (lib.mkIf cfg.hasGPU obs-studio) |  | ||||||
|             # wireshark |  | ||||||
|             # rpi-imager |  | ||||||
|             # fritzing |  | ||||||
| 
 |  | ||||||
|             # proprietary platforms |  | ||||||
|             discord |  | ||||||
|             obsidian |  | ||||||
|             steam |  | ||||||
|             (lib.mkIf cfg.hasGPU davinci-resolve) |  | ||||||
| 
 |  | ||||||
|             # development tools |  | ||||||
|             (vscode-with-extensions.override { |  | ||||||
|               vscode = vscodium; |  | ||||||
|               vscodeExtensions = with open-vsx; |  | ||||||
|                 [ |  | ||||||
|                   # vs code feel extensions |  | ||||||
|                   ms-vscode.atom-keybindings |  | ||||||
|                   akamud.vscode-theme-onedark |  | ||||||
|                   streetsidesoftware.code-spell-checker |  | ||||||
|                   streetsidesoftware.code-spell-checker-german |  | ||||||
|                   streetsidesoftware.code-spell-checker-italian |  | ||||||
|                   jeanp413.open-remote-ssh |  | ||||||
| 
 |  | ||||||
|                   # nix extensions |  | ||||||
|                   pinage404.nix-extension-pack |  | ||||||
|                   jnoortheen.nix-ide |  | ||||||
| 
 |  | ||||||
|                   # html extensions |  | ||||||
|                   formulahendry.auto-rename-tag |  | ||||||
|                   ms-vscode.live-server |  | ||||||
| 
 |  | ||||||
|                   # js extensions |  | ||||||
|                   dsznajder.es7-react-js-snippets |  | ||||||
|                   dbaeumer.vscode-eslint |  | ||||||
|                   standard.vscode-standard |  | ||||||
|                   firsttris.vscode-jest-runner |  | ||||||
|                   stylelint.vscode-stylelint |  | ||||||
|                   tauri-apps.tauri-vscode |  | ||||||
| 
 |  | ||||||
|                   # misc extensions |  | ||||||
|                   bungcip.better-toml |  | ||||||
| 
 |  | ||||||
|                   open-vsx."10nates".ollama-autocoder |  | ||||||
|                 ] |  | ||||||
|                 ++ (with vscode-marketplace; [ |  | ||||||
|                   # js extensions |  | ||||||
|                   karyfoundation.nearley |  | ||||||
|                 ]); |  | ||||||
|             }) |  | ||||||
|             androidStudioPackages.canary |  | ||||||
|             jetbrains.idea-community |  | ||||||
|             dbeaver-bin |  | ||||||
|             bruno |  | ||||||
| 
 |  | ||||||
|             # system tools |  | ||||||
|             protonvpn-gui |  | ||||||
|             openvpn |  | ||||||
|             nextcloud-client |  | ||||||
|             noisetorch |  | ||||||
| 
 |  | ||||||
|             # hardware managment tools |  | ||||||
|             (lib.mkIf config.hardware.piperMouse.enable piper) |  | ||||||
|             (lib.mkIf config.hardware.openRGB.enable openrgb) |  | ||||||
|             (lib.mkIf config.hardware.viaKeyboard.enable via) |  | ||||||
|           ] |           ] | ||||||
|         ) |         ) | ||||||
|       ) |         ( | ||||||
|     ] |           lib.mkIf (!config.isThinUser) ( | ||||||
|   ); |             with pkgs; [ | ||||||
|  |               #foss platforms | ||||||
|  |               signal-desktop | ||||||
|  |               bitwarden | ||||||
|  |               firefox | ||||||
|  |               ungoogled-chromium | ||||||
|  |               libreoffice | ||||||
|  |               inkscape | ||||||
|  |               gimp | ||||||
|  |               krita | ||||||
|  |               freecad | ||||||
|  |               # cura | ||||||
|  |               kicad-small | ||||||
|  |               makemkv | ||||||
|  |               transmission_4-gtk | ||||||
|  |               onionshare | ||||||
|  |               easytag | ||||||
|  |               # rhythmbox | ||||||
|  |               (lib.mkIf config.hasGPU obs-studio) | ||||||
|  |               # wireshark | ||||||
|  |               # rpi-imager | ||||||
|  |               # fritzing | ||||||
|  | 
 | ||||||
|  |               # proprietary platforms | ||||||
|  |               discord | ||||||
|  |               obsidian | ||||||
|  |               steam | ||||||
|  |               (lib.mkIf config.hasGPU davinci-resolve) | ||||||
|  | 
 | ||||||
|  |               # development tools | ||||||
|  |               # (vscode-with-extensions.override { | ||||||
|  |               #   vscode = vscodium; | ||||||
|  |               #   vscodeExtensions = with open-vsx; | ||||||
|  |               #     [ | ||||||
|  |               #       # vs code feel extensions | ||||||
|  |               #       ms-vscode.atom-keybindings | ||||||
|  |               #       akamud.vscode-theme-onedark | ||||||
|  |               #       streetsidesoftware.code-spell-checker | ||||||
|  |               #       streetsidesoftware.code-spell-checker-german | ||||||
|  |               #       streetsidesoftware.code-spell-checker-italian | ||||||
|  |               #       jeanp413.open-remote-ssh | ||||||
|  | 
 | ||||||
|  |               #       # nix extensions | ||||||
|  |               #       pinage404.nix-extension-pack | ||||||
|  |               #       jnoortheen.nix-ide | ||||||
|  | 
 | ||||||
|  |               #       # html extensions | ||||||
|  |               #       formulahendry.auto-rename-tag | ||||||
|  |               #       ms-vscode.live-server | ||||||
|  | 
 | ||||||
|  |               #       # js extensions | ||||||
|  |               #       dsznajder.es7-react-js-snippets | ||||||
|  |               #       dbaeumer.vscode-eslint | ||||||
|  |               #       standard.vscode-standard | ||||||
|  |               #       firsttris.vscode-jest-runner | ||||||
|  |               #       stylelint.vscode-stylelint | ||||||
|  |               #       tauri-apps.tauri-vscode | ||||||
|  | 
 | ||||||
|  |               #       # misc extensions | ||||||
|  |               #       bungcip.better-toml | ||||||
|  | 
 | ||||||
|  |               #       open-vsx."10nates".ollama-autocoder | ||||||
|  |               #     ] | ||||||
|  |               #     ++ (with vscode-marketplace; [ | ||||||
|  |               #       # js extensions | ||||||
|  |               #       karyfoundation.nearley | ||||||
|  |               #     ]); | ||||||
|  |               # }) | ||||||
|  |               androidStudioPackages.canary | ||||||
|  |               jetbrains.idea-community | ||||||
|  |               dbeaver-bin | ||||||
|  |               bruno | ||||||
|  | 
 | ||||||
|  |               # system tools | ||||||
|  |               protonvpn-gui | ||||||
|  |               openvpn | ||||||
|  |               nextcloud-client | ||||||
|  |               noisetorch | ||||||
|  | 
 | ||||||
|  |               # hardware managment tools | ||||||
|  |               (lib.mkIf osConfig.hardware.piperMouse.enable piper) | ||||||
|  |               (lib.mkIf osConfig.hardware.openRGB.enable openrgb) | ||||||
|  |               (lib.mkIf osConfig.hardware.viaKeyboard.enable via) | ||||||
|  |             ] | ||||||
|  |           ) | ||||||
|  |         ) | ||||||
|  |       ] | ||||||
|  |     ); | ||||||
|  |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue