created program option entries for all packages that needs continual state
This commit is contained in:
		
							parent
							
								
									5484f9ba04
								
							
						
					
					
						commit
						9fe35e74ad
					
				
					 21 changed files with 374 additions and 63 deletions
				
			
		|  | @ -12,41 +12,47 @@ in { | |||
|     # See https://search.nixos.org/packages for all options | ||||
|     home.packages = lib.lists.optionals userConfig.isDesktopUser ( | ||||
|       with pkgs; [ | ||||
|         firefox | ||||
|         bitwarden | ||||
|         discord | ||||
|         makemkv | ||||
|         signal-desktop-bin | ||||
|         ungoogled-chromium | ||||
|       ] | ||||
|     ); | ||||
| 
 | ||||
|     # Packages that need to be installed with some extra configuration | ||||
|     # See https://home-manager-options.extranix.com/ for all options | ||||
|     programs = { | ||||
|       # Let Home Manager install and manage itself. | ||||
|       home-manager.enable = true; | ||||
|     programs = lib.mkMerge [ | ||||
|       { | ||||
|         # Let Home Manager install and manage itself. | ||||
|         home-manager.enable = true; | ||||
|       } | ||||
|       (lib.mkIf (config.user.isDesktopUser || config.user.isTerminalUser) { | ||||
|         git = { | ||||
|           enable = true; | ||||
|           userName = "Eve"; | ||||
|           userEmail = "evesnrobins@gmail.com"; | ||||
|           extraConfig.init.defaultBranch = "main"; | ||||
|         }; | ||||
| 
 | ||||
|       git = { | ||||
|         enable = true; | ||||
|         userName = "Eve"; | ||||
|         userEmail = "evesnrobins@gmail.com"; | ||||
|         extraConfig.init.defaultBranch = "main"; | ||||
|       }; | ||||
|         openssh = { | ||||
|           enable = true; | ||||
|           hostKeys = [ | ||||
|             { | ||||
|               type = "ed25519"; | ||||
|               path = "${config.home.username}_${osConfig.networking.hostName}_ed25519"; | ||||
|             } | ||||
|           ]; | ||||
|         }; | ||||
|       }) | ||||
|       (lib.mkIf userConfig.isDesktopUser { | ||||
|         vscode = { | ||||
|           enable = true; | ||||
|           package = pkgs.vscodium; | ||||
|         }; | ||||
| 
 | ||||
|       vscode = { | ||||
|         enable = true; | ||||
|         package = pkgs.vscodium; | ||||
|       }; | ||||
| 
 | ||||
|       openssh = { | ||||
|         hostKeys = [ | ||||
|           { | ||||
|             type = "ed25519"; | ||||
|             path = "${config.home.username}_${osConfig.networking.hostName}_ed25519"; | ||||
|           } | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
|         firefox.enable = true; | ||||
|         bitwarden.enable = true; | ||||
|         discord.enable = true; | ||||
|         makemkv.enable = true; | ||||
|         signal-desktop-bin.enable = true; | ||||
|       }) | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -45,10 +45,6 @@ in { | |||
|         ++ ( | ||||
|           lib.lists.optionals hardware.directAccess.enable (with pkgs; [ | ||||
|             #foss platforms | ||||
|             # TODO: move signal to package with impermanence | ||||
|             signal-desktop-bin | ||||
|             # TODO: move bitwarden to package with impermanence | ||||
|             bitwarden | ||||
|             ungoogled-chromium | ||||
|             libreoffice | ||||
|             inkscape | ||||
|  | @ -57,42 +53,25 @@ in { | |||
|             freecad | ||||
|             # cura | ||||
|             # kicad-small | ||||
|             # TODO: move makemkv to package with configs set and impermanence | ||||
|             makemkv | ||||
|             onionshare | ||||
|             # rhythmbox | ||||
| 
 | ||||
|             # TODO: move obs to package with impermanence | ||||
|             (lib.mkIf hardware.graphicsAcceleration.enable obs-studio) | ||||
|             # wireshark | ||||
|             # rpi-imager | ||||
|             # fritzing | ||||
|             mfoc | ||||
|             tor-browser | ||||
|             anki | ||||
|             pdfarranger | ||||
|             calibre | ||||
|             qbittorrent | ||||
|             picard | ||||
| 
 | ||||
|             # proprietary platforms | ||||
|             # TODO: move discord to package with impermanence | ||||
|             discord | ||||
|             # TODO: move obsidian to package with impermanence | ||||
|             obsidian | ||||
|             # TODO: move prostudiomasters to package with impermanence | ||||
|             prostudiomasters | ||||
|             (lib.mkIf hardware.graphicsAcceleration.enable davinci-resolve) | ||||
| 
 | ||||
|             # development tools | ||||
|             # androidStudioPackages.canary | ||||
|             # TODO: move idea to package with impermanence and installed extensions | ||||
|             jetbrains.idea-community | ||||
|             qFlipper | ||||
| 
 | ||||
|             # system tools | ||||
|             # TODO: move protonvpn to package with impermanence and installed extensions | ||||
|             protonvpn-gui | ||||
|             openvpn | ||||
|             noisetorch | ||||
| 
 | ||||
|  | @ -103,12 +82,35 @@ in { | |||
|           ]) | ||||
|         ) | ||||
|       ); | ||||
|       programs = { | ||||
|         # Let Home Manager install and manage itself. | ||||
|         home-manager.enable = true; | ||||
| 
 | ||||
|         bash.enable = true; | ||||
|       }; | ||||
|       programs = lib.mkMerge [ | ||||
|         { | ||||
|           # Let Home Manager install and manage itself. | ||||
|           home-manager.enable = true; | ||||
|           bash.enable = true; | ||||
|         } | ||||
|         (lib.mkIf (config.user.isDesktopUser || config.user.isTerminalUser) { | ||||
|           git.enable = true; | ||||
|           openssh.enable = true; | ||||
|         }) | ||||
|         (lib.mkIf hardware.directAccess.enable { | ||||
|           anki.enable = true; | ||||
|           bitwarden.enable = true; | ||||
|           signal-desktop-bin.enable = true; | ||||
|           makemkv.enable = true; | ||||
|           obs-studio.enable = hardware.graphicsAcceleration.enable; | ||||
|           calibre.enable = true; | ||||
|           qbittorrent.enable = true; | ||||
|           discord.enable = true; | ||||
|           obsidian.enable = true; | ||||
|           prostudiomasters.enable = true; | ||||
|           jetbrains.idea-community.enable = true; | ||||
|           protonvpn-gui.enable = true; | ||||
|         }) | ||||
|         (lib.mkIf (hardware.directAccess.enable && config.user.isDesktopUser) { | ||||
|           vscode.enable = true; | ||||
|           firefox.enable = true; | ||||
|         }) | ||||
|       ]; | ||||
|     }) | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
|  | @ -2,12 +2,10 @@ | |||
|   lib, | ||||
|   pkgs, | ||||
|   inputs, | ||||
|   config, | ||||
|   ... | ||||
| }: { | ||||
|   config = { | ||||
|     programs.firefox = { | ||||
|       enable = config.user.isDesktopUser; | ||||
|       profiles.leyla = { | ||||
|         settings = { | ||||
|           "browser.search.defaultenginename" = "Searx"; | ||||
|  |  | |||
|  | @ -1,8 +1,7 @@ | |||
| {config, ...}: { | ||||
| {...}: { | ||||
|   config = { | ||||
|     programs = { | ||||
|       git = { | ||||
|         enable = config.user.isDesktopUser || config.user.isTerminalUser; | ||||
|         userName = "Leyla Becker"; | ||||
|         userEmail = "git@jan-leila.com"; | ||||
|         extraConfig.init.defaultBranch = "main"; | ||||
|  |  | |||
|  | @ -6,7 +6,6 @@ | |||
|   config = { | ||||
|     programs = { | ||||
|       openssh = { | ||||
|         enable = config.user.isDesktopUser; | ||||
|         authorizedKeys = [ | ||||
|           "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHeItmt8TRW43uNcOC+eIurYC7Eunc0V3LGocQqLaYj leyla@horizon" | ||||
|           "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIILimFIW2exEH/Xo7LtXkqgE04qusvnPNpPWSCeNrFkP leyla@defiant" | ||||
|  | @ -20,6 +19,5 @@ | |||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
|     # TODO: impermanence module, prob in home-manager-modules? | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -26,8 +26,6 @@ in { | |||
|         open-vsx = extensions.open-vsx; | ||||
|         vscode-marketplace = extensions.vscode-marketplace; | ||||
|       in { | ||||
|         enable = true; | ||||
| 
 | ||||
|         package = pkgs.vscodium; | ||||
| 
 | ||||
|         mutableExtensionsDir = false; | ||||
|  |  | |||
|  | @ -6,5 +6,6 @@ | |||
|     ./i18n.nix | ||||
|     ./openssh.nix | ||||
|     ./continue.nix | ||||
|     ./programs | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
							
								
								
									
										24
									
								
								modules/home-manager-modules/programs/anki.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/home-manager-modules/programs/anki.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.anki = { | ||||
|     enable = lib.mkEnableOption "enable anki"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.anki.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         anki | ||||
|       ]; | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for anki | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
							
								
								
									
										24
									
								
								modules/home-manager-modules/programs/bitwarden.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/home-manager-modules/programs/bitwarden.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.bitwarden = { | ||||
|     enable = lib.mkEnableOption "enable bitwarden"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.bitwarden.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         bitwarden | ||||
|       ]; | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for bitwarden | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
							
								
								
									
										24
									
								
								modules/home-manager-modules/programs/calibre.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/home-manager-modules/programs/calibre.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.calibre = { | ||||
|     enable = lib.mkEnableOption "enable calibre"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.calibre.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         calibre | ||||
|       ]; | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for calibre | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
							
								
								
									
										17
									
								
								modules/home-manager-modules/programs/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								modules/home-manager-modules/programs/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | |||
| {...}: { | ||||
|   imports = [ | ||||
|     ./firefox.nix | ||||
|     ./signal.nix | ||||
|     ./bitwarden.nix | ||||
|     ./makemkv.nix | ||||
|     ./obs.nix | ||||
|     ./anki.nix | ||||
|     ./qbittorrent.nix | ||||
|     ./discord.nix | ||||
|     ./obsidian.nix | ||||
|     ./prostudiomasters.nix | ||||
|     ./idea.nix | ||||
|     ./protonvpn.nix | ||||
|     ./calibre.nix | ||||
|   ]; | ||||
| } | ||||
							
								
								
									
										24
									
								
								modules/home-manager-modules/programs/discord.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/home-manager-modules/programs/discord.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.discord = { | ||||
|     enable = lib.mkEnableOption "enable discord"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.discord.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         discord | ||||
|       ]; | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for discord | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
							
								
								
									
										3
									
								
								modules/home-manager-modules/programs/firefox.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								modules/home-manager-modules/programs/firefox.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| {...}: { | ||||
|   # TODO: map firefox impermanence | ||||
| } | ||||
							
								
								
									
										24
									
								
								modules/home-manager-modules/programs/idea.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/home-manager-modules/programs/idea.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.jetbrains.idea-community = { | ||||
|     enable = lib.mkEnableOption "enable idea-community"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.jetbrains.idea-community.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         jetbrains.idea-community | ||||
|       ]; | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for idea-community | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
							
								
								
									
										25
									
								
								modules/home-manager-modules/programs/makemkv.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								modules/home-manager-modules/programs/makemkv.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.makemkv = { | ||||
|     enable = lib.mkEnableOption "enable makemkv"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.makemkv.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         makemkv | ||||
|       ]; | ||||
|       # TODO: write config file for makemkv | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for makemkv | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
							
								
								
									
										24
									
								
								modules/home-manager-modules/programs/obs.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/home-manager-modules/programs/obs.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.obs-studio = { | ||||
|     # enable = lib.mkEnableOption "enable obs"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.obs-studio.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         obs-studio | ||||
|       ]; | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for obs | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
							
								
								
									
										24
									
								
								modules/home-manager-modules/programs/obsidian.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/home-manager-modules/programs/obsidian.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.obsidian = { | ||||
|     # enable = lib.mkEnableOption "enable obsidian"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.obsidian.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         obsidian | ||||
|       ]; | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for obsidian | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
							
								
								
									
										24
									
								
								modules/home-manager-modules/programs/prostudiomasters.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/home-manager-modules/programs/prostudiomasters.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.prostudiomasters = { | ||||
|     enable = lib.mkEnableOption "enable prostudiomasters"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.prostudiomasters.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         prostudiomasters | ||||
|       ]; | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for prostudiomasters | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
							
								
								
									
										24
									
								
								modules/home-manager-modules/programs/protonvpn.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/home-manager-modules/programs/protonvpn.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.protonvpn-gui = { | ||||
|     enable = lib.mkEnableOption "enable protonvpn"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.protonvpn-gui.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         protonvpn-gui | ||||
|       ]; | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for protonvpn | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
							
								
								
									
										24
									
								
								modules/home-manager-modules/programs/qbittorrent.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/home-manager-modules/programs/qbittorrent.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.qbittorrent = { | ||||
|     enable = lib.mkEnableOption "enable qbittorrent"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.qbittorrent.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         qbittorrent | ||||
|       ]; | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for qbittorrent | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
							
								
								
									
										24
									
								
								modules/home-manager-modules/programs/signal.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/home-manager-modules/programs/signal.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   options.programs.signal-desktop-bin = { | ||||
|     enable = lib.mkEnableOption "enable signal"; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.programs.signal-desktop-bin.enable (lib.mkMerge [ | ||||
|     { | ||||
|       home.packages = with pkgs; [ | ||||
|         signal-desktop-bin | ||||
|       ]; | ||||
|     } | ||||
|     ( | ||||
|       lib.mkIf osConfig.host.impermanence.enable { | ||||
|         # TODO: map impermanence for signal | ||||
|       } | ||||
|     ) | ||||
|   ]); | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue