refactored leyla packages into several folders
This commit is contained in:
		
							parent
							
								
									1a4c2b2f95
								
							
						
					
					
						commit
						dd53735354
					
				
					 13 changed files with 275 additions and 233 deletions
				
			
		|  | @ -1,7 +1,7 @@ | |||
| {osConfig, ...}: { | ||||
|   imports = [ | ||||
|     ./packages | ||||
|     ./i18n.nix | ||||
|     ./packages.nix | ||||
|     ./impermanence.nix | ||||
|     ./dconf.nix | ||||
|   ]; | ||||
|  |  | |||
|  | @ -1,136 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   userConfig = osConfig.host.users.leyla; | ||||
|   hardware = osConfig.host.hardware; | ||||
| in { | ||||
|   imports = [ | ||||
|     ./vscode/default.nix | ||||
|     ./firefox.nix | ||||
|   ]; | ||||
| 
 | ||||
|   config = lib.mkMerge [ | ||||
|     (lib.mkIf userConfig.isTerminalUser { | ||||
|       home.packages = with pkgs; [ | ||||
|         # command line tools | ||||
|         sox | ||||
|         yt-dlp | ||||
|         ffmpeg | ||||
|         imagemagick | ||||
|       ]; | ||||
|     }) | ||||
|     (lib.mkIf userConfig.isDesktopUser { | ||||
|       nixpkgs.config = { | ||||
|         allowUnfree = true; | ||||
|       }; | ||||
| 
 | ||||
|       home.packages = ( | ||||
|         lib.lists.optionals userConfig.isDesktopUser ( | ||||
|           (with pkgs; [ | ||||
|             # helvetica font | ||||
|             aileron | ||||
| 
 | ||||
|             gnomeExtensions.dash-to-dock | ||||
| 
 | ||||
|             # development tools | ||||
|             dbeaver-bin | ||||
|             bruno | ||||
|             proxmark3 | ||||
|           ]) | ||||
|           ++ ( | ||||
|             lib.lists.optionals hardware.directAccess.enable (with pkgs; [ | ||||
|               #foss platforms | ||||
|               signal-desktop-bin | ||||
|               bitwarden | ||||
|               ungoogled-chromium | ||||
|               libreoffice | ||||
|               inkscape | ||||
|               gimp | ||||
|               krita | ||||
|               freecad | ||||
|               # cura | ||||
|               # kicad-small | ||||
|               makemkv | ||||
|               onionshare | ||||
|               # rhythmbox | ||||
|               (lib.mkIf hardware.graphicsAcceleration.enable obs-studio) | ||||
|               # wireshark | ||||
|               # rpi-imager | ||||
|               # fritzing | ||||
|               mfoc | ||||
|               tor-browser | ||||
|               anki | ||||
|               pdfarranger | ||||
|               calibre | ||||
|               qbittorrent | ||||
|               picard | ||||
| 
 | ||||
|               # proprietary platforms | ||||
|               discord | ||||
|               obsidian | ||||
|               prostudiomasters | ||||
|               (lib.mkIf hardware.graphicsAcceleration.enable davinci-resolve) | ||||
| 
 | ||||
|               # development tools | ||||
|               # androidStudioPackages.canary | ||||
|               jetbrains.idea-community | ||||
|               qFlipper | ||||
| 
 | ||||
|               # system tools | ||||
|               protonvpn-gui | ||||
|               openvpn | ||||
|               noisetorch | ||||
| 
 | ||||
|               # hardware management tools | ||||
|               (lib.mkIf hardware.piperMouse.enable piper) | ||||
|               (lib.mkIf hardware.openRGB.enable openrgb) | ||||
|               (lib.mkIf hardware.viaKeyboard.enable via) | ||||
|             ]) | ||||
|           ) | ||||
|         ) | ||||
|       ); | ||||
|       programs = lib.mkIf userConfig.isDesktopUser { | ||||
|         # 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; | ||||
| 
 | ||||
|         openssh = { | ||||
|           authorizedKeys = [ | ||||
|             "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHeItmt8TRW43uNcOC+eIurYC7Eunc0V3LGocQqLaYj leyla@horizon" | ||||
|             "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIILimFIW2exEH/Xo7LtXkqgE04qusvnPNpPWSCeNrFkP leyla@defiant" | ||||
|             "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKBiZkg1c2aaNHiieBX4cEziqvJVj9pcDfzUrKU/mO0I leyla@twilight" | ||||
|           ]; | ||||
|           hostKeys = [ | ||||
|             { | ||||
|               type = "ed25519"; | ||||
|               path = "${config.home.username}_${osConfig.networking.hostName}_ed25519"; | ||||
|             } | ||||
|           ]; | ||||
|         }; | ||||
|       }; | ||||
|     }) | ||||
|   ]; | ||||
| } | ||||
							
								
								
									
										104
									
								
								configurations/home-manager/leyla/packages/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								configurations/home-manager/leyla/packages/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,104 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   hardware = osConfig.host.hardware; | ||||
| in { | ||||
|   imports = [ | ||||
|     ./vscode | ||||
|     ./firefox.nix | ||||
|     ./direnv.nix | ||||
|     ./openssh.nix | ||||
|     ./git.nix | ||||
|   ]; | ||||
| 
 | ||||
|   config = lib.mkMerge [ | ||||
|     (lib.mkIf config.user.isTerminalUser { | ||||
|       home.packages = with pkgs; [ | ||||
|         # command line tools | ||||
|         sox | ||||
|         yt-dlp | ||||
|         ffmpeg | ||||
|         imagemagick | ||||
|       ]; | ||||
|     }) | ||||
|     (lib.mkIf config.user.isDesktopUser { | ||||
|       nixpkgs.config = { | ||||
|         allowUnfree = true; | ||||
|       }; | ||||
| 
 | ||||
|       home.packages = ( | ||||
|         (with pkgs; [ | ||||
|           # helvetica font | ||||
|           aileron | ||||
| 
 | ||||
|           gnomeExtensions.dash-to-dock | ||||
| 
 | ||||
|           # development tools | ||||
|           dbeaver-bin | ||||
|           bruno | ||||
|           proxmark3 | ||||
|         ]) | ||||
|         ++ ( | ||||
|           lib.lists.optionals hardware.directAccess.enable (with pkgs; [ | ||||
|             #foss platforms | ||||
|             signal-desktop-bin | ||||
|             bitwarden | ||||
|             ungoogled-chromium | ||||
|             libreoffice | ||||
|             inkscape | ||||
|             gimp | ||||
|             krita | ||||
|             freecad | ||||
|             # cura | ||||
|             # kicad-small | ||||
|             makemkv | ||||
|             onionshare | ||||
|             # rhythmbox | ||||
|             (lib.mkIf hardware.graphicsAcceleration.enable obs-studio) | ||||
|             # wireshark | ||||
|             # rpi-imager | ||||
|             # fritzing | ||||
|             mfoc | ||||
|             tor-browser | ||||
|             anki | ||||
|             pdfarranger | ||||
|             calibre | ||||
|             qbittorrent | ||||
|             picard | ||||
| 
 | ||||
|             # proprietary platforms | ||||
|             discord | ||||
|             obsidian | ||||
|             prostudiomasters | ||||
|             (lib.mkIf hardware.graphicsAcceleration.enable davinci-resolve) | ||||
| 
 | ||||
|             # development tools | ||||
|             # androidStudioPackages.canary | ||||
|             jetbrains.idea-community | ||||
|             qFlipper | ||||
| 
 | ||||
|             # system tools | ||||
|             protonvpn-gui | ||||
|             openvpn | ||||
|             noisetorch | ||||
| 
 | ||||
|             # hardware management tools | ||||
|             (lib.mkIf hardware.piperMouse.enable piper) | ||||
|             (lib.mkIf hardware.openRGB.enable openrgb) | ||||
|             (lib.mkIf hardware.viaKeyboard.enable via) | ||||
|           ]) | ||||
|         ) | ||||
|       ); | ||||
|       programs = { | ||||
|         # Let Home Manager install and manage itself. | ||||
|         home-manager.enable = true; | ||||
| 
 | ||||
|         bash.enable = true; | ||||
|       }; | ||||
|     }) | ||||
|   ]; | ||||
| } | ||||
							
								
								
									
										12
									
								
								configurations/home-manager/leyla/packages/direnv.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								configurations/home-manager/leyla/packages/direnv.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| {config, ...}: { | ||||
|   config = { | ||||
|     programs = { | ||||
|       git = { | ||||
|         enable = config.user.isDesktopUser || config.user.isTerminalUser; | ||||
|         userName = "Leyla Becker"; | ||||
|         userEmail = "git@jan-leila.com"; | ||||
|         extraConfig.init.defaultBranch = "main"; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -2,14 +2,12 @@ | |||
|   lib, | ||||
|   pkgs, | ||||
|   inputs, | ||||
|   osConfig, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   is-desktop-user = osConfig.host.users.leyla.isDesktopUser; | ||||
| in { | ||||
|   config = lib.mkIf is-desktop-user { | ||||
| }: { | ||||
|   config = { | ||||
|     programs.firefox = { | ||||
|       enable = true; | ||||
|       enable = config.user.isDesktopUser; | ||||
|       profiles.leyla = { | ||||
|         settings = { | ||||
|           "browser.search.defaultenginename" = "Searx"; | ||||
							
								
								
									
										22
									
								
								configurations/home-manager/leyla/packages/git.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								configurations/home-manager/leyla/packages/git.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   userConfig = osConfig.host.users.leyla; | ||||
| in { | ||||
|   config = lib.mkIf userConfig.isDesktopUser { | ||||
|     programs = { | ||||
|       direnv = { | ||||
|         enable = true; | ||||
|         enableBashIntegration = true; | ||||
|         nix-direnv.enable = true; | ||||
|         config = { | ||||
|           global.hide_env_diff = true; | ||||
|           whitelist.exact = ["${config.home.homeDirectory}/documents/code/nix-config"]; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										24
									
								
								configurations/home-manager/leyla/packages/openssh.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								configurations/home-manager/leyla/packages/openssh.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   config = { | ||||
|     programs = { | ||||
|       openssh = { | ||||
|         enable = config.user.isDesktopUser; | ||||
|         authorizedKeys = [ | ||||
|           "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHeItmt8TRW43uNcOC+eIurYC7Eunc0V3LGocQqLaYj leyla@horizon" | ||||
|           "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIILimFIW2exEH/Xo7LtXkqgE04qusvnPNpPWSCeNrFkP leyla@defiant" | ||||
|           "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKBiZkg1c2aaNHiieBX4cEziqvJVj9pcDfzUrKU/mO0I leyla@twilight" | ||||
|         ]; | ||||
|         hostKeys = [ | ||||
|           { | ||||
|             type = "ed25519"; | ||||
|             path = "${config.home.username}_${osConfig.networking.hostName}_ed25519"; | ||||
|           } | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -8,9 +8,8 @@ | |||
| }: let | ||||
|   nix-development-enabled = osConfig.host.nix-development.enable; | ||||
|   ai-tooling-enabled = config.user.continue.enable && osConfig.host.ai.enable; | ||||
|   is-desktop-user = osConfig.host.users.leyla.isDesktopUser; | ||||
| in { | ||||
|   config = lib.mkIf is-desktop-user { | ||||
|   config = lib.mkIf config.user.isDesktopUser { | ||||
|     nixpkgs = { | ||||
|       overlays = [ | ||||
|         inputs.nix-vscode-extensions.overlays.default | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue