forked from jan-leila/nix-config
		
	restructured project to split out home manager
This commit is contained in:
		
							parent
							
								
									c8e7944da5
								
							
						
					
					
						commit
						18f51a65c2
					
				
					 24 changed files with 421 additions and 254 deletions
				
			
		
							
								
								
									
										5
									
								
								homes/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								homes/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| { | ||||
|   leyla = import ./leyla; | ||||
|   ester = import ./ester; | ||||
|   eve = import ./eve; | ||||
| } | ||||
							
								
								
									
										71
									
								
								homes/ester/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								homes/ester/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,71 @@ | |||
| { | ||||
|   pkgs, | ||||
|   lib, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = osConfig.nixos.users.ester; | ||||
| in { | ||||
|   config = { | ||||
|     home = { | ||||
|       username = "ester"; | ||||
|       homeDirectory = osConfig.users.users.ester.home; | ||||
| 
 | ||||
|       # This value determines the Home Manager release that your configuration is | ||||
|       # compatible with. This helps avoid breakage when a new Home Manager release | ||||
|       # introduces backwards incompatible changes. | ||||
|       # | ||||
|       # 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. | ||||
| 
 | ||||
|       # 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/ester/etc/profile.d/hm-session-vars.sh | ||||
|       # | ||||
|       sessionVariables = { | ||||
|         # EDITOR = "emacs"; | ||||
|       }; | ||||
| 
 | ||||
|       packages = lib.mkIf cfg.isDesktopUser ( | ||||
|         with pkgs; [ | ||||
|           firefox | ||||
|           bitwarden | ||||
|           discord | ||||
|         ] | ||||
|       ); | ||||
|     }; | ||||
| 
 | ||||
|     programs = { | ||||
|       # Let Home Manager install and manage itself. | ||||
|       home-manager.enable = true; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										73
									
								
								homes/eve/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								homes/eve/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,73 @@ | |||
| { | ||||
|   pkgs, | ||||
|   lib, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = osConfig.nixos.users.eve; | ||||
| in { | ||||
|   config = { | ||||
|     home = { | ||||
|       username = "eve"; | ||||
|       homeDirectory = osConfig.users.users.eve.home; | ||||
| 
 | ||||
|       # This value determines the Home Manager release that your configuration is | ||||
|       # compatible with. This helps avoid breakage when a new Home Manager release | ||||
|       # introduces backwards incompatible changes. | ||||
|       # | ||||
|       # 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. | ||||
| 
 | ||||
|       # 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"; | ||||
|       }; | ||||
| 
 | ||||
|       packages = lib.mkIf cfg.isDesktopUser ( | ||||
|         with pkgs; [ | ||||
|           firefox | ||||
|           bitwarden | ||||
|           discord | ||||
|           makemkv | ||||
|           signal-desktop | ||||
|         ] | ||||
|       ); | ||||
|     }; | ||||
| 
 | ||||
|     programs = { | ||||
|       # Let Home Manager install and manage itself. | ||||
|       home-manager.enable = true; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										269
									
								
								homes/leyla/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										269
									
								
								homes/leyla/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,269 @@ | |||
| { | ||||
|   pkgs, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   imports = [ | ||||
|     ./packages.nix | ||||
|   ]; | ||||
| 
 | ||||
|   config = { | ||||
|     # Home Manager needs a bit of information about you and the paths it should | ||||
|     # manage. | ||||
|     home = { | ||||
|       username = "leyla"; | ||||
|       homeDirectory = osConfig.users.users.leyla.home; | ||||
| 
 | ||||
|       # This value determines the Home Manager release that your configuration is | ||||
|       # compatible with. This helps avoid breakage when a new Home Manager release | ||||
|       # introduces backwards incompatible changes. | ||||
|       # | ||||
|       # 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. | ||||
| 
 | ||||
|       # 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 | ||||
|         # ''; | ||||
|         ".config/user-dirs.dirs" = { | ||||
|           force = true; | ||||
|           text = '' | ||||
|             # This file is written by xdg-user-dirs-update | ||||
|             # If you want to change or add directories, just edit the line you're | ||||
|             # interested in. All local changes will be retained on the next run. | ||||
|             # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped | ||||
|             # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an | ||||
|             # absolute path. No other format is supported. | ||||
|             # | ||||
|             XDG_DESKTOP_DIR="$HOME/desktop" | ||||
|             XDG_DOWNLOAD_DIR="$HOME/downloads" | ||||
|             XDG_DOCUMENTS_DIR="$HOME/documents" | ||||
|             XDG_TEMPLATES_DIR="$HOME/documents/templates" | ||||
|             XDG_MUSIC_DIR="$HOME/documents/music" | ||||
|             XDG_PICTURES_DIR="$HOME/documents/photos" | ||||
|             XDG_VIDEOS_DIR="$HOME/documents/videos" | ||||
|             XDG_PUBLICSHARE_DIR="$HOME/documents/public" | ||||
|           ''; | ||||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|       # 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 = { | ||||
|       # Let Home Manager install and manage itself. | ||||
|       home-manager.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; | ||||
|         nix-direnv.enable = true; | ||||
|         config = { | ||||
|           global.hide_env_diff = true; | ||||
|           whitelist.exact = ["/home/leyla/documents/code/nix-config"]; | ||||
|         }; | ||||
|       }; | ||||
|       bash.enable = true; | ||||
| 
 | ||||
|       # 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 = [""]; | ||||
|       #       # } | ||||
|       #     ]; | ||||
|       #   }; | ||||
|       # } | ||||
|     }; | ||||
| 
 | ||||
|     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"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										304
									
								
								homes/leyla/firefox.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										304
									
								
								homes/leyla/firefox.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,304 @@ | |||
| { | ||||
|   lib, | ||||
|   osConfig, | ||||
|   # buildFirefoxXpiAddon, | ||||
|   pkgs, | ||||
|   inputs, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = osConfig.nixos.users.leyla; | ||||
| in { | ||||
|   # programs.firefox = { | ||||
|   #   enable = cfg.isDesktopUser; | ||||
|   #   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 inputs.firefox-addons.packages."x86_64-linux"; [ | ||||
|   #         bitwarden | ||||
|   #         terms-of-service-didnt-read | ||||
|   #         multi-account-containers | ||||
|   #         shinigami-eyes | ||||
| 
 | ||||
|   #         ublock-origin | ||||
|   #         sponsorblock | ||||
|   #         dearrow | ||||
|   #         df-youtube | ||||
|   #         return-youtube-dislikes | ||||
| 
 | ||||
|   #         privacy-badger | ||||
|   #         decentraleyes | ||||
|   #         clearurls | ||||
|   #         localcdn | ||||
| 
 | ||||
|   #         snowflake | ||||
| 
 | ||||
|   #         deutsch-de-language-pack | ||||
|   #         dictionary-german | ||||
| 
 | ||||
|   #         # ( | ||||
|   #         #   buildFirefoxXpiAddon rec { | ||||
|   #         #     pname = "italiano-it-language-pack"; | ||||
|   #         #     version = "132.0.20241110.231641"; | ||||
|   #         #     addonId = "langpack-it@firefox.mozilla.org"; | ||||
|   #         #     url = "https://addons.mozilla.org/firefox/downloads/file/4392453/italiano_it_language_pack-${version}.xpi"; | ||||
|   #         #     sha256 = ""; | ||||
|   #         #     meta = with lib; | ||||
|   #         #     { | ||||
|   #         #       description = "Firefox Language Pack for Italiano (it) – Italian"; | ||||
|   #         #       license = licenses.mpl20; | ||||
|   #         #       mozPermissions = []; | ||||
|   #         #       platforms = platforms.all; | ||||
|   #         #     }; | ||||
|   #         #   } | ||||
|   #         # ) | ||||
|   #         # ( | ||||
|   #         #   buildFirefoxXpiAddon rec { | ||||
|   #         #     pname = "dizionario-italiano"; | ||||
|   #         #     version = "5.1"; | ||||
|   #         #     addonId = "it-IT@dictionaries.addons.mozilla.org"; | ||||
|   #         #     url = "https://addons.mozilla.org/firefox/downloads/file/1163874/dizionario_italiano-${version}.xpi"; | ||||
|   #         #     sha256 = ""; | ||||
|   #         #     meta = with lib; | ||||
|   #         #     { | ||||
|   #         #       description = "Add support for Italian to spellchecking"; | ||||
|   #         #       license = licenses.gpl3; | ||||
|   #         #       mozPermissions = []; | ||||
|   #         #       platforms = platforms.all; | ||||
|   #         #     }; | ||||
|   #         #   } | ||||
|   #         # ) | ||||
|   #     ]; | ||||
| 
 | ||||
|   #     settings = { | ||||
|   #       # Disable irritating first-run stuff | ||||
|   #       "browser.disableResetPrompt" = true; | ||||
|   #       "browser.download.panel.shown" = true; | ||||
|   #       "browser.feeds.showFirstRunUI" = false; | ||||
|   #       "browser.messaging-system.whatsNewPanel.enabled" = false; | ||||
|   #       "browser.rights.3.shown" = true; | ||||
|   #       "browser.shell.checkDefaultBrowser" = false; | ||||
|   #       "browser.shell.defaultBrowserCheckCount" = 1; | ||||
|   #       "browser.startup.homepage_override.mstone" = "ignore"; | ||||
|   #       "browser.uitour.enabled" = false; | ||||
|   #       "startup.homepage_override_url" = ""; | ||||
|   #       "trailhead.firstrun.didSeeAboutWelcome" = true; | ||||
|   #       "browser.bookmarks.restore_default_bookmarks" = false; | ||||
|   #       "browser.bookmarks.addedImportButton" = true; | ||||
| 
 | ||||
|   #       # Usage Experiance | ||||
|   #       "browser.startup.homepage" = "about:home"; | ||||
|   #       "browser.download.useDownloadDir" = false; | ||||
|   #       "browser.uiCustomization.state" = builtins.toJSON { | ||||
|   #         "currentVersion" = 20; | ||||
|   #         "newElementCount" = 6; | ||||
|   #         "dirtyAreaCache" = [ | ||||
|   #           "nav-bar" | ||||
|   #           "PersonalToolbar" | ||||
|   #           "toolbar-menubar" | ||||
|   #           "TabsToolbar" | ||||
|   #           "unified-extensions-area" | ||||
|   #           "vertical-tabs" | ||||
|   #         ]; | ||||
|   #         "placements" = { | ||||
|   #           "widget-overflow-fixed-list" = []; | ||||
|   #           "unified-extensions-area"= [ | ||||
|   #             "ublock0_raymondhill_net-browser-action" | ||||
|   #             "sponsorblocker_ajay_app-browser-action" | ||||
|   #             "dearrow_ajay_app-browser-action" | ||||
|   #             "privacy_privacy_com-browser-action" | ||||
|   #             "addon_simplelogin-browser-action" | ||||
|   #           ]; | ||||
|   #           "nav-bar" = [ | ||||
|   #             "back-button" | ||||
|   #             "forward-button" | ||||
|   #             "stop-reload-button" | ||||
|   #             "urlbar-container" | ||||
|   #             "downloads-button" | ||||
|   #             "unified-extensions-button" | ||||
|   #             "reset-pbm-toolbar-button" | ||||
|   #           ]; | ||||
|   #           "toolbar-menubar" = [ | ||||
|   #             "menubar-items" | ||||
|   #           ]; | ||||
|   #           "TabsToolbar" = [ | ||||
|   #             "firefox-view-button" | ||||
|   #             "tabbrowser-tabs" | ||||
|   #             "new-tab-button" | ||||
|   #             "alltabs-button" | ||||
|   #           ]; | ||||
|   #           "vertical-tabs" = []; | ||||
|   #           "PersonalToolbar" = [ | ||||
|   #             "import-button" | ||||
|   #             "personal-bookmarks" | ||||
|   #           ]; | ||||
|   #         }; | ||||
|   #         "seen" = [ | ||||
|   #           "save-to-pocket-button" | ||||
|   #           "developer-button" | ||||
|   #           "privacy_privacy_com-browser-action" | ||||
|   #           "sponsorblocker_ajay_app-browser-action" | ||||
|   #           "ublock0_raymondhill_net-browser-action" | ||||
|   #           "addon_simplelogin-browser-action" | ||||
|   #           "dearrow_ajay_app-browser-action" | ||||
|   #         ]; | ||||
|   #       }; | ||||
|   #       "browser.newtabpage.activity-stream.feeds.topsites" = false; | ||||
|   #       "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; | ||||
|   #       "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false; | ||||
|   #       "browser.newtabpage.blocked" = lib.genAttrs [ | ||||
|   #         # Facebook | ||||
|   #         "4gPpjkxgZzXPVtuEoAL9Ig==" | ||||
|   #         # Reddit | ||||
|   #         "gLv0ja2RYVgxKdp0I5qwvA==" | ||||
|   #         # Amazon | ||||
|   #         "K00ILysCaEq8+bEqV/3nuw==" | ||||
|   #         # Twitter | ||||
|   #         "T9nJot5PurhJSy8n038xGA==" | ||||
|   #       ] (_: 1); | ||||
|   #       "signon.rememberSignons" = false; | ||||
|   #       "identity.fxaccounts.enabled" = false; | ||||
| 
 | ||||
|   #       # Security | ||||
|   #       "privacy.trackingprotection.enabled" = true; | ||||
|   #       "dom.security.https_only_mode" = true; | ||||
| 
 | ||||
|   #       # Disable telemetry | ||||
|   #       "app.shield.optoutstudies.enabled" = false; | ||||
|   #       "browser.discovery.enabled" = false; | ||||
|   #       "browser.newtabpage.activity-stream.feeds.telemetry" = false; | ||||
|   #       "browser.newtabpage.activity-stream.telemetry" = false; | ||||
|   #       "browser.ping-centre.telemetry" = false; | ||||
|   #       "datareporting.healthreport.service.enabled" = false; | ||||
|   #       "datareporting.healthreport.uploadEnabled" = false; | ||||
|   #       "datareporting.policy.dataSubmissionEnabled" = false; | ||||
|   #       "datareporting.sessions.current.clean" = true; | ||||
|   #       "devtools.onboarding.telemetry.logged" = false; | ||||
|   #       "toolkit.telemetry.archive.enabled" = false; | ||||
|   #       "toolkit.telemetry.bhrPing.enabled" = false; | ||||
|   #       "toolkit.telemetry.enabled" = false; | ||||
|   #       "toolkit.telemetry.firstShutdownPing.enabled" = false; | ||||
|   #       "toolkit.telemetry.hybridContent.enabled" = false; | ||||
|   #       "toolkit.telemetry.newProfilePing.enabled" = false; | ||||
|   #       "toolkit.telemetry.prompted" = 2; | ||||
|   #       "toolkit.telemetry.rejected" = true; | ||||
|   #       "toolkit.telemetry.reportingpolicy.firstRun" = false; | ||||
|   #       "toolkit.telemetry.server" = ""; | ||||
|   #       "toolkit.telemetry.shutdownPingSender.enabled" = false; | ||||
|   #       "toolkit.telemetry.unified" = false; | ||||
|   #       "toolkit.telemetry.unifiedIsOptIn" = false; | ||||
|   #       "toolkit.telemetry.updatePing.enabled" = false; | ||||
|   #     }; | ||||
| 
 | ||||
|   #     bookmarks = [ | ||||
|   #       { | ||||
|   #         name = "Media"; | ||||
|   #         url = "https://jellyfin.jan-leila.com/"; | ||||
|   #         # url = "https://media.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://mspsocial.net"; | ||||
|   #         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 = [""]; | ||||
|   #       # } | ||||
|   #     ]; | ||||
|   #   }; | ||||
|   # }; | ||||
| } | ||||
							
								
								
									
										83
									
								
								homes/leyla/packages.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								homes/leyla/packages.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,83 @@ | |||
| { | ||||
|   lib, | ||||
|   osConfig, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = osConfig.nixos.users.leyla; | ||||
| in { | ||||
|   imports = [ | ||||
|     ./vscode.nix | ||||
|     ./firefox.nix | ||||
|   ]; | ||||
| 
 | ||||
|   home = { | ||||
|     packages = lib.mkIf (cfg.isDesktopUser || cfg.isTerminalUser) ( | ||||
|       lib.mkMerge [ | ||||
|         ( | ||||
|           with pkgs; [ | ||||
|             # comand line tools | ||||
|             yt-dlp | ||||
|             ffmpeg | ||||
|             imagemagick | ||||
|           ] | ||||
|         ) | ||||
|         ( | ||||
|           lib.mkIf (!cfg.isTerminalUser) ( | ||||
|             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 cfg.hasGPU obs-studio) | ||||
|               # wireshark | ||||
|               # rpi-imager | ||||
|               # fritzing | ||||
| 
 | ||||
|               # proprietary platforms | ||||
|               discord | ||||
|               obsidian | ||||
|               steam | ||||
|               (lib.mkIf cfg.hasGPU davinci-resolve) | ||||
| 
 | ||||
|               anki-bin | ||||
| 
 | ||||
|               # development tools | ||||
|               androidStudioPackages.canary | ||||
|               jetbrains.idea-community | ||||
|               dbeaver-bin | ||||
|               bruno | ||||
|               qFlipper | ||||
|               proxmark3 | ||||
|               mfoc | ||||
| 
 | ||||
|               # 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) | ||||
|             ] | ||||
|           ) | ||||
|         ) | ||||
|       ] | ||||
|     ); | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										94
									
								
								homes/leyla/vscode.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								homes/leyla/vscode.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,94 @@ | |||
| { | ||||
|   lib, | ||||
|   osConfig, | ||||
|   pkgs, | ||||
|   inputs, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = osConfig.nixos.users.leyla; | ||||
| in { | ||||
|   nixpkgs = { | ||||
|     overlays = [ | ||||
|       inputs.nix-vscode-extensions.overlays.default | ||||
|     ]; | ||||
|   }; | ||||
| 
 | ||||
|   programs = { | ||||
|     bash.shellAliases = lib.mkIf cfg.isDesktopUser { | ||||
|       code = "codium"; | ||||
|     }; | ||||
| 
 | ||||
|     vscode = let | ||||
|       extensions = inputs.nix-vscode-extensions.extensions.${pkgs.system}; | ||||
|       open-vsx = extensions.open-vsx; | ||||
|       vscode-marketplace = extensions.vscode-marketplace; | ||||
|     in { | ||||
|       enable = cfg.isDesktopUser; | ||||
| 
 | ||||
|       package = pkgs.vscodium; | ||||
| 
 | ||||
|       mutableExtensionsDir = false; | ||||
|       enableUpdateCheck = false; | ||||
|       enableExtensionUpdateCheck = false; | ||||
| 
 | ||||
|       userSettings = { | ||||
|         "workbench.colorTheme" = "Atom One Dark"; | ||||
|         "cSpell.userWords" = [ | ||||
|           "webdav" | ||||
|         ]; | ||||
|         "nix.serverPath" = "nixd"; | ||||
|         "nix.enableLanguageServer" = true; | ||||
|         "nixpkgs" = { | ||||
|           "expr" = "import <nixpkgs> {}"; | ||||
|         }; | ||||
|         # "fomratting": { | ||||
|         #   "command": [ "alejandra" ]; | ||||
|         # }; | ||||
|       }; | ||||
| 
 | ||||
|       extensions = ( | ||||
|         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 | ||||
| 
 | ||||
|             # astro blog extensions | ||||
|             astro-build.astro-vscode | ||||
|             unifiedjs.vscode-mdx | ||||
| 
 | ||||
|             # misc extensions | ||||
|             bungcip.better-toml | ||||
| 
 | ||||
|             # lib.mkIf open-vsx."10nates".ollama-autocoder | ||||
|           ] | ||||
|           ++ ( | ||||
|             with vscode-marketplace; [ | ||||
|               # js extensions | ||||
|               karyfoundation.nearley | ||||
|             ] | ||||
|           ) | ||||
|       ); | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue