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 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 | ||||
| - This person seams to know what they are doing with home manager https://github.com/arvigeus/nixos-config/ | ||||
| 
 | ||||
| ## Configuration | ||||
| set up git configuration for local development: `git config --local include.path .gitconfig` | ||||
|  |  | |||
							
								
								
									
										14
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										14
									
								
								flake.nix
									
										
									
									
									
								
							|  | @ -71,13 +71,13 @@ | |||
|         modules = [ | ||||
|           ./hosts/horizon/configuration.nix | ||||
|           nixos-hardware.nixosModules.framework-11th-gen-intel | ||||
|           home-manager.nixosModules.default | ||||
|           # { | ||||
|           #   home-manager.useGlobalPkgs = true; | ||||
|           #   home-manager.useUserPackages = true; | ||||
|           #   home-manager.extraSpecialArgs = { inherit inputs; }; | ||||
|           #   home-manager.users = import ./users; | ||||
|           # } | ||||
|           home-manager.nixosModules.home-manager | ||||
|           { | ||||
|             home-manager.useGlobalPkgs = true; | ||||
|             home-manager.useUserPackages = true; | ||||
|             home-manager.backupFileExtension = "backup"; | ||||
|             home-manager.extraSpecialArgs = { inherit inputs; }; | ||||
|           } | ||||
|         ]; | ||||
|       }; | ||||
|       # Leyla Desktop | ||||
|  |  | |||
|  | @ -14,6 +14,10 @@ | |||
|     ../../enviroments/client | ||||
|   ]; | ||||
| 
 | ||||
|   home-manager.users.leyla.config = { | ||||
|     isFullUser = true; | ||||
|   }; | ||||
| 
 | ||||
|   users = { | ||||
|     leyla.isFullUser = true; | ||||
|     ester.isFullUser = true; | ||||
|  |  | |||
|  | @ -4,4 +4,5 @@ | |||
|   users.mutableUsers = false; | ||||
| 
 | ||||
|   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 | ||||
|   cfg = config.users.leyla; | ||||
| in { | ||||
|   imports = [ | ||||
|     ./packages.nix | ||||
|   ]; | ||||
|   # imports = [ | ||||
|   #   ./packages.nix | ||||
|   # ]; | ||||
| 
 | ||||
|   options.users.leyla = { | ||||
|     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,8 +1,20 @@ | |||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: { | ||||
|   imports = [ | ||||
|     ./packages.nix | ||||
|   ]; | ||||
| 
 | ||||
|   options = { | ||||
|     isFullUser = lib.mkEnableOption "create usable leyla user"; | ||||
|     isThinUser = lib.mkEnableOption "create usable user but witohut user applications"; | ||||
|     hasGPU = lib.mkEnableOption "installs gpu intensive programs"; | ||||
|   }; | ||||
| 
 | ||||
|   config = { | ||||
|     # Home Manager needs a bit of information about you and the paths it should | ||||
|     # manage. | ||||
|     home = { | ||||
|  | @ -257,4 +269,5 @@ | |||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,17 +1,12 @@ | |||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   pkgs, | ||||
|   inputs, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = config.users.leyla; | ||||
| in { | ||||
|   imports = [ | ||||
|     ../../overlays/intellij.nix | ||||
|     ../../overlays/vscodium.nix | ||||
|   ]; | ||||
| 
 | ||||
| }: | ||||
| { | ||||
|   nixpkgs = { | ||||
|     overlays = [ | ||||
|       inputs.nix-vscode-extensions.overlays.default | ||||
|  | @ -19,67 +14,29 @@ in { | |||
|   }; | ||||
| 
 | ||||
|   programs = { | ||||
|     bash.shellAliases = lib.mkIf cfg.isFullUser { | ||||
|     bash.shellAliases = lib.mkIf config.isFullUser { | ||||
|       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; | ||||
|       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"; | ||||
|       }; | ||||
| 
 | ||||
|     noisetorch.enable = cfg.isFullUser; | ||||
| 
 | ||||
|     adb.enable = cfg.isFullUser; | ||||
|   }; | ||||
| 
 | ||||
|   users.users.leyla.packages = lib.mkIf (cfg.isFullUser || cfg.isThinUser) ( | ||||
|     lib.mkMerge [ | ||||
|       ( | ||||
|         with pkgs; [ | ||||
|           # comand line tools | ||||
|           yt-dlp | ||||
|           ffmpeg | ||||
|           imagemagick | ||||
|         ] | ||||
|       ) | ||||
|       ( | ||||
|         lib.mkIf (!cfg.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 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; | ||||
|                 [ | ||||
|       extensions = with extensions.open-vsx; [ | ||||
|         # vs code feel extensions | ||||
|         ms-vscode.atom-keybindings | ||||
|         akamud.vscode-theme-onedark | ||||
|  | @ -107,13 +64,108 @@ in { | |||
|         # 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 vscode-marketplace; [ | ||||
|       ++ (with extensions.vscode-marketplace; [ | ||||
|         # js extensions | ||||
|         karyfoundation.nearley | ||||
|       ]); | ||||
|             }) | ||||
|     }; | ||||
| 
 | ||||
| 
 | ||||
|     # 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; | ||||
|   }; | ||||
| 
 | ||||
|   home = { | ||||
|     packages = lib.mkIf (config.isFullUser || config.isThinUser) ( | ||||
|       lib.mkMerge [ | ||||
|         ( | ||||
|           with pkgs; [ | ||||
|             # comand line tools | ||||
|             yt-dlp | ||||
|             ffmpeg | ||||
|             imagemagick | ||||
|           ] | ||||
|         ) | ||||
|         ( | ||||
|           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 | ||||
|  | @ -126,12 +178,13 @@ in { | |||
|               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 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