Compare commits
	
		
			13 commits
		
	
	
		
			d37342150e
			...
			66335a4ddf
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 66335a4ddf | |||
| 890fcfc6ce | |||
| 4456200bd8 | |||
| 2129b9cedf | |||
| 371a430031 | |||
| 3508a2b3d0 | |||
| 0239e63165 | |||
| 05f480acf5 | |||
| 5f86d0ec99 | |||
| ceabb5261a | |||
| 592faafe86 | |||
| ef703ecbcf | |||
| 551c5e01d1 | 
					 20 changed files with 721 additions and 156 deletions
				
			
		|  | @ -1,11 +1,9 @@ | ||||||
| on: | on: | ||||||
|   schedule: |   schedule: | ||||||
|     - cron: 0 */6 * * * |     - cron: 0 */6 * * * | ||||||
|    |  | ||||||
| jobs: | jobs: | ||||||
|   UpdateFlake: |   UpdateFlake: | ||||||
|     runs-on: native |     runs-on: native | ||||||
| 
 |  | ||||||
|     steps: |     steps: | ||||||
|       - name: Check out repository code |       - name: Check out repository code | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
|  |  | ||||||
							
								
								
									
										98
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										98
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							|  | @ -110,11 +110,11 @@ | ||||||
|         "nixpkgs": "nixpkgs_2" |         "nixpkgs": "nixpkgs_2" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761596764, |         "lastModified": 1761686631, | ||||||
|         "narHash": "sha256-KTL+8Fw1qAbqubZSHRMjO4HkILJWVdWTylqHXQ4VTBE=", |         "narHash": "sha256-OzyQkqtH4kenusXEquQvTHnAr/6lGVS2DqErIPlzCUs=", | ||||||
|         "owner": "cachix", |         "owner": "cachix", | ||||||
|         "repo": "devenv", |         "repo": "devenv", | ||||||
|         "rev": "17560d064ba5e4fc946c0ea0ee7b31ec291e706f", |         "rev": "b59500b629c08829825d4f4eca68169ea3a8821f", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -131,11 +131,11 @@ | ||||||
|         "rust-analyzer-src": "rust-analyzer-src" |         "rust-analyzer-src": "rust-analyzer-src" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761633962, |         "lastModified": 1761720242, | ||||||
|         "narHash": "sha256-QTA706q3zDi9yN7bwsOnj2cQj8FVi9x147A/2lR495U=", |         "narHash": "sha256-Zi9nWw68oUDMVOhf/+Z97wVbNV2K7eEAGZugQKqU7xw=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "fenix", |         "repo": "fenix", | ||||||
|         "rev": "abecdc70faee6ef5abf8b250795042a0cbe7070f", |         "rev": "8e4d32f4cc12b3f106af6e4515b36ac046a1ec91", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -147,11 +147,11 @@ | ||||||
|     "flake-compat": { |     "flake-compat": { | ||||||
|       "flake": false, |       "flake": false, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1747046372, |         "lastModified": 1761588595, | ||||||
|         "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", |         "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", | ||||||
|         "owner": "edolstra", |         "owner": "edolstra", | ||||||
|         "repo": "flake-compat", |         "repo": "flake-compat", | ||||||
|         "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", |         "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -503,11 +503,11 @@ | ||||||
|         "rust-overlay": "rust-overlay" |         "rust-overlay": "rust-overlay" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761440613, |         "lastModified": 1761663476, | ||||||
|         "narHash": "sha256-eQTH5iTkEQptZqVGyTPgpMYL7zj6QkI/uGo+1/PkAQY=", |         "narHash": "sha256-rMapt12HqMDVo91bqojbiOh+l7UuqJ738rk1iu980qs=", | ||||||
|         "owner": "helix-editor", |         "owner": "helix-editor", | ||||||
|         "repo": "helix", |         "repo": "helix", | ||||||
|         "rev": "7c4ff9c39dbd3dd7d6e2cb3e26cb34212202bb1b", |         "rev": "de0518d0e631f1984dc7229b76c2bdadf2bffe5d", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -523,11 +523,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761584077, |         "lastModified": 1761666354, | ||||||
|         "narHash": "sha256-dISPEZahlfs5K6d58zR4akRRyogfE9P4WSyPPNT7HiE=", |         "narHash": "sha256-fHr+tIYBJccNF8QWqgowfRmEAtAMSt1deZIRNKL8A7c=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "rev": "e82585308aef3d4cc2c36c7b6946051c8cdf24ef", |         "rev": "ca2ab1d877a24d5a437dad62f56b8b2c02e964e9", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -683,11 +683,11 @@ | ||||||
|         "xdph": "xdph" |         "xdph": "xdph" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761601789, |         "lastModified": 1761733109, | ||||||
|         "narHash": "sha256-F8HDu+xAZ2GhYRZPTMbFgXfA6VI7pN95juP3/llCKx8=", |         "narHash": "sha256-sgZlcW1W6ioNFaMz+r4O52SLNywzRJiqRwBKRenvL6c=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "Hyprland", |         "repo": "Hyprland", | ||||||
|         "rev": "309c3c78485781a28ad9f5bef48b09ecb3b81473", |         "rev": "9eb82774e53dc02e4fa204a911cb4256cd21f429", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -713,11 +713,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761249285, |         "lastModified": 1761653710, | ||||||
|         "narHash": "sha256-70dEwL5p3CB/00ODs2RHWUKTyafB+PF4Ld7IEMuO+no=", |         "narHash": "sha256-MhHSU9m/9HSckJ61OXcom/6F92NQf3s1QfLbRUApalc=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "hyprland-plugins", |         "repo": "hyprland-plugins", | ||||||
|         "rev": "81f6d1426537981fcbb921f8b5e470b1280ef8f3", |         "rev": "e689220b1740aa99ca67fa06055792f82fa9ed85", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -889,11 +889,11 @@ | ||||||
|         "systems": "systems_2" |         "systems": "systems_2" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1760023949, |         "lastModified": 1761675634, | ||||||
|         "narHash": "sha256-fu0B4duamVdbkPio/czu1XhsPLRXUJpZLDrSk3nih4U=", |         "narHash": "sha256-Et1jNDB2d3e0b4okIKuyAMktECS+5hk+vMAA7X598ao=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "hyprlock", |         "repo": "hyprlock", | ||||||
|         "rev": "36ec73f166d9434a3f27c96c575198906f77644a", |         "rev": "98b86752fe4867bd14ef96a92ea788229af93130", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1024,11 +1024,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1760961269, |         "lastModified": 1761728397, | ||||||
|         "narHash": "sha256-Udg6DnM6scJj+imbttJR7GQpG2WWeDZ1JOtySTY99M0=", |         "narHash": "sha256-PyRcsly7w12wg6Vjzkn5eLvRQgX+nzHU80xBVnwE7Eg=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "nh", |         "repo": "nh", | ||||||
|         "rev": "e27508e06f74c7f03616150c1ac1431eaef7f443", |         "rev": "149022d8973798f5ebb819fb2977b0260f049816", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1045,11 +1045,11 @@ | ||||||
|         "rust-overlay": [] |         "rust-overlay": [] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761460429, |         "lastModified": 1761721311, | ||||||
|         "narHash": "sha256-pJeM23DGMD5AK4gdNaDM1qsIv87NYQJgEh2E8tRd7es=", |         "narHash": "sha256-fXBALdA4CKAYslcuamjzQZLUTCNBIKWybj+/2rwe3Z0=", | ||||||
|         "owner": "YaLTeR", |         "owner": "YaLTeR", | ||||||
|         "repo": "niri", |         "repo": "niri", | ||||||
|         "rev": "e6f3c538da0c646bda43fcde7ef7dc3b771e0c8b", |         "rev": "6e8fd153395036c2daa7c214695ed9baf2409a2e", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1072,11 +1072,11 @@ | ||||||
|         "xwayland-satellite-unstable": "xwayland-satellite-unstable" |         "xwayland-satellite-unstable": "xwayland-satellite-unstable" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761623016, |         "lastModified": 1761724527, | ||||||
|         "narHash": "sha256-C2+TErNmeHMCtodwVrMeA/uJg1GRdQbOntRI7DFullA=", |         "narHash": "sha256-nB500dSUaNBtOsu5JI1PDNmjuFD6Kdbkh648q0FoaIY=", | ||||||
|         "owner": "sodiboo", |         "owner": "sodiboo", | ||||||
|         "repo": "niri-flake", |         "repo": "niri-flake", | ||||||
|         "rev": "f0bfe0aaaa51378ace7492850290f8d2db6cc7f3", |         "rev": "1ff74954f559bb2da63e28b3fcffd3b09ec32842", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1088,11 +1088,11 @@ | ||||||
|     "niri-unstable": { |     "niri-unstable": { | ||||||
|       "flake": false, |       "flake": false, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761460429, |         "lastModified": 1761721311, | ||||||
|         "narHash": "sha256-pJeM23DGMD5AK4gdNaDM1qsIv87NYQJgEh2E8tRd7es=", |         "narHash": "sha256-fXBALdA4CKAYslcuamjzQZLUTCNBIKWybj+/2rwe3Z0=", | ||||||
|         "owner": "YaLTeR", |         "owner": "YaLTeR", | ||||||
|         "repo": "niri", |         "repo": "niri", | ||||||
|         "rev": "e6f3c538da0c646bda43fcde7ef7dc3b771e0c8b", |         "rev": "6e8fd153395036c2daa7c214695ed9baf2409a2e", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1127,16 +1127,16 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1758763079, |         "lastModified": 1761648602, | ||||||
|         "narHash": "sha256-Bx1A+lShhOWwMuy3uDzZQvYiBKBFcKwy6G6NEohhv6A=", |         "narHash": "sha256-H97KSB/luq/aGobKRuHahOvT1r7C03BgB6D5HBZsbN8=", | ||||||
|         "owner": "cachix", |         "owner": "cachix", | ||||||
|         "repo": "nix", |         "repo": "nix", | ||||||
|         "rev": "6f0140527c2b0346df4afad7497baa08decb929f", |         "rev": "3e5644da6830ef65f0a2f7ec22830c46285bfff6", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "cachix", |         "owner": "cachix", | ||||||
|         "ref": "devenv-2.30.5", |         "ref": "devenv-2.30.6", | ||||||
|         "repo": "nix", |         "repo": "nix", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|  | @ -1163,11 +1163,11 @@ | ||||||
|     }, |     }, | ||||||
|     "nixos-hardware": { |     "nixos-hardware": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1760958188, |         "lastModified": 1761669189, | ||||||
|         "narHash": "sha256-2m1S4jl+GEDtlt2QqeHil8Ny456dcGSKJAM7q3j/BFU=", |         "narHash": "sha256-INBZnPA9JzyDn+Fnni2250PbRzKx7Eafz0T2c7NhXiQ=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixos-hardware", |         "repo": "nixos-hardware", | ||||||
|         "rev": "d6645c340ef7d821602fd2cd199e8d1eed10afbc", |         "rev": "9c0ee5dfa186e10efe9b53505b65d22c81860fde", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1447,11 +1447,11 @@ | ||||||
|     "rust-analyzer-src": { |     "rust-analyzer-src": { | ||||||
|       "flake": false, |       "flake": false, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761606039, |         "lastModified": 1761686505, | ||||||
|         "narHash": "sha256-rNsxpCKWzVNJ5FR71mpZFSEPxuvZfAQzcVpgfwgajQU=", |         "narHash": "sha256-jX6UrGS/hABDaM4jdx3+xgH3KCHP2zKHeTa8CD5myEo=", | ||||||
|         "owner": "rust-lang", |         "owner": "rust-lang", | ||||||
|         "repo": "rust-analyzer", |         "repo": "rust-analyzer", | ||||||
|         "rev": "7c810e9994eff5b2b7a78ab0a656948c1e8dbf18", |         "rev": "d08d54f3c10dfa41033eb780c3bddb50e09d30fc", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1680,11 +1680,11 @@ | ||||||
|         "nixpkgs": "nixpkgs_7" |         "nixpkgs": "nixpkgs_7" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761535208, |         "lastModified": 1761712008, | ||||||
|         "narHash": "sha256-E1PobJMiFmVUX2YdqYk/MpKb0LXavOYvlg8DCBBzlHc=", |         "narHash": "sha256-Nf2s59dLg6KDUV0omZqIlOGNUxw/Rl/KKXEXQGFCAlo=", | ||||||
|         "owner": "0xc000022070", |         "owner": "0xc000022070", | ||||||
|         "repo": "zen-browser-flake", |         "repo": "zen-browser-flake", | ||||||
|         "rev": "79a94872a3e6993a051c4e22a2dcb02c1d088acf", |         "rev": "1383ed38745d12f3896c996848d24c451643db58", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  |  | ||||||
|  | @ -1,10 +1,6 @@ | ||||||
| { | { | ||||||
|   description = "All encompassing flake"; |   description = "All encompassing flake"; | ||||||
| 
 | 
 | ||||||
|   nixConfig = { |  | ||||||
|     allow-import-from-derivation = true; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules); |   outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules); | ||||||
| 
 | 
 | ||||||
|   inputs = { |   inputs = { | ||||||
|  | @ -75,6 +71,7 @@ | ||||||
| 
 | 
 | ||||||
|     niri-flake = { |     niri-flake = { | ||||||
|       url = "github:sodiboo/niri-flake"; |       url = "github:sodiboo/niri-flake"; | ||||||
|  |       # url = "github:Daholli/niri-flake/1067d35dd18f6a55f79873c944f1427a9eb7caa7"; | ||||||
|       inputs = { |       inputs = { | ||||||
|         niri-stable.follows = "niri"; |         niri-stable.follows = "niri"; | ||||||
|         nixpkgs.follows = "nixpkgs"; |         nixpkgs.follows = "nixpkgs"; | ||||||
|  |  | ||||||
|  | @ -6,7 +6,6 @@ topLevel: { | ||||||
|         environment.systemPackages = with pkgs; [ |         environment.systemPackages = with pkgs; [ | ||||||
|           git |           git | ||||||
|         ]; |         ]; | ||||||
| 
 |  | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|     homeManager.cholli = |     homeManager.cholli = | ||||||
|  |  | ||||||
|  | @ -15,6 +15,7 @@ | ||||||
|         nerd-fonts.code-new-roman |         nerd-fonts.code-new-roman | ||||||
|         nerd-fonts.fira-code |         nerd-fonts.fira-code | ||||||
|         nerd-fonts.symbols-only |         nerd-fonts.symbols-only | ||||||
|  |         nerd-fonts.jetbrains-mono | ||||||
|         fira |         fira | ||||||
|       ]; |       ]; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -44,6 +44,7 @@ | ||||||
|             ++ lib.optional config.services.hydra.enable "hydra hydra-www hydra-evaluator hydra-queue-runner"; |             ++ lib.optional config.services.hydra.enable "hydra hydra-www hydra-evaluator hydra-queue-runner"; | ||||||
|           in |           in | ||||||
|           { |           { | ||||||
|  |             nix-path = "nixpkgs=flake:nixpkgs"; | ||||||
|             experimental-features = "nix-command flakes"; |             experimental-features = "nix-command flakes"; | ||||||
|             http-connections = 50; |             http-connections = 50; | ||||||
|             warn-dirty = false; |             warn-dirty = false; | ||||||
|  | @ -53,6 +54,18 @@ | ||||||
|             trusted-users = users; |             trusted-users = users; | ||||||
|             allowed-users = users; |             allowed-users = users; | ||||||
|             allowed-uris = "github: https://github.com/ git+https://github.com/ gitlab: https://gitlab.com/ git+https://gitlab.com/"; |             allowed-uris = "github: https://github.com/ git+https://github.com/ gitlab: https://gitlab.com/ git+https://gitlab.com/"; | ||||||
|  |             substituters = [ | ||||||
|  |               "https://cache.lix.systems" | ||||||
|  |               "https://nix-community.cachix.org" | ||||||
|  |               "https://nixcache.christophhollizeck.dev" | ||||||
|  |               "https://hyprland.cachix.org" | ||||||
|  |             ]; | ||||||
|  |             trusted-public-keys = [ | ||||||
|  |               "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" | ||||||
|  |               "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" | ||||||
|  |               "christophhollizeck.dev:7pPAvm9xqFQB8FDApVNL6Tii1Jsv+Sj/LjEIkdeGhbA=" | ||||||
|  |               "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" | ||||||
|  |             ]; | ||||||
|           } |           } | ||||||
|           // (lib.optionalAttrs config.programs.direnv.enable { |           // (lib.optionalAttrs config.programs.direnv.enable { | ||||||
|             keep-outputs = true; |             keep-outputs = true; | ||||||
|  |  | ||||||
|  | @ -13,9 +13,17 @@ | ||||||
|       in |       in | ||||||
| 
 | 
 | ||||||
|       { |       { | ||||||
|  |         security.pam.services.gdm.enableGnomeKeyring = true; | ||||||
|  |         services.displayManager.gdm = { | ||||||
|  |           enable = true; | ||||||
|  |           wayland = true; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|         environment = { |         environment = { | ||||||
|           systemPackages = [ |           systemPackages = with pkgs; [ | ||||||
|             zenbrowser |             zenbrowser | ||||||
|  | 
 | ||||||
|  |             sourcegit | ||||||
|           ]; |           ]; | ||||||
| 
 | 
 | ||||||
|           sessionVariables = { |           sessionVariables = { | ||||||
|  |  | ||||||
|  | @ -12,10 +12,57 @@ | ||||||
|           package = inputs.niri-flake.packages.${pkgs.system}.niri-unstable; |           package = inputs.niri-flake.packages.${pkgs.system}.niri-unstable; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         environment.systemPackages = [ |         environment.systemPackages = with pkgs; [ | ||||||
|           pkgs.alacritty |           kitty | ||||||
|           pkgs.fuzzel |           fuzzel | ||||||
|  | 
 | ||||||
|  |           inputs.niri-flake.packages.${pkgs.system}.xwayland-satellite-unstable | ||||||
|  | 
 | ||||||
|  |           wl-clipboard | ||||||
|  |           xsel | ||||||
|  | 
 | ||||||
|  |           waybar | ||||||
|  |           libnotify | ||||||
|         ]; |         ]; | ||||||
|  | 
 | ||||||
|  |         xdg = { | ||||||
|  |           autostart.enable = true; | ||||||
|  |           portal = { | ||||||
|  |             enable = true; | ||||||
|  |             extraPortals = [ | ||||||
|  |               pkgs.xdg-desktop-portal-gnome | ||||||
|  |               pkgs.xdg-desktop-portal-gtk | ||||||
|  |             ]; | ||||||
|  |             xdgOpenUsePortal = true; | ||||||
|  | 
 | ||||||
|  |             config = { | ||||||
|  |               common = { | ||||||
|  |                 default = [ "*" ]; | ||||||
|  |                 "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; | ||||||
|  |               }; | ||||||
|  |               niri = { | ||||||
|  |                 default = [ | ||||||
|  |                   "gnome" | ||||||
|  |                   "gtk" | ||||||
|  |                 ]; | ||||||
|  |                 "org.freedesktop.impl.portal.FileChooser" = [ "gtk" ]; | ||||||
|  |                 "org.freedesktop.impl.portal.OpenURI" = [ "gtk" ]; | ||||||
|  |               }; | ||||||
|  |             }; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         environment.sessionVariables = { | ||||||
|  |           NIXOS_OZONE_WL = "1"; # Hint electron apps to use wayland | ||||||
|  |           ELECTRON_OZONE_PLATFORM_HINT = "auto"; | ||||||
|  | 
 | ||||||
|  |           XDG_SESSION_TYPE = "wayland"; | ||||||
|  | 
 | ||||||
|  |           QT_AUTO_SCREEN_SCALE_FACTOR = "1"; | ||||||
|  |           QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; | ||||||
|  |           QT_QPA_PLATFORM = "wayland;xcb"; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|     homeManager.cholli = |     homeManager.cholli = | ||||||
|  | @ -28,12 +75,31 @@ | ||||||
|         ... |         ... | ||||||
|       }: |       }: | ||||||
|       { |       { | ||||||
|         config = lib.mkIf osConfig.programs.niri.enable { |         config = lib.mkIf (osConfig.networking.hostName == "yggdrasil" && osConfig.programs.niri.enable) { | ||||||
|  |           services.mako = { | ||||||
|  |             enable = true; | ||||||
|  |             settings = { | ||||||
|  |               border-radius = 15; | ||||||
|  |               border-color = "#505050"; | ||||||
|  |               background-color = "#00000070"; | ||||||
|  |             }; | ||||||
|  |           }; | ||||||
|  | 
 | ||||||
|           programs.niri.settings = { |           programs.niri.settings = { | ||||||
|  |             prefer-no-csd = true; | ||||||
|  | 
 | ||||||
|             input = { |             input = { | ||||||
|               keyboard = { |               keyboard = { | ||||||
|  |                 xkb = { | ||||||
|  |                   layout = "us"; | ||||||
|  |                   rules = "escape:nocaps"; | ||||||
|  |                 }; | ||||||
|                 numlock = true; |                 numlock = true; | ||||||
|               }; |               }; | ||||||
|  | 
 | ||||||
|  |               touchpad = { | ||||||
|  |                 enable = false; | ||||||
|  |               }; | ||||||
|             }; |             }; | ||||||
| 
 | 
 | ||||||
|             outputs."DP-1" = { |             outputs."DP-1" = { | ||||||
|  | @ -48,6 +114,9 @@ | ||||||
|                 height = 1080; |                 height = 1080; | ||||||
|               }; |               }; | ||||||
|               transform.rotation = 90; |               transform.rotation = 90; | ||||||
|  |               # layout = { | ||||||
|  |               #   default-column-width.proportion = 1.0; | ||||||
|  |               # }; | ||||||
|             }; |             }; | ||||||
| 
 | 
 | ||||||
|             layout = { |             layout = { | ||||||
|  | @ -62,7 +131,6 @@ | ||||||
|                 { proportion = 1. / 3.; } |                 { proportion = 1. / 3.; } | ||||||
|                 { proportion = 1. / 2.; } |                 { proportion = 1. / 2.; } | ||||||
|                 { proportion = 2. / 3.; } |                 { proportion = 2. / 3.; } | ||||||
| 
 |  | ||||||
|               ]; |               ]; | ||||||
| 
 | 
 | ||||||
|               focus-ring = { |               focus-ring = { | ||||||
|  | @ -80,33 +148,166 @@ | ||||||
| 
 | 
 | ||||||
|             screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"; |             screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"; | ||||||
| 
 | 
 | ||||||
|             # block 1pass from screenshots and window capture |             workspaces = { | ||||||
|  |               "01-zen" = { | ||||||
|  |                 open-on-output = "DP-1"; | ||||||
|  |               }; | ||||||
|  |               "02-steam" = { | ||||||
|  |                 open-on-output = "DP-1"; | ||||||
|  |               }; | ||||||
|  |               "03-work" = { | ||||||
|  |                 open-on-output = "DP-1"; | ||||||
|  |               }; | ||||||
|  |               "04-games" = { | ||||||
|  |                 open-on-output = "DP-1"; | ||||||
|  |               }; | ||||||
|  |               "01-communication" = { | ||||||
|  |                 open-on-output = "HDMI-A-1"; | ||||||
|  |               }; | ||||||
|  |               "02-1password" = { | ||||||
|  |                 open-on-output = "HDMI-A-1"; | ||||||
|  |               }; | ||||||
|  |             }; | ||||||
|  | 
 | ||||||
|  |             layer-rules = [ | ||||||
|  |               { | ||||||
|  |                 matches = [ { namespace = "^notifications$"; } ]; | ||||||
|  |                 block-out-from = "screencast"; | ||||||
|  |               } | ||||||
|  |             ]; | ||||||
|  | 
 | ||||||
|             window-rules = [ |             window-rules = [ | ||||||
|  |               { | ||||||
|  |                 excludes = [ ]; | ||||||
|  |                 clip-to-geometry = true; | ||||||
|  |                 geometry-corner-radius = { | ||||||
|  |                   top-left = 15.0; | ||||||
|  |                   top-right = 15.0; | ||||||
|  |                   bottom-left = 15.0; | ||||||
|  |                   bottom-right = 15.0; | ||||||
|  |                 }; | ||||||
|  | 
 | ||||||
|  |                 # | ||||||
|  |                 open-fullscreen = false; | ||||||
|  |               } | ||||||
|  |               { | ||||||
|  |                 matches = [ { is-window-cast-target = true; } ]; | ||||||
|  | 
 | ||||||
|  |                 border = { | ||||||
|  |                   enable = true; | ||||||
|  |                   width = 2; | ||||||
|  |                   active.color = "#f38ba8"; | ||||||
|  |                   inactive.color = "#f38ba8"; | ||||||
|  |                 }; | ||||||
|  | 
 | ||||||
|  |                 shadow = { | ||||||
|  |                   color = "#f38ba870"; | ||||||
|  |                 }; | ||||||
|  |               } | ||||||
|  |               { | ||||||
|  |                 matches = [ | ||||||
|  |                   { | ||||||
|  |                     app-id = "1password"; | ||||||
|  |                     is-floating = true; | ||||||
|  |                     is-focused = false; | ||||||
|  |                   } | ||||||
|  |                 ]; | ||||||
|  | 
 | ||||||
|  |               } | ||||||
|  |               { | ||||||
|  |                 matches = [ | ||||||
|  |                   { | ||||||
|  |                     app-id = "steam"; | ||||||
|  |                     title = "Steam"; | ||||||
|  |                   } | ||||||
|  |                 ]; | ||||||
|  | 
 | ||||||
|  |                 open-on-workspace = "02-steam"; | ||||||
|  |                 open-maximized = true; | ||||||
|  |               } | ||||||
|  |               { | ||||||
|  |                 matches = [ | ||||||
|  |                   { | ||||||
|  |                     app-id = "steam_app_.*"; | ||||||
|  |                   } | ||||||
|  |                   { | ||||||
|  |                     app-id = "factorio"; | ||||||
|  |                   } | ||||||
|  |                 ]; | ||||||
|  | 
 | ||||||
|  |                 open-on-workspace = "04-games"; | ||||||
|  |                 default-column-width.proportion = 1.0; | ||||||
|  |                 default-window-height.proportion = 1.0; | ||||||
|  |                 min-width = 3440; | ||||||
|  |                 min-height = 1440; | ||||||
|  |               } | ||||||
|  |               { | ||||||
|  |                 matches = [ | ||||||
|  |                   { | ||||||
|  |                     app-id = "discord"; | ||||||
|  |                   } | ||||||
|  |                   { | ||||||
|  |                     app-id = "steam"; | ||||||
|  |                     title = "Friends List.*"; | ||||||
|  |                   } | ||||||
|  |                 ]; | ||||||
|  |                 open-on-workspace = "01-communication"; | ||||||
|  |                 default-column-width.proportion = 1.0; | ||||||
|  |                 open-fullscreen = false; | ||||||
|  |               } | ||||||
|  |               { | ||||||
|  |                 matches = [ | ||||||
|  |                   { | ||||||
|  |                     app-id = "1Password"; | ||||||
|  |                   } | ||||||
|  |                 ]; | ||||||
|  | 
 | ||||||
|  |                 open-on-workspace = "02-1password"; | ||||||
|  |                 default-column-width.proportion = 1.0; | ||||||
|  |                 open-fullscreen = false; | ||||||
|  |               } | ||||||
|  |               { | ||||||
|  |                 matches = [ | ||||||
|  |                   { | ||||||
|  |                     app-id = "1Password"; | ||||||
|  |                   } | ||||||
|  |                   { | ||||||
|  |                     app-id = "discord"; | ||||||
|  |                   } | ||||||
|  |                   { | ||||||
|  |                     app-id = "steam"; | ||||||
|  |                     title = "Friends List.*"; | ||||||
|  |                   } | ||||||
|  |                   { | ||||||
|  |                     app-id = "teams-for-linux"; | ||||||
|  |                   } | ||||||
|  |                 ]; | ||||||
|  | 
 | ||||||
|  |                 block-out-from = "screencast"; | ||||||
|  |               } | ||||||
|             ]; |             ]; | ||||||
| 
 | 
 | ||||||
|             binds = |             binds = | ||||||
|               with config.lib.niri; |               with config.lib.niri; | ||||||
|               let |  | ||||||
|                 workspaces = (builtins.genList (x: x + 1) 9); |  | ||||||
| 
 |  | ||||||
|                 focus-workspaces = builtins.listToAttrs ( |  | ||||||
|                   map (num: { |  | ||||||
|                     name = "Mod+${toString num}"; |  | ||||||
|                     value = { |  | ||||||
|                       action.focus-workspace = num; |  | ||||||
|                     }; |  | ||||||
|                   }) workspaces |  | ||||||
|                 ); |  | ||||||
|               in |  | ||||||
| 
 |  | ||||||
|               lib.mkMerge [ |               lib.mkMerge [ | ||||||
|                 { |                 { | ||||||
|                   "Mod+Shift+Slash".action = actions.show-hotkey-overlay; |                   "Mod+Shift+Slash".action = actions.show-hotkey-overlay; | ||||||
|  |                   "Mod+Shift+E".action = actions.quit; | ||||||
|  |                   "Ctrl+Alt+Delete".action = actions.quit; | ||||||
| 
 | 
 | ||||||
|                   "Mod+Return".action.spawn = "${lib.getExe pkgs.kitty}"; |                   "Mod+Return".action.spawn = "${lib.getExe pkgs.kitty}"; | ||||||
|                   "Mod+D".action.spawn = "${lib.getExe pkgs.fuzzel}"; |                   "Mod+D".action.spawn = "${lib.getExe pkgs.fuzzel}"; | ||||||
|                   "Mod+Alt+L".action.spawn = "hyprlock-blur"; |                   "Mod+Alt+L".action.spawn = "hyprlock-blur"; | ||||||
| 
 | 
 | ||||||
|  |                   "Mod+Escape" = { | ||||||
|  |                     allow-inhibiting = false; | ||||||
|  |                     action = actions.toggle-keyboard-shortcuts-inhibit; | ||||||
|  |                   }; | ||||||
|  | 
 | ||||||
|  |                   "Print".action.screenshot = [ ]; | ||||||
|  |                   "Ctrl+Print".action.screenshot-screen = [ ]; | ||||||
|  |                   "Alt+Print".action.screenshot-window = [ ]; | ||||||
|  | 
 | ||||||
|                   "Mod+Shift+Q" = { |                   "Mod+Shift+Q" = { | ||||||
|                     action = actions.close-window; |                     action = actions.close-window; | ||||||
|                     repeat = false; |                     repeat = false; | ||||||
|  | @ -117,6 +318,106 @@ | ||||||
|                     repeat = false; |                     repeat = false; | ||||||
|                   }; |                   }; | ||||||
| 
 | 
 | ||||||
|  |                   "Mod+1".action = actions.focus-workspace "01-zen"; | ||||||
|  |                   "Mod+2".action = actions.focus-workspace "02-steam"; | ||||||
|  |                   "Mod+3".action = actions.focus-workspace "03-work"; | ||||||
|  |                   "Mod+4".action = actions.focus-workspace "04-games"; | ||||||
|  |                   "Mod+5".action = actions.focus-workspace "01-communication"; | ||||||
|  |                   "Mod+9".action = actions.focus-workspace "02-1password"; | ||||||
|  | 
 | ||||||
|  |                   "Mod+J" = { | ||||||
|  |                     action = actions.focus-window-or-workspace-down; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+K" = { | ||||||
|  |                     action = actions.focus-window-or-workspace-up; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Ctrl+J" = { | ||||||
|  |                     action = actions.move-window-down-or-to-workspace-down; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Ctrl+K" = { | ||||||
|  |                     action = actions.move-window-up-or-to-workspace-up; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Down" = { | ||||||
|  |                     action = actions.focus-window-or-workspace-down; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Up" = { | ||||||
|  |                     action = actions.focus-window-or-workspace-up; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Ctrl+Down" = { | ||||||
|  |                     action = actions.move-window-down-or-to-workspace-down; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Ctrl+Up" = { | ||||||
|  |                     action = actions.move-window-up-or-to-workspace-up; | ||||||
|  |                   }; | ||||||
|  | 
 | ||||||
|  |                   "Mod+H" = { | ||||||
|  |                     action = actions.focus-column-or-monitor-left; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+L" = { | ||||||
|  |                     action = actions.focus-column-or-monitor-right; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Ctrl+H" = { | ||||||
|  |                     action = actions.move-column-left-or-to-monitor-left; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Ctrl+L" = { | ||||||
|  |                     action = actions.move-column-right-or-to-monitor-right; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Left" = { | ||||||
|  |                     action = actions.focus-column-or-monitor-left; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Right" = { | ||||||
|  |                     action = actions.focus-column-or-monitor-right; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Ctrl+Left" = { | ||||||
|  |                     action = actions.move-column-left-or-to-monitor-left; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Ctrl+Right" = { | ||||||
|  |                     action = actions.move-column-right-or-to-monitor-right; | ||||||
|  |                   }; | ||||||
|  | 
 | ||||||
|  |                   "Mod+WheelScrollDown" = { | ||||||
|  |                     action = actions.focus-column-right; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+WheelScrollUp" = { | ||||||
|  |                     action = actions.focus-column-left; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Shift+WheelScrollDown" = { | ||||||
|  |                     action = actions.focus-workspace-down; | ||||||
|  |                     cooldown-ms = 150; | ||||||
|  |                   }; | ||||||
|  |                   "Mod+Shift+WheelScrollUp" = { | ||||||
|  |                     action = actions.focus-workspace-up; | ||||||
|  |                     cooldown-ms = 150; | ||||||
|  |                   }; | ||||||
|  | 
 | ||||||
|  |                   # Window Sizes | ||||||
|  |                   "Mod+BracketLeft".action = actions.consume-or-expel-window-left; | ||||||
|  |                   "Mod+BracketRight".action = actions.consume-or-expel-window-right; | ||||||
|  |                   "Mod+Comma".action = actions.consume-window-into-column; | ||||||
|  |                   "Mod+Period".action = actions.expel-window-from-column; | ||||||
|  | 
 | ||||||
|  |                   "Mod+R".action = actions.switch-preset-column-width; | ||||||
|  |                   "Mod+Shift+R".action = actions.switch-preset-window-height; | ||||||
|  |                   "Mod+Ctrl+R".action = actions.reset-window-height; | ||||||
|  |                   "Mod+F".action = actions.maximize-column; | ||||||
|  |                   "Mod+Shift+F".action = actions.fullscreen-window; | ||||||
|  |                   "Mod+Ctrl+F".action = actions.expand-column-to-available-width; | ||||||
|  | 
 | ||||||
|  |                   "Mod+C".action = actions.center-column; | ||||||
|  |                   "Mod+V".action = actions.toggle-window-floating; | ||||||
|  | 
 | ||||||
|  |                   # Xwayland keyboard stuff | ||||||
|  |                   "Mod+Shift+C".action = actions.spawn [ | ||||||
|  |                     "sh" | ||||||
|  |                     "-c" | ||||||
|  |                     "env DISPLAY=:0 xsel -ob | wl-copy" | ||||||
|  |                   ]; | ||||||
|  |                   "Mod+Shift+V".action = actions.spawn [ | ||||||
|  |                     "sh" | ||||||
|  |                     "-c" | ||||||
|  |                     "wl-paste -n | env DISPLAY=:0 xsel -ib" | ||||||
|  |                   ]; | ||||||
|  | 
 | ||||||
|                   "XF86AudioRaiseVolume" = { |                   "XF86AudioRaiseVolume" = { | ||||||
|                     action.spawn = [ |                     action.spawn = [ | ||||||
|                       "wpctl" |                       "wpctl" | ||||||
|  | @ -154,7 +455,15 @@ | ||||||
|                     allow-when-locked = true; |                     allow-when-locked = true; | ||||||
|                   }; |                   }; | ||||||
|                 } |                 } | ||||||
|                 focus-workspaces |               ]; | ||||||
|  | 
 | ||||||
|  |             spawn-at-startup = [ | ||||||
|  |               { argv = [ "waybar" ]; } | ||||||
|  |               { argv = [ "zen-beta" ]; } | ||||||
|  |               { argv = [ "steam" ]; } | ||||||
|  |               { argv = [ "obsidian" ]; } | ||||||
|  |               { argv = [ "discord" ]; } | ||||||
|  |               { argv = [ "1password" ]; } | ||||||
|             ]; |             ]; | ||||||
| 
 | 
 | ||||||
|           }; |           }; | ||||||
|  |  | ||||||
|  | @ -34,4 +34,14 @@ in | ||||||
|       } |       } | ||||||
|     )) |     )) | ||||||
|   ]; |   ]; | ||||||
|  | 
 | ||||||
|  |   flake.hydraJobs = | ||||||
|  |     let | ||||||
|  |       self = inputs.self; | ||||||
|  |     in | ||||||
|  |     { | ||||||
|  |       # hosts = lib.mapAttrs (_: cfg: cfg.config.system.build.toplevel) self.outputs.nixosConfigurations; | ||||||
|  |       packages = self.packages; | ||||||
|  |       shells = lib.filterAttrs (name: shell: name == "x86_64-linux") self.devShells; | ||||||
|  |     }; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										73
									
								
								modules/hosts/loptland/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								modules/hosts/loptland/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,73 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | let | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   flake.modules.nixos."hosts/loptland" = | ||||||
|  |     { | ||||||
|  |       inputs, | ||||||
|  |       lib, | ||||||
|  |       pkgs, | ||||||
|  |       modulesPath, | ||||||
|  |       ... | ||||||
|  |     }: | ||||||
|  |     let | ||||||
|  |       sopsFile = ../../../secrets/secrets-loptland.yaml; | ||||||
|  | 
 | ||||||
|  |     in | ||||||
|  |     { | ||||||
|  |       nixpkgs.config.allowUnfree = true; | ||||||
|  |       services.qemuGuest.enable = true; | ||||||
|  | 
 | ||||||
|  |       imports = | ||||||
|  |         with config.flake.modules.nixos; | ||||||
|  |         [ | ||||||
|  |           (modulesPath + "/profiles/qemu-guest.nix") | ||||||
|  |           inputs.catppuccin.nixosModules.catppuccin | ||||||
|  | 
 | ||||||
|  |           # System modules | ||||||
|  |           base | ||||||
|  |           server | ||||||
|  |           dev | ||||||
|  | 
 | ||||||
|  |           # apps | ||||||
|  | 
 | ||||||
|  |           # Users | ||||||
|  |           cholli | ||||||
|  |         ] | ||||||
|  |         ++ [ | ||||||
|  |           { | ||||||
|  |             home-manager.users.cholli = { | ||||||
|  |               imports = with config.flake.modules.homeManager; [ | ||||||
|  |                 inputs.catppuccin.homeModules.catppuccin | ||||||
|  | 
 | ||||||
|  |                 # components | ||||||
|  |                 base | ||||||
|  |                 dev | ||||||
|  | 
 | ||||||
|  |                 # Activate all user based config | ||||||
|  |                 cholli | ||||||
|  |               ]; | ||||||
|  |             }; | ||||||
|  |           } | ||||||
|  | 
 | ||||||
|  |         ]; | ||||||
|  | 
 | ||||||
|  |       sops = { | ||||||
|  |         secrets = { | ||||||
|  |           "forgejo/db/password" = { | ||||||
|  |             inherit sopsFile; | ||||||
|  |           }; | ||||||
|  |           "forgejo/mail/password" = { | ||||||
|  |             inherit sopsFile; | ||||||
|  |           }; | ||||||
|  |           "forgejo/mail/passwordHash" = { | ||||||
|  |             inherit sopsFile; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |     }; | ||||||
|  | } | ||||||
							
								
								
									
										55
									
								
								modules/hosts/loptland/hardware.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								modules/hosts/loptland/hardware.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,55 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | let | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   flake.modules.nixos."hosts/loptland" = | ||||||
|  |     { | ||||||
|  |       inputs, | ||||||
|  |       lib, | ||||||
|  |       pkgs, | ||||||
|  |       ... | ||||||
|  |     }: | ||||||
|  |     { | ||||||
|  |       boot = { | ||||||
|  |         kernelPackages = pkgs.linuxPackages_latest; | ||||||
|  |         loader = { | ||||||
|  |           systemd-boot.enable = true; | ||||||
|  |           efi.canTouchEfiVariables = true; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       boot.initrd.availableKernelModules = [ | ||||||
|  |         "ata_piix" | ||||||
|  |         "uhci_hcd" | ||||||
|  |         "virtio_pci" | ||||||
|  |         "sr_mod" | ||||||
|  |         "virtio_blk" | ||||||
|  |       ]; | ||||||
|  |       boot.initrd.kernelModules = [ ]; | ||||||
|  |       boot.kernelModules = [ ]; | ||||||
|  |       boot.extraModulePackages = [ ]; | ||||||
|  | 
 | ||||||
|  |       fileSystems."/" = { | ||||||
|  |         device = "/dev/disk/by-uuid/26b098dd-0a15-49c5-9998-75f43d17eb26"; | ||||||
|  |         fsType = "ext4"; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       fileSystems."/boot" = { | ||||||
|  |         device = "/dev/disk/by-uuid/30AB-7309"; | ||||||
|  |         fsType = "vfat"; | ||||||
|  |         options = [ | ||||||
|  |           "fmask=0077" | ||||||
|  |           "dmask=0077" | ||||||
|  |         ]; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       swapDevices = [ { device = "/dev/disk/by-uuid/b9bcb425-cb1c-40a1-89bb-d7fe6b421834"; } ]; | ||||||
|  | 
 | ||||||
|  |       networking.useDHCP = lib.mkDefault true; | ||||||
|  |       nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  | } | ||||||
							
								
								
									
										76
									
								
								modules/hosts/loptland/nginx.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								modules/hosts/loptland/nginx.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,76 @@ | ||||||
|  | { | ||||||
|  |   flake.modules.nixos."hosts/loptland" = | ||||||
|  |     { | ||||||
|  |       config, | ||||||
|  |       lib, | ||||||
|  |       pkgs, | ||||||
|  |       ... | ||||||
|  |     }: | ||||||
|  |     let | ||||||
|  |       domainName = "christophhollizeck.dev"; | ||||||
|  |       forgejoPort = 3000; | ||||||
|  |       hydraPort = 2000; | ||||||
|  |     in | ||||||
|  |     { | ||||||
|  |       services.nginx = { | ||||||
|  |         enable = true; | ||||||
|  |         recommendedProxySettings = true; | ||||||
|  | 
 | ||||||
|  |         virtualHosts = { | ||||||
|  |           "git.${domainName}" = { | ||||||
|  |             forceSSL = true; | ||||||
|  |             useACMEHost = domainName; | ||||||
|  | 
 | ||||||
|  |             locations."/" = { | ||||||
|  |               extraConfig = '' | ||||||
|  |                 client_max_body_size 200M; | ||||||
|  |               ''; | ||||||
|  |               proxyPass = "http://localhost:${toString forgejoPort}/"; | ||||||
|  |             }; | ||||||
|  |           }; | ||||||
|  | 
 | ||||||
|  |           "hydra.${domainName}" = lib.mkIf config.services.hydra.enable { | ||||||
|  |             forceSSL = true; | ||||||
|  |             useACMEHost = domainName; | ||||||
|  | 
 | ||||||
|  |             locations."/" = { | ||||||
|  |               proxyPass = "http://localhost:${toString hydraPort}/"; | ||||||
|  |             }; | ||||||
|  |           }; | ||||||
|  | 
 | ||||||
|  |           "ha.${domainName}" = { | ||||||
|  |             forceSSL = true; | ||||||
|  |             useACMEHost = domainName; | ||||||
|  | 
 | ||||||
|  |             locations."/" = { | ||||||
|  |               # tailscale ip | ||||||
|  |               extraConfig = '' | ||||||
|  |                 proxy_set_header Upgrade $http_upgrade; | ||||||
|  |                 proxy_set_header Connection "upgrade"; | ||||||
|  |               ''; | ||||||
|  |               proxyPass = "http://100.86.23.74:8123"; | ||||||
|  |             }; | ||||||
|  |           }; | ||||||
|  | 
 | ||||||
|  |           "nixcache.${domainName}" = lib.mkIf config.services.nix-serve.enable { | ||||||
|  |             forceSSL = true; | ||||||
|  |             useACMEHost = domainName; | ||||||
|  | 
 | ||||||
|  |             locations."/" = { | ||||||
|  |               proxyPass = "http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}"; | ||||||
|  |             }; | ||||||
|  |           }; | ||||||
|  | 
 | ||||||
|  |           "_" = { | ||||||
|  |             forceSSL = true; | ||||||
|  |             useACMEHost = domainName; | ||||||
|  | 
 | ||||||
|  |             locations."/" = { | ||||||
|  |               proxyPass = "https://${domainName}"; | ||||||
|  |             }; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |     }; | ||||||
|  | } | ||||||
							
								
								
									
										11
									
								
								modules/hosts/nixberry/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								modules/hosts/nixberry/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | let | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   flake.modules.nixos."hosts/nixberry" = { | ||||||
|  | 
 | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										11
									
								
								modules/hosts/wsl/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								modules/hosts/wsl/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | let | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   flake.modules.nixos."hosts/wsl" = { | ||||||
|  | 
 | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  | @ -24,18 +24,8 @@ in | ||||||
|         diebahn |         diebahn | ||||||
| 
 | 
 | ||||||
|         path-of-building |         path-of-building | ||||||
|         bottles |         termscp | ||||||
| 
 |  | ||||||
|         # to be removed |  | ||||||
|         kdePackages.bluez-qt |  | ||||||
|         zed-editor |  | ||||||
|         seahorse |  | ||||||
|         font-manager |  | ||||||
|         vesktop |  | ||||||
|         rofi-unwrapped |  | ||||||
|       ]; |       ]; | ||||||
|       # to be removed |  | ||||||
|       virtualisation.waydroid.enable = true; |  | ||||||
| 
 | 
 | ||||||
|       services.teamviewer.enable = true; |       services.teamviewer.enable = true; | ||||||
|       environment.pathsToLink = [ "/libexec" ]; |       environment.pathsToLink = [ "/libexec" ]; | ||||||
|  | @ -64,7 +54,7 @@ in | ||||||
|           amdgpu |           amdgpu | ||||||
| 
 | 
 | ||||||
|           # dektops |           # dektops | ||||||
|           hyprland |           # hyprland | ||||||
|           niri |           niri | ||||||
| 
 | 
 | ||||||
|           # apps |           # apps | ||||||
|  | @ -110,64 +100,5 @@ in | ||||||
|           } |           } | ||||||
|         ]; |         ]; | ||||||
|       }; |       }; | ||||||
| 
 |  | ||||||
|       boot = { |  | ||||||
|         kernelPackages = pkgs.linuxPackages_latest; |  | ||||||
| 
 |  | ||||||
|         loader = { |  | ||||||
|           systemd-boot.enable = true; |  | ||||||
|           efi.canTouchEfiVariables = true; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         initrd.availableKernelModules = [ |  | ||||||
|           "nvme" |  | ||||||
|           "ahci" |  | ||||||
|           "xhci_pci" |  | ||||||
|           "usbhid" |  | ||||||
|           "usb_storage" |  | ||||||
|           "sd_mod" |  | ||||||
|         ]; |  | ||||||
|         kernelModules = [ "kvm-amd" ]; |  | ||||||
| 
 |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       fileSystems = { |  | ||||||
|         "/" = { |  | ||||||
|           device = "/dev/disk/by-uuid/b1a956f4-91d5-456e-a92b-be505bb719bd"; |  | ||||||
|           fsType = "ext4"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "/boot" = { |  | ||||||
|           device = "/dev/disk/by-uuid/B4D4-8BA0"; |  | ||||||
|           fsType = "vfat"; |  | ||||||
|           options = [ |  | ||||||
|             "fmask=0077" |  | ||||||
|             "dmask=0077" |  | ||||||
|           ]; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "/storage" = { |  | ||||||
|           device = "/dev/disk/by-uuid/c3c1dec1-7716-4c37-a3f2-bb60f9af84fd"; |  | ||||||
|           fsType = "ext4"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "/var/lib/bluetooth" = { |  | ||||||
|           device = "/persist/var/lib/bluetooth"; |  | ||||||
|           options = [ |  | ||||||
|             "bind" |  | ||||||
|             "noauto" |  | ||||||
|             "x-systemd.automount" |  | ||||||
|           ]; |  | ||||||
|           noCheck = true; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       swapDevices = [ |  | ||||||
|         { device = "/dev/disk/by-uuid/4bec00ec-e9eb-4034-836a-ecf15e0bb40e"; } |  | ||||||
|       ]; |  | ||||||
| 
 |  | ||||||
|       nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; |  | ||||||
|       hardware.enableRedistributableFirmware = true; |  | ||||||
|       hardware.cpu.amd.updateMicrocode = true; |  | ||||||
|     }; |     }; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										71
									
								
								modules/hosts/yggdrasil/hardware.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								modules/hosts/yggdrasil/hardware.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,71 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | let | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   flake.modules.nixos."hosts/yggdrasil" = | ||||||
|  |     { lib, pkgs, ... }: | ||||||
|  |     { | ||||||
|  | 
 | ||||||
|  |       boot = { | ||||||
|  |         kernelPackages = pkgs.linuxPackages_latest; | ||||||
|  | 
 | ||||||
|  |         loader = { | ||||||
|  |           systemd-boot.enable = true; | ||||||
|  |           efi.canTouchEfiVariables = true; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         initrd.availableKernelModules = [ | ||||||
|  |           "nvme" | ||||||
|  |           "ahci" | ||||||
|  |           "xhci_pci" | ||||||
|  |           "usbhid" | ||||||
|  |           "usb_storage" | ||||||
|  |           "sd_mod" | ||||||
|  |         ]; | ||||||
|  |         kernelModules = [ "kvm-amd" ]; | ||||||
|  | 
 | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       fileSystems = { | ||||||
|  |         "/" = { | ||||||
|  |           device = "/dev/disk/by-uuid/b1a956f4-91d5-456e-a92b-be505bb719bd"; | ||||||
|  |           fsType = "ext4"; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         "/boot" = { | ||||||
|  |           device = "/dev/disk/by-uuid/B4D4-8BA0"; | ||||||
|  |           fsType = "vfat"; | ||||||
|  |           options = [ | ||||||
|  |             "fmask=0077" | ||||||
|  |             "dmask=0077" | ||||||
|  |           ]; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         "/storage" = { | ||||||
|  |           device = "/dev/disk/by-uuid/c3c1dec1-7716-4c37-a3f2-bb60f9af84fd"; | ||||||
|  |           fsType = "ext4"; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         "/var/lib/bluetooth" = { | ||||||
|  |           device = "/persist/var/lib/bluetooth"; | ||||||
|  |           options = [ | ||||||
|  |             "bind" | ||||||
|  |             "noauto" | ||||||
|  |             "x-systemd.automount" | ||||||
|  |           ]; | ||||||
|  |           noCheck = true; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       swapDevices = [ | ||||||
|  |         { device = "/dev/disk/by-uuid/4bec00ec-e9eb-4034-836a-ecf15e0bb40e"; } | ||||||
|  |       ]; | ||||||
|  | 
 | ||||||
|  |       nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||||
|  |       hardware.enableRedistributableFirmware = true; | ||||||
|  |       hardware.cpu.amd.updateMicrocode = true; | ||||||
|  |     }; | ||||||
|  | } | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| { | topLevel: { | ||||||
|   flake.modules.nixos.server = |   flake.modules.nixos.server = | ||||||
|     { |     { | ||||||
|       config, |       config, | ||||||
|  | @ -41,10 +41,10 @@ | ||||||
|       security.acme = { |       security.acme = { | ||||||
|         acceptTerms = true; |         acceptTerms = true; | ||||||
|         defaults = { |         defaults = { | ||||||
|           inherit (config.flake.meta.users.cholli) email; |           inherit (topLevel.config.flake.meta.users.cholli) email; | ||||||
| 
 | 
 | ||||||
|           group = lib.optional config.services.nginx.enable "nginx"; |           group = lib.mkIf config.services.nginx.enable "nginx"; | ||||||
|           reloadServices = lib.optional config.services.nginx.enable "nginx.service"; |           reloadServices = lib.mkIf config.services.nginx.enable "nginx.service"; | ||||||
| 
 | 
 | ||||||
|           dnsProvider = "netcup"; |           dnsProvider = "netcup"; | ||||||
|           environmentFile = config.sops.templates."netcup.env".path; |           environmentFile = config.sops.templates."netcup.env".path; | ||||||
|  |  | ||||||
|  | @ -17,6 +17,7 @@ | ||||||
|           alsa.support32Bit = true; |           alsa.support32Bit = true; | ||||||
|           pulse.enable = true; |           pulse.enable = true; | ||||||
| 
 | 
 | ||||||
|  |           # TODO: make sure that `wpctl settings --save bluetooth.autoswitch-to-headset-profile false` is set since the things below are not working | ||||||
|           wireplumber.configPackages = [ |           wireplumber.configPackages = [ | ||||||
|             (pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/11-bluetooth-policy.conf" '' |             (pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/11-bluetooth-policy.conf" '' | ||||||
|               wireplumber.settings = { |               wireplumber.settings = { | ||||||
|  |  | ||||||
|  | @ -9,10 +9,10 @@ | ||||||
|           General = { |           General = { | ||||||
|             Experimental = true; |             Experimental = true; | ||||||
|             KernelExperimental = true; |             KernelExperimental = true; | ||||||
|             Enable = "Source,Sink,Media,Socket"; |             Enable = "Sink,Media,Socket"; | ||||||
|  |             Disable = "Handsfree,Headset,Source"; | ||||||
|           }; |           }; | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
| 
 |  | ||||||
|     }; |     }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -14,6 +14,7 @@ | ||||||
| 
 | 
 | ||||||
|         authorizedKeys = [ |         authorizedKeys = [ | ||||||
|           "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHFrDiO5+vMfD5MimkzN32iw3MnSMLZ0mHvOrHVVmLD0" |           "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHFrDiO5+vMfD5MimkzN32iw3MnSMLZ0mHvOrHVVmLD0" | ||||||
|  |           "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII4Pr7p0jizrvIl0UhcvrmL5SHRQQQWIcHLAnRFyUZS6" | ||||||
|         ]; |         ]; | ||||||
| 
 | 
 | ||||||
|       }; |       }; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue