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,8 +1,20 @@ | ||||||
| { | { | ||||||
|  |   lib, | ||||||
|   config, |   config, | ||||||
|   pkgs, |   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 |     # Home Manager needs a bit of information about you and the paths it should | ||||||
|     # manage. |     # manage. | ||||||
|     home = { |     home = { | ||||||
|  | @ -257,4 +269,5 @@ | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|  |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -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,67 +14,29 @@ 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"; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|     noisetorch.enable = cfg.isFullUser; |       extensions = with extensions.open-vsx; [ | ||||||
| 
 |  | ||||||
|     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; |  | ||||||
|                 [ |  | ||||||
|         # vs code feel extensions |         # vs code feel extensions | ||||||
|         ms-vscode.atom-keybindings |         ms-vscode.atom-keybindings | ||||||
|         akamud.vscode-theme-onedark |         akamud.vscode-theme-onedark | ||||||
|  | @ -107,13 +64,108 @@ in { | ||||||
|         # misc extensions |         # misc extensions | ||||||
|         bungcip.better-toml |         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 |         open-vsx."10nates".ollama-autocoder | ||||||
|       ] |       ] | ||||||
|                 ++ (with vscode-marketplace; [ |       ++ (with extensions.vscode-marketplace; [ | ||||||
|         # js extensions |         # js extensions | ||||||
|         karyfoundation.nearley |         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 |               androidStudioPackages.canary | ||||||
|               jetbrains.idea-community |               jetbrains.idea-community | ||||||
|               dbeaver-bin |               dbeaver-bin | ||||||
|  | @ -126,12 +178,13 @@ in { | ||||||
|               noisetorch |               noisetorch | ||||||
| 
 | 
 | ||||||
|               # hardware managment tools |               # hardware managment tools | ||||||
|             (lib.mkIf config.hardware.piperMouse.enable piper) |               (lib.mkIf osConfig.hardware.piperMouse.enable piper) | ||||||
|             (lib.mkIf config.hardware.openRGB.enable openrgb) |               (lib.mkIf osConfig.hardware.openRGB.enable openrgb) | ||||||
|             (lib.mkIf config.hardware.viaKeyboard.enable via) |               (lib.mkIf osConfig.hardware.viaKeyboard.enable via) | ||||||
|             ] |             ] | ||||||
|           ) |           ) | ||||||
|         ) |         ) | ||||||
|       ] |       ] | ||||||
|     ); |     ); | ||||||
|  |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue