Add Home Manager
This commit is contained in:
		
							parent
							
								
									8dd2a00123
								
							
						
					
					
						commit
						87ddad27a4
					
				
							
								
								
									
										12
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @ -3,7 +3,9 @@ | |||||||
|     "agenix": { |     "agenix": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "darwin": "darwin", |         "darwin": "darwin", | ||||||
|         "home-manager": "home-manager", |         "home-manager": [ | ||||||
|  |           "home-manager" | ||||||
|  |         ], | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|           "nixpkgs" |           "nixpkgs" | ||||||
|         ], |         ], | ||||||
| @ -151,16 +153,15 @@ | |||||||
|     "home-manager": { |     "home-manager": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|           "agenix", |  | ||||||
|           "nixpkgs" |           "nixpkgs" | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1703113217, |         "lastModified": 1740845322, | ||||||
|         "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", |         "narHash": "sha256-AXEgFj3C0YJhu9k1OhbRhiA6FnDr81dQZ65U3DhaWpw=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", |         "rev": "fcac3d6d88302a5e64f6cb8014ac785e08874c8d", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -269,6 +270,7 @@ | |||||||
|         "deploy-rs": "deploy-rs", |         "deploy-rs": "deploy-rs", | ||||||
|         "flake-compat": "flake-compat", |         "flake-compat": "flake-compat", | ||||||
|         "flake-utils": "flake-utils", |         "flake-utils": "flake-utils", | ||||||
|  |         "home-manager": "home-manager", | ||||||
|         "nix-index-database": "nix-index-database", |         "nix-index-database": "nix-index-database", | ||||||
|         "nixos-hardware": "nixos-hardware", |         "nixos-hardware": "nixos-hardware", | ||||||
|         "nixpkgs": "nixpkgs", |         "nixpkgs": "nixpkgs", | ||||||
|  | |||||||
							
								
								
									
										23
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								flake.nix
									
									
									
									
									
								
							| @ -17,6 +17,12 @@ | |||||||
|     # NixOS hardware |     # NixOS hardware | ||||||
|     nixos-hardware.url = "github:NixOS/nixos-hardware/master"; |     nixos-hardware.url = "github:NixOS/nixos-hardware/master"; | ||||||
| 
 | 
 | ||||||
|  |     # Home Manager | ||||||
|  |     home-manager = { | ||||||
|  |       url = "github:nix-community/home-manager"; | ||||||
|  |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|     # Mail Server |     # Mail Server | ||||||
|     simple-nixos-mailserver = { |     simple-nixos-mailserver = { | ||||||
|       url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master"; |       url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master"; | ||||||
| @ -33,6 +39,7 @@ | |||||||
|       inputs = { |       inputs = { | ||||||
|         nixpkgs.follows = "nixpkgs"; |         nixpkgs.follows = "nixpkgs"; | ||||||
|         systems.follows = "systems"; |         systems.follows = "systems"; | ||||||
|  |         home-manager.follows = "home-manager"; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
| @ -81,7 +88,9 @@ | |||||||
|         { |         { | ||||||
|           inherit nixpkgs; |           inherit nixpkgs; | ||||||
|           assertionsModule = "${nixpkgs}/nixos/modules/misc/assertions.nix"; |           assertionsModule = "${nixpkgs}/nixos/modules/misc/assertions.nix"; | ||||||
|         }).machines.hosts; |         }).machines; | ||||||
|  |       machineHosts = machines.hosts; | ||||||
|  |       machineRoles = machines.roles; | ||||||
|     in |     in | ||||||
|     { |     { | ||||||
|       nixosConfigurations = |       nixosConfigurations = | ||||||
| @ -92,6 +101,7 @@ | |||||||
|             agenix.nixosModules.default |             agenix.nixosModules.default | ||||||
|             dailybuild_modules.nixosModule |             dailybuild_modules.nixosModule | ||||||
|             nix-index-database.nixosModules.nix-index |             nix-index-database.nixosModules.nix-index | ||||||
|  |             home-manager.nixosModules.home-manager | ||||||
|             self.nixosModules.kernel-modules |             self.nixosModules.kernel-modules | ||||||
|             ({ lib, ... }: { |             ({ lib, ... }: { | ||||||
|               config = { |               config = { | ||||||
| @ -102,6 +112,13 @@ | |||||||
|                 ]; |                 ]; | ||||||
| 
 | 
 | ||||||
|                 networking.hostName = hostname; |                 networking.hostName = hostname; | ||||||
|  | 
 | ||||||
|  |                 home-manager.useGlobalPkgs = true; | ||||||
|  |                 home-manager.useUserPackages = true; | ||||||
|  |                 home-manager.users.googlebot = import ./home/googlebot.nix { | ||||||
|  |                   inherit hostname; | ||||||
|  |                   inherit machineRoles; | ||||||
|  |                 }; | ||||||
|               }; |               }; | ||||||
| 
 | 
 | ||||||
|               # because nixos specialArgs doesn't work for containers... need to pass in inputs a different way |               # because nixos specialArgs doesn't work for containers... need to pass in inputs a different way | ||||||
| @ -139,7 +156,7 @@ | |||||||
|         nixpkgs.lib.mapAttrs |         nixpkgs.lib.mapAttrs | ||||||
|           (hostname: cfg: |           (hostname: cfg: | ||||||
|             mkSystem cfg.arch nixpkgs cfg.configurationPath hostname) |             mkSystem cfg.arch nixpkgs cfg.configurationPath hostname) | ||||||
|           machines; |           machineHosts; | ||||||
| 
 | 
 | ||||||
|       packages = |       packages = | ||||||
|         let |         let | ||||||
| @ -176,7 +193,7 @@ | |||||||
|         nixpkgs.lib.mapAttrs |         nixpkgs.lib.mapAttrs | ||||||
|           (hostname: cfg: |           (hostname: cfg: | ||||||
|             mkDeploy hostname cfg.arch (builtins.head cfg.hostNames)) |             mkDeploy hostname cfg.arch (builtins.head cfg.hostNames)) | ||||||
|           machines; |           machineHosts; | ||||||
| 
 | 
 | ||||||
|       checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) inputs.deploy-rs.lib; |       checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) inputs.deploy-rs.lib; | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										83
									
								
								home/googlebot.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								home/googlebot.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,83 @@ | |||||||
|  | { hostname, machineRoles }: | ||||||
|  | { config, lib, pkgs, ... }: | ||||||
|  | 
 | ||||||
|  | let | ||||||
|  |   # Check if the current machine has the role "personal" | ||||||
|  |   thisMachineIsPersonal = builtins.elem hostname machineRoles.personal; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   home.username = "googlebot"; | ||||||
|  |   home.homeDirectory = "/home/googlebot"; | ||||||
|  | 
 | ||||||
|  |   home.stateVersion = "24.11"; | ||||||
|  |   programs.home-manager.enable = true; | ||||||
|  | 
 | ||||||
|  |   programs.zed-editor = { | ||||||
|  |     enable = thisMachineIsPersonal; | ||||||
|  |     extensions = [ | ||||||
|  |       "nix" | ||||||
|  |       "toml" | ||||||
|  |       "html" | ||||||
|  |       "make" | ||||||
|  |       "git-firefly" | ||||||
|  |       "vue" | ||||||
|  |       "scss" | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |     userSettings = { | ||||||
|  |       assistant = { | ||||||
|  |         enabled = true; | ||||||
|  |         version = "2"; | ||||||
|  |         default_model = { | ||||||
|  |           provider = "openai"; | ||||||
|  |           model = "gpt-4-turbo"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       features = { | ||||||
|  |         edit_prediction_provider = "zed"; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       node = { | ||||||
|  |         path = lib.getExe pkgs.nodejs; | ||||||
|  |         npm_path = lib.getExe' pkgs.nodejs "npm"; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       auto_update = false; | ||||||
|  | 
 | ||||||
|  |       terminal = { | ||||||
|  |         blinking = "off"; | ||||||
|  |         copy_on_select = false; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       lsp = { | ||||||
|  |         rust-analyzer = { | ||||||
|  |           # binary = { | ||||||
|  |           #   path = lib.getExe pkgs.rust-analyzer; | ||||||
|  |           # }; | ||||||
|  |           binary = { | ||||||
|  |             path = "/run/current-system/sw/bin/nix"; | ||||||
|  |             arguments = [ "develop" "--command" "rust-analyzer" ]; | ||||||
|  |           }; | ||||||
|  |           initialization_options = { | ||||||
|  |             cargo = { | ||||||
|  |               features = "all"; | ||||||
|  |             }; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       # tell zed to use direnv and direnv can use a flake.nix enviroment. | ||||||
|  |       load_direnv = "shell_hook"; | ||||||
|  | 
 | ||||||
|  |       base_keymap = "VSCode"; | ||||||
|  |       theme = { | ||||||
|  |         mode = "system"; | ||||||
|  |         light = "One Light"; | ||||||
|  |         dark = "Andrometa"; | ||||||
|  |       }; | ||||||
|  |       ui_font_size = 12; | ||||||
|  |       buffer_font_size = 12; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user