Compare commits
	
		
			32 commits
		
	
	
		
			8f3c53dee5
			...
			2bd027e333
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 2bd027e333 | |||
| 0557daaff1 | |||
| 0fbdb4aad3 | |||
| 8ed486c268 | |||
| c9c4bc17fa | |||
| ab915bd74d | |||
| 863bfd9e4b | |||
| bf3f5e7214 | |||
| d5ee1fecce | |||
| 4b8bd30521 | |||
| 2fc804dc9f | |||
| 231136e598 | |||
| b9e7753602 | |||
| dab5545875 | |||
| 08e78963e8 | |||
| 7e3461e282 | |||
| 2465370cec | |||
| b7b1c86262 | |||
| b746aa83b3 | |||
| c125c39903 | |||
| 96ac9ab04b | |||
| 9b6ff224c6 | |||
| b421c3de68 | |||
| 9dfaa540fe | |||
| 83aa7913c3 | |||
| d912e3de8c | |||
| 719047b5ca | |||
| 98ddfab6d6 | |||
| 7cd3b0afc6 | |||
| b4ff44cb09 | |||
| cd3ce32322 | |||
| 2462f09e9d | 
					 26 changed files with 1427 additions and 288 deletions
				
			
		
							
								
								
									
										10
									
								
								.sops.yaml
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								.sops.yaml
									
										
									
									
									
								
							|  | @ -5,3 +5,13 @@ creation_rules: | ||||||
|     key_groups:  |     key_groups:  | ||||||
|     - age: |     - age: | ||||||
|       - *primary |       - *primary | ||||||
|  | 
 | ||||||
|  |   - path_regex: secrets/secrets-yggdrasil.yaml$ | ||||||
|  |     key_groups:  | ||||||
|  |     - age: | ||||||
|  |       - *primary | ||||||
|  |        | ||||||
|  |   - path_regex: secrets/secrets-loptland.yaml$ | ||||||
|  |     key_groups:  | ||||||
|  |     - age: | ||||||
|  |       - *primary | ||||||
|  |  | ||||||
							
								
								
									
										342
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										342
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							|  | @ -1,5 +1,24 @@ | ||||||
| { | { | ||||||
|   "nodes": { |   "nodes": { | ||||||
|  |     "ags": { | ||||||
|  |       "inputs": { | ||||||
|  |         "nixpkgs": "nixpkgs_3", | ||||||
|  |         "systems": "systems_4" | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1728326430, | ||||||
|  |         "narHash": "sha256-tV1ABHuA1HItMdCTuNdA8fMB+qw7LpjvI945VwMSABI=", | ||||||
|  |         "owner": "Aylur", | ||||||
|  |         "repo": "ags", | ||||||
|  |         "rev": "60180a184cfb32b61a1d871c058b31a3b9b0743d", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "Aylur", | ||||||
|  |         "repo": "ags", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "aquamarine": { |     "aquamarine": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "hyprutils": [ |         "hyprutils": [ | ||||||
|  | @ -20,11 +39,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728902391, |         "lastModified": 1730968822, | ||||||
|         "narHash": "sha256-44bnoY0nAvbBQ/lVjmn511yL39Sv7SknV0BDxn34P3Q=", |         "narHash": "sha256-NocDjINsh6ismkhb0Xr6xPRksmhuB2WGf8ZmXMhxu7Y=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "aquamarine", |         "repo": "aquamarine", | ||||||
|         "rev": "9874e08eec85b5542ca22494e127b0cdce46b786", |         "rev": "a49bc3583ff223f426cb3526fdaa4bcaa247ec14", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -34,18 +53,12 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "crane": { |     "crane": { | ||||||
|       "inputs": { |  | ||||||
|         "nixpkgs": [ |  | ||||||
|           "helix", |  | ||||||
|           "nixpkgs" |  | ||||||
|         ] |  | ||||||
|       }, |  | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1709610799, |         "lastModified": 1727974419, | ||||||
|         "narHash": "sha256-5jfLQx0U9hXbi2skYMGodDJkIgffrjIOgMRjZqms2QE=", |         "narHash": "sha256-WD0//20h+2/yPGkO88d2nYbb23WMWYvnRyDQ9Dx4UHg=", | ||||||
|         "owner": "ipetkov", |         "owner": "ipetkov", | ||||||
|         "repo": "crane", |         "repo": "crane", | ||||||
|         "rev": "81c393c776d5379c030607866afef6406ca1be57", |         "rev": "37e4f9f0976cb9281cd3f0c70081e5e0ecaee93f", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -62,11 +75,11 @@ | ||||||
|         "rust-analyzer-src": "rust-analyzer-src" |         "rust-analyzer-src": "rust-analyzer-src" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728973961, |         "lastModified": 1730961036, | ||||||
|         "narHash": "sha256-Jkqaw9O7WXTf5SHrK7xr9HpVU/mEPVg0Sp6s3AENC90=", |         "narHash": "sha256-nkho9Dq4WzyF4xr83UdxrlDS5Sm7ZKkPaqGVupLOpOI=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "fenix", |         "repo": "fenix", | ||||||
|         "rev": "d6a9ff4d1e60c347a23bc96ccdb058d37a810541", |         "rev": "9bf50cb857db8dba15528f3905e271d948cbff06", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -179,11 +192,11 @@ | ||||||
|         "systems": "systems" |         "systems": "systems" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1709126324, |         "lastModified": 1726560853, | ||||||
|         "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", |         "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", | ||||||
|         "owner": "numtide", |         "owner": "numtide", | ||||||
|         "repo": "flake-utils", |         "repo": "flake-utils", | ||||||
|         "rev": "d465f4819400de7c8d874d50b982301f28a84605", |         "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -232,7 +245,7 @@ | ||||||
|     }, |     }, | ||||||
|     "flake-utils_2": { |     "flake-utils_2": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "systems": "systems_4" |         "systems": "systems_5" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1710146030, |         "lastModified": 1710146030, | ||||||
|  | @ -250,7 +263,7 @@ | ||||||
|     }, |     }, | ||||||
|     "flake-utils_3": { |     "flake-utils_3": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "systems": "systems_5" |         "systems": "systems_6" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1726560853, |         "lastModified": 1726560853, | ||||||
|  | @ -283,7 +296,7 @@ | ||||||
|     }, |     }, | ||||||
|     "flake-utils_5": { |     "flake-utils_5": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "systems": "systems_6" |         "systems": "systems_7" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1694529238, |         "lastModified": 1694529238, | ||||||
|  | @ -302,7 +315,7 @@ | ||||||
|     "gen-luarc": { |     "gen-luarc": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "flake-parts": "flake-parts", |         "flake-parts": "flake-parts", | ||||||
|         "nixpkgs": "nixpkgs_3" |         "nixpkgs": "nixpkgs_5" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1718922730, |         "lastModified": 1718922730, | ||||||
|  | @ -366,11 +379,11 @@ | ||||||
|         "rust-overlay": "rust-overlay" |         "rust-overlay": "rust-overlay" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1729331287, |         "lastModified": 1730790589, | ||||||
|         "narHash": "sha256-CiQsoNEOGHkSfG/0JJMegHfwXUAI0PwAIVj3i3FmGao=", |         "narHash": "sha256-xJ6bQ4VmdTB7A+dMbmOMaZ8a6erB6rkZkB+yzqD7gd4=", | ||||||
|         "owner": "helix-editor", |         "owner": "helix-editor", | ||||||
|         "repo": "helix", |         "repo": "helix", | ||||||
|         "rev": "be2884d80061493ab1999d73ffa51dfb4f59639d", |         "rev": "b53dafe326d51b7f64a1c52379e3d4150cd2991e", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -386,11 +399,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1729321331, |         "lastModified": 1730837930, | ||||||
|         "narHash": "sha256-KVyQq+ez/oB30/WbdNgVD8g/bda34z8NiU187QKQb74=", |         "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "rev": "122f70545b29ccb922e655b08acfe05bfb44ec68", |         "rev": "2f607e07f3ac7e53541120536708e824acccfaa8", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -407,11 +420,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1729122023, |         "lastModified": 1730065367, | ||||||
|         "narHash": "sha256-OJNfAveVogmpSIJ7V3eCSWVGvmWOVQfMQTfOpK163HQ=", |         "narHash": "sha256-XIsgB/tgaenHorewWrfU2gkDsbkMfPA87Z/LXjeKM7Y=", | ||||||
|         "owner": "outfoxxed", |         "owner": "outfoxxed", | ||||||
|         "repo": "hy3", |         "repo": "hy3", | ||||||
|         "rev": "29293bf7d509cd18e25a59e15841538fcdef580a", |         "rev": "4c79361db9c065886c163d1cf873889e1e641e44", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -463,11 +476,11 @@ | ||||||
|         "xdph": "xdph" |         "xdph": "xdph" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1729353802, |         "lastModified": 1730969692, | ||||||
|         "narHash": "sha256-6OkHeoC3Iva55uVd7MRKS7RLvln8Ma61H9xpcZtU2eY=", |         "narHash": "sha256-yHY98IWTLDz57TrseUxdh5QnpngcNCjNXTJ2XCeNhtk=", | ||||||
|         "ref": "refs/heads/main", |         "ref": "refs/heads/main", | ||||||
|         "rev": "ce3ba798df6bca5be1da4396644a9ef08a2acab4", |         "rev": "e58e97b0a38b8ccc87a4304c9e4e2b37c9966875", | ||||||
|         "revCount": 5358, |         "revCount": 5425, | ||||||
|         "submodules": true, |         "submodules": true, | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://github.com/hyprwm/Hyprland" |         "url": "https://github.com/hyprwm/Hyprland" | ||||||
|  | @ -495,11 +508,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728383680, |         "lastModified": 1730755630, | ||||||
|         "narHash": "sha256-/SeOrMuPEOjngI+MBlzqxQ/sJxkJFIYoef+wJ/PmX2w=", |         "narHash": "sha256-IA5U8lHx/lnHwbx25dpPpeLbaALqNNjalYCf19tIoj0=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "hyprland-plugins", |         "repo": "hyprland-plugins", | ||||||
|         "rev": "d05eb1ffba2ebffb5b4e1b407f134a4dcb411a88", |         "rev": "44859f877739c05d031fcab4a2991ec004fa9bc4", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -599,11 +612,11 @@ | ||||||
|         "systems": "systems_3" |         "systems": "systems_3" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1729175038, |         "lastModified": 1730911842, | ||||||
|         "narHash": "sha256-4eTSbHMPUgap+63YW2IJreM//HL/meaGR0r5IOonH9g=", |         "narHash": "sha256-stAVRv13iACAIJ6mheJOwZXWD24YDupyshaUDovVNi4=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "hyprlock", |         "repo": "hyprlock", | ||||||
|         "rev": "b8080862869af28bafdafb512682d414d9de063a", |         "rev": "4fc133c96fa1ad2968cad44f8e9e9e923cd0381a", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -612,6 +625,25 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "hyprpanel": { | ||||||
|  |       "inputs": { | ||||||
|  |         "ags": "ags", | ||||||
|  |         "nixpkgs": "nixpkgs_4" | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1730958442, | ||||||
|  |         "narHash": "sha256-8vmh+ehnDnIenBNibGTPCu8p7cJiFP6bzj0E7pBxgQQ=", | ||||||
|  |         "owner": "Jas-SinghFSU", | ||||||
|  |         "repo": "HyprPanel", | ||||||
|  |         "rev": "dbd932941b46ced4eac5da30994d5af2ca80530c", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "Jas-SinghFSU", | ||||||
|  |         "repo": "HyprPanel", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "hyprutils": { |     "hyprutils": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|  | @ -624,11 +656,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728941256, |         "lastModified": 1730968903, | ||||||
|         "narHash": "sha256-WRypmcZ2Bw94lLmcmxYokVOHPJSZ7T06V49QZ4tkZeQ=", |         "narHash": "sha256-zFvzLXcSm0Ia4XI1SE4FQ9KE63hlGrRWhLtwMolWuR8=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "hyprutils", |         "repo": "hyprutils", | ||||||
|         "rev": "fd4be8b9ca932f7384e454bcd923c5451ef2aa85", |         "rev": "3ce0cde8709cdacbfba471f8e828433b58a561e9", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -712,7 +744,7 @@ | ||||||
|     "nix-ld": { |     "nix-ld": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|           "unstable" |           "nixpkgs-unstable" | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|  | @ -731,11 +763,11 @@ | ||||||
|     }, |     }, | ||||||
|     "nixos-hardware": { |     "nixos-hardware": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1729333370, |         "lastModified": 1730919458, | ||||||
|         "narHash": "sha256-NU+tYe3QWzDNpB8RagpqR3hNQXn4BNuBd7ZGosMHLL8=", |         "narHash": "sha256-yMO0T0QJlmT/x4HEyvrCyigGrdYfIXX3e5gWqB64wLg=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixos-hardware", |         "repo": "nixos-hardware", | ||||||
|         "rev": "38279034170b1e2929b2be33bdaedbf14a57bfeb", |         "rev": "e1cc1f6483393634aee94514186d21a4871e78d7", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -753,11 +785,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1729300178, |         "lastModified": 1730453870, | ||||||
|         "narHash": "sha256-mkAPu2o5u7F/glAAfBzDji726iL1u2pm2fyN1SPWRQk=", |         "narHash": "sha256-d+kIgz4BvTXb7emjSFV3zjNydGmLUmuluQjdBb51R9o=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "NixOS-WSL", |         "repo": "NixOS-WSL", | ||||||
|         "rev": "42c23a6d5a2a1cbfd3fd137a7ff3d47c6d718033", |         "rev": "adb6bc4b661a43328752b4575be4968a4990c033", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -768,11 +800,11 @@ | ||||||
|     }, |     }, | ||||||
|     "nixpkgs": { |     "nixpkgs": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728888510, |         "lastModified": 1730785428, | ||||||
|         "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=", |         "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c", |         "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -782,6 +814,22 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "nixpkgs-latest-factorio": { | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1730638571, | ||||||
|  |         "narHash": "sha256-z9Wy1jmhFrABK3cEyiVmQtUwOuQW1YPwA8+HMnbEpnE=", | ||||||
|  |         "owner": "Daholli", | ||||||
|  |         "repo": "nixpkgs", | ||||||
|  |         "rev": "d941e9aa2d89f377d45516c5edd765fef15ea90a", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "Daholli", | ||||||
|  |         "repo": "nixpkgs", | ||||||
|  |         "rev": "d941e9aa2d89f377d45516c5edd765fef15ea90a", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "nixpkgs-lib": { |     "nixpkgs-lib": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1717284937, |         "lastModified": 1717284937, | ||||||
|  | @ -794,13 +842,29 @@ | ||||||
|         "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" |         "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "nixpkgs-master": { | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1731023751, | ||||||
|  |         "narHash": "sha256-80FIi/BkulfaTxT76BfDeYyKc/Lo6SIs/4Xm+VlYe4o=", | ||||||
|  |         "owner": "nixos", | ||||||
|  |         "repo": "nixpkgs", | ||||||
|  |         "rev": "ed1b9995752699c34e16e5baafaf5e517397bec8", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "nixos", | ||||||
|  |         "ref": "master", | ||||||
|  |         "repo": "nixpkgs", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "nixpkgs-stable": { |     "nixpkgs-stable": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1720386169, |         "lastModified": 1730741070, | ||||||
|         "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", |         "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", |         "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -812,11 +876,11 @@ | ||||||
|     }, |     }, | ||||||
|     "nixpkgs-stable_2": { |     "nixpkgs-stable_2": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728156290, |         "lastModified": 1730602179, | ||||||
|         "narHash": "sha256-uogSvuAp+1BYtdu6UWuObjHqSbBohpyARXDWqgI12Ss=", |         "narHash": "sha256-efgLzQAWSzJuCLiCaQUCDu4NudNlHdg2NzGLX5GYaEY=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "17ae88b569bb15590549ff478bab6494dde4a907", |         "rev": "3c2f1c4ca372622cb2f9de8016c9a0b1cbd0f37c", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -826,6 +890,22 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "nixpkgs-unstable": { | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1730785428, | ||||||
|  |         "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", | ||||||
|  |         "owner": "nixos", | ||||||
|  |         "repo": "nixpkgs", | ||||||
|  |         "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "nixos", | ||||||
|  |         "ref": "nixos-unstable", | ||||||
|  |         "repo": "nixpkgs", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "nixpkgs_2": { |     "nixpkgs_2": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728492678, |         "lastModified": 1728492678, | ||||||
|  | @ -843,6 +923,38 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nixpkgs_3": { |     "nixpkgs_3": { | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1725634671, | ||||||
|  |         "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", | ||||||
|  |         "owner": "NixOS", | ||||||
|  |         "repo": "nixpkgs", | ||||||
|  |         "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "NixOS", | ||||||
|  |         "ref": "nixos-unstable", | ||||||
|  |         "repo": "nixpkgs", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "nixpkgs_4": { | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1729880355, | ||||||
|  |         "narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=", | ||||||
|  |         "owner": "nixos", | ||||||
|  |         "repo": "nixpkgs", | ||||||
|  |         "rev": "18536bf04cd71abd345f9579158841376fdd0c5a", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "nixos", | ||||||
|  |         "ref": "nixos-unstable", | ||||||
|  |         "repo": "nixpkgs", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "nixpkgs_5": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1718714799, |         "lastModified": 1718714799, | ||||||
|         "narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=", |         "narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=", | ||||||
|  | @ -858,13 +970,13 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nixpkgs_4": { |     "nixpkgs_6": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1729256560, |         "lastModified": 1730785428, | ||||||
|         "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", |         "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", |         "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -874,13 +986,13 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nixpkgs_5": { |     "nixpkgs_7": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728093190, |         "lastModified": 1730272153, | ||||||
|         "narHash": "sha256-CAZF2NRuHmqTtRTNAruWpHA43Gg2UvuCNEIzabP0l6M=", |         "narHash": "sha256-B5WRZYsRlJgwVHIV6DvidFN7VX7Fg9uuwkRW9Ha8z+w=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "e2f08f4d8b3ecb5cf5c9fd9cb2d53bb3c71807da", |         "rev": "2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -890,13 +1002,13 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nixpkgs_6": { |     "nixpkgs_8": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1729256560, |         "lastModified": 1730200266, | ||||||
|         "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", |         "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", |         "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -917,11 +1029,11 @@ | ||||||
|         "nixpkgs-stable": "nixpkgs-stable" |         "nixpkgs-stable": "nixpkgs-stable" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728778939, |         "lastModified": 1730814269, | ||||||
|         "narHash": "sha256-WybK5E3hpGxtCYtBwpRj1E9JoiVxe+8kX83snTNaFHE=", |         "narHash": "sha256-fWPHyhYE6xvMI1eGY3pwBTq85wcy1YXqdzTZF+06nOg=", | ||||||
|         "owner": "cachix", |         "owner": "cachix", | ||||||
|         "repo": "git-hooks.nix", |         "repo": "git-hooks.nix", | ||||||
|         "rev": "ff68f91754be6f3427e4986d7949e6273659be1d", |         "rev": "d70155fdc00df4628446352fc58adc640cd705c2", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -940,26 +1052,29 @@ | ||||||
|         "hyprland": "hyprland", |         "hyprland": "hyprland", | ||||||
|         "hyprland-plugins": "hyprland-plugins", |         "hyprland-plugins": "hyprland-plugins", | ||||||
|         "hyprlock": "hyprlock", |         "hyprlock": "hyprlock", | ||||||
|  |         "hyprpanel": "hyprpanel", | ||||||
|         "kickstartnvim": "kickstartnvim", |         "kickstartnvim": "kickstartnvim", | ||||||
|         "nix-ld": "nix-ld", |         "nix-ld": "nix-ld", | ||||||
|         "nixos-hardware": "nixos-hardware", |         "nixos-hardware": "nixos-hardware", | ||||||
|         "nixos-wsl": "nixos-wsl", |         "nixos-wsl": "nixos-wsl", | ||||||
|         "nixpkgs": "nixpkgs_4", |         "nixpkgs": "nixpkgs_6", | ||||||
|  |         "nixpkgs-latest-factorio": "nixpkgs-latest-factorio", | ||||||
|  |         "nixpkgs-master": "nixpkgs-master", | ||||||
|  |         "nixpkgs-unstable": "nixpkgs-unstable", | ||||||
|         "snowfall-flake": "snowfall-flake", |         "snowfall-flake": "snowfall-flake", | ||||||
|         "snowfall-lib": "snowfall-lib_2", |         "snowfall-lib": "snowfall-lib_2", | ||||||
|         "sops-nix": "sops-nix", |         "sops-nix": "sops-nix", | ||||||
|         "unstable": "unstable", |  | ||||||
|         "zen-browser": "zen-browser" |         "zen-browser": "zen-browser" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "rust-analyzer-src": { |     "rust-analyzer-src": { | ||||||
|       "flake": false, |       "flake": false, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728921748, |         "lastModified": 1730749868, | ||||||
|         "narHash": "sha256-BOCZ5osPOMh2BPHnkK4sVdTGj7sn47rBn1nxjrzWe5U=", |         "narHash": "sha256-b8UMpLh61z6T4J1NObustAuFGoJiAKBTaPTrEf3Amts=", | ||||||
|         "owner": "rust-lang", |         "owner": "rust-lang", | ||||||
|         "repo": "rust-analyzer", |         "repo": "rust-analyzer", | ||||||
|         "rev": "0319586ef2a2636f6d6b891690b7ebebf4337c85", |         "rev": "b51f9bc736dc0472481a47d7c05de2901323e543", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -971,21 +1086,17 @@ | ||||||
|     }, |     }, | ||||||
|     "rust-overlay": { |     "rust-overlay": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "flake-utils": [ |  | ||||||
|           "helix", |  | ||||||
|           "flake-utils" |  | ||||||
|         ], |  | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|           "helix", |           "helix", | ||||||
|           "nixpkgs" |           "nixpkgs" | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1709604635, |         "lastModified": 1728268235, | ||||||
|         "narHash": "sha256-le4fwmWmjGRYWwkho0Gr7mnnZndOOe4XGbLw68OvF40=", |         "narHash": "sha256-lJMFnMO4maJuNO6PQ5fZesrTmglze3UFTTBuKGwR1Nw=", | ||||||
|         "owner": "oxalica", |         "owner": "oxalica", | ||||||
|         "repo": "rust-overlay", |         "repo": "rust-overlay", | ||||||
|         "rev": "e86c0fb5d3a22a5f30d7f64ecad88643fe26449d", |         "rev": "25685cc2c7054efc31351c172ae77b21814f2d42", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -998,7 +1109,7 @@ | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "flake-compat": "flake-compat_3", |         "flake-compat": "flake-compat_3", | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|           "unstable" |           "nixpkgs-unstable" | ||||||
|         ], |         ], | ||||||
|         "snowfall-lib": "snowfall-lib" |         "snowfall-lib": "snowfall-lib" | ||||||
|       }, |       }, | ||||||
|  | @ -1049,11 +1160,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1719005984, |         "lastModified": 1730136121, | ||||||
|         "narHash": "sha256-mpFl3Jv4fKnn+5znYXG6SsBjfXHJdRG5FEqNSPx0GLA=", |         "narHash": "sha256-tfVayj13Zw+zzOKrmJhnvBod7Hdb9ixBR6/4GUlyMA0=", | ||||||
|         "owner": "snowfallorg", |         "owner": "snowfallorg", | ||||||
|         "repo": "lib", |         "repo": "lib", | ||||||
|         "rev": "c6238c83de101729c5de3a29586ba166a9a65622", |         "rev": "dd348182c1a010993e68004eada86cf0341fe2c4", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1064,15 +1175,15 @@ | ||||||
|     }, |     }, | ||||||
|     "sops-nix": { |     "sops-nix": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": "nixpkgs_5", |         "nixpkgs": "nixpkgs_7", | ||||||
|         "nixpkgs-stable": "nixpkgs-stable_2" |         "nixpkgs-stable": "nixpkgs-stable_2" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728345710, |         "lastModified": 1731008979, | ||||||
|         "narHash": "sha256-lpunY1+bf90ts+sA2/FgxVNIegPDKCpEoWwOPu4ITTQ=", |         "narHash": "sha256-yN1NxvmqV8UltLkqYBWTeZNgpD/eyh/7LM58caHiEfE=", | ||||||
|         "owner": "Mic92", |         "owner": "Mic92", | ||||||
|         "repo": "sops-nix", |         "repo": "sops-nix", | ||||||
|         "rev": "06535d0e3d0201e6a8080dd32dbfde339b94f01b", |         "rev": "fe63071416471abdab06caa234122932a7c4b980", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1128,16 +1239,16 @@ | ||||||
|     }, |     }, | ||||||
|     "systems_4": { |     "systems_4": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1681028828, |         "lastModified": 1689347949, | ||||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", |         "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", | ||||||
|         "owner": "nix-systems", |         "owner": "nix-systems", | ||||||
|         "repo": "default", |         "repo": "default-linux", | ||||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", |         "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "nix-systems", |         "owner": "nix-systems", | ||||||
|         "repo": "default", |         "repo": "default-linux", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  | @ -1171,19 +1282,18 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "unstable": { |     "systems_7": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1729256560, |         "lastModified": 1681028828, | ||||||
|         "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", |         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||||
|         "owner": "nixos", |         "owner": "nix-systems", | ||||||
|         "repo": "nixpkgs", |         "repo": "default", | ||||||
|         "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", |         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "nixos", |         "owner": "nix-systems", | ||||||
|         "ref": "nixos-unstable", |         "repo": "default", | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  | @ -1215,11 +1325,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728166987, |         "lastModified": 1730743262, | ||||||
|         "narHash": "sha256-w6dVTguAn9zJ+7aPOhBQgDz8bn6YZ7b56cY8Kg5HJRI=", |         "narHash": "sha256-iTLqj3lU8kFehPm5tXpctzkD274t/k1nwSSq3qCWXeg=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "xdg-desktop-portal-hyprland", |         "repo": "xdg-desktop-portal-hyprland", | ||||||
|         "rev": "fb9c8d665af0588bb087f97d0f673ddf0d501787", |         "rev": "09b23cef06fe248e61cec8862c04b9bcb62f4b6d", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1230,14 +1340,14 @@ | ||||||
|     }, |     }, | ||||||
|     "zen-browser": { |     "zen-browser": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": "nixpkgs_6" |         "nixpkgs": "nixpkgs_8" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1729334402, |         "lastModified": 1730444716, | ||||||
|         "narHash": "sha256-elpcQZC6VoZC4jKk09upN2cGPW4j+OjDpD2HjvYe9Z4=", |         "narHash": "sha256-WtqSpYQyG5ad+GK7B0ViDSl0NolHp7yM24TacUslBXE=", | ||||||
|         "owner": "ch4og", |         "owner": "ch4og", | ||||||
|         "repo": "zen-browser-flake", |         "repo": "zen-browser-flake", | ||||||
|         "rev": "d5adb0791f5cf974b2b480f5d62075e9b3e7dd80", |         "rev": "d3c639ee7bff20f799f443e18fffa6331a71cd3a", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								flake.nix
									
										
									
									
									
								
							|  | @ -4,7 +4,10 @@ | ||||||
|   inputs = { |   inputs = { | ||||||
|     # nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; |     # nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; | ||||||
|     nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; |     nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; | ||||||
|     unstable.url = "github:nixos/nixpkgs/nixos-unstable"; |     nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; | ||||||
|  | 
 | ||||||
|  |     nixpkgs-master.url = "github:nixos/nixpkgs/master"; | ||||||
|  |     nixpkgs-latest-factorio.url = "github:Daholli/nixpkgs/d941e9aa2d89f377d45516c5edd765fef15ea90a"; | ||||||
| 
 | 
 | ||||||
|     home-manager = { |     home-manager = { | ||||||
|       url = "github:nix-community/home-manager/master"; |       url = "github:nix-community/home-manager/master"; | ||||||
|  | @ -22,7 +25,7 @@ | ||||||
|     # Run unpatched dynamically compiled binaries |     # Run unpatched dynamically compiled binaries | ||||||
|     nix-ld = { |     nix-ld = { | ||||||
|       url = "github:Mic92/nix-ld"; |       url = "github:Mic92/nix-ld"; | ||||||
|       inputs.nixpkgs.follows = "unstable"; |       inputs.nixpkgs.follows = "nixpkgs-unstable"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     ### |     ### | ||||||
|  | @ -39,6 +42,8 @@ | ||||||
|       inputs.hyprland.follows = "hyprland"; |       inputs.hyprland.follows = "hyprland"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |     hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; | ||||||
|  | 
 | ||||||
|     ### |     ### | ||||||
|     # Snowfall dependencies |     # Snowfall dependencies | ||||||
|     snowfall-lib = { |     snowfall-lib = { | ||||||
|  | @ -48,9 +53,10 @@ | ||||||
| 
 | 
 | ||||||
|     snowfall-flake = { |     snowfall-flake = { | ||||||
|       url = "github:snowfallorg/flake"; |       url = "github:snowfallorg/flake"; | ||||||
|       inputs.nixpkgs.follows = "unstable"; |       inputs.nixpkgs.follows = "nixpkgs-unstable"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |     # still not sure if I like helix or nvim more, for now helix does mostly everything I need it to | ||||||
|     kickstartnvim = { |     kickstartnvim = { | ||||||
|       url = "github:Daholli/kickstart-nix-nvim"; |       url = "github:Daholli/kickstart-nix-nvim"; | ||||||
|       inputs.nixpkgs.follows = "nixpkgs"; |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  | @ -109,6 +115,7 @@ | ||||||
|       overlays = with inputs; [ |       overlays = with inputs; [ | ||||||
|         snowfall-flake.overlays.default |         snowfall-flake.overlays.default | ||||||
|         kickstartnvim.overlays.default |         kickstartnvim.overlays.default | ||||||
|  |         hyprpanel.overlay | ||||||
|       ]; |       ]; | ||||||
| 
 | 
 | ||||||
|       systems.modules.nixos = with inputs; [ |       systems.modules.nixos = with inputs; [ | ||||||
|  |  | ||||||
							
								
								
									
										22
									
								
								homes/x86_64-linux/cholli@loptland/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								homes/x86_64-linux/cholli@loptland/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | ||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   config, | ||||||
|  |   osConfig ? { }, | ||||||
|  |   format ? "unknown", | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | with lib.wyrdgard; | ||||||
|  | { | ||||||
|  |   wyrdgard = { | ||||||
|  |     apps = { | ||||||
|  |       kitty = enabled; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     tools = { | ||||||
|  |       direnv = enabled; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   home.stateVersion = "24.11"; | ||||||
|  | } | ||||||
|  | @ -18,7 +18,7 @@ let | ||||||
| in | in | ||||||
| { | { | ||||||
|   options.${namespace}.apps.cli-apps.helix = { |   options.${namespace}.apps.cli-apps.helix = { | ||||||
|     enable = mkEnableOption "Whether to enable nixvim or not"; |     enable = mkEnableOption "Whether to enable helix or not"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|  | @ -30,124 +30,119 @@ in | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     ${namespace} = { |     ${namespace} = { | ||||||
|       home = { |       home.extraOptions = { | ||||||
|         extraOptions = { |         programs.helix = { | ||||||
|           programs.helix = { |           enable = true; | ||||||
|             enable = true; |           package = helix-pkg; | ||||||
|             package = helix-pkg; |           defaultEditor = true; | ||||||
|             defaultEditor = true; |           settings = { | ||||||
|             settings = { |             theme = "tokyonight"; | ||||||
|               theme = "tokyonight"; |             editor = { | ||||||
|               editor = { |               auto-format = true; | ||||||
|                 auto-format = true; |               line-number = "relative"; | ||||||
|                 line-number = "relative"; |  | ||||||
| 
 | 
 | ||||||
|                 lsp = { |               lsp = { | ||||||
|                   display-inlay-hints = true; |                 display-inlay-hints = true; | ||||||
|                   display-messages = true; |                 display-messages = true; | ||||||
|                 }; |  | ||||||
| 
 |  | ||||||
|                 cursor-shape = { |  | ||||||
|                   normal = "block"; |  | ||||||
|                   insert = "bar"; |  | ||||||
|                   select = "underline"; |  | ||||||
|                 }; |  | ||||||
| 
 |  | ||||||
|                 indent-guides = { |  | ||||||
|                   render = true; |  | ||||||
|                   character = "|"; |  | ||||||
|                 }; |  | ||||||
| 
 |  | ||||||
|                 statusline = { |  | ||||||
|                   left = [ |  | ||||||
|                     "mode" |  | ||||||
|                     "spinner" |  | ||||||
|                   ]; |  | ||||||
|                   center = [ "file-name" ]; |  | ||||||
|                   right = [ |  | ||||||
|                     "workspace-diagnostics" |  | ||||||
|                     "diagnostics" |  | ||||||
|                     "selections" |  | ||||||
|                     "position" |  | ||||||
|                     "total-line-numbers" |  | ||||||
|                     "spacer" |  | ||||||
|                     "file-encoding" |  | ||||||
|                     "file-line-ending" |  | ||||||
|                     "file-type" |  | ||||||
|                   ]; |  | ||||||
|                   separator = "│"; |  | ||||||
|                 }; |  | ||||||
|               }; |               }; | ||||||
| 
 | 
 | ||||||
|               keys = { |               cursor-shape = { | ||||||
|                 normal = { |                 normal = "block"; | ||||||
|                   esc = [ |                 insert = "bar"; | ||||||
|                     "collapse_selection" |                 select = "underline"; | ||||||
|                     "keep_primary_selection" |               }; | ||||||
|                   ]; |  | ||||||
|                   space = { |  | ||||||
|                     space = "file_picker"; |  | ||||||
|                   }; |  | ||||||
| 
 | 
 | ||||||
|                   C-j = [ |               indent-guides = { | ||||||
|                     "move_line_down" |                 render = true; | ||||||
|                     "move_line_down" |                 character = "|"; | ||||||
|                     "move_line_down" |               }; | ||||||
|                     "move_line_down" | 
 | ||||||
|                     "move_line_down" |               statusline = { | ||||||
|                   ]; |                 left = [ | ||||||
|                   C-k = [ |                   "mode" | ||||||
|                     "move_line_up" |                   "spinner" | ||||||
|                     "move_line_up" |                 ]; | ||||||
|                     "move_line_up" |                 center = [ "file-name" ]; | ||||||
|                     "move_line_up" |                 right = [ | ||||||
|                     "move_line_up" |                   "workspace-diagnostics" | ||||||
|                   ]; |                   "diagnostics" | ||||||
|                 }; |                   "selections" | ||||||
|  |                   "position" | ||||||
|  |                   "total-line-numbers" | ||||||
|  |                   "spacer" | ||||||
|  |                   "file-encoding" | ||||||
|  |                   "file-line-ending" | ||||||
|  |                   "file-type" | ||||||
|  |                 ]; | ||||||
|  |                 separator = "│"; | ||||||
|               }; |               }; | ||||||
|             }; |             }; | ||||||
| 
 | 
 | ||||||
|             languages = { |             keys = { | ||||||
|               language = [ |               normal = { | ||||||
|                 { |                 esc = [ | ||||||
|                   name = "nix"; |                   "collapse_selection" | ||||||
|                   auto-format = true; |                   "keep_primary_selection" | ||||||
|                   formatter.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; |                 ]; | ||||||
|                   language-servers = [ |                 space = { | ||||||
|                     "nixd" |                   space = "file_picker"; | ||||||
|                     "nil" |                 }; | ||||||
|                   ]; |  | ||||||
|                 } |  | ||||||
|                 { |  | ||||||
|                   # provided by the dev environment in the rust shell |  | ||||||
|                   name = "rust"; |  | ||||||
|                   auto-format = true; |  | ||||||
|                   formatter.command = "cargo fmt"; |  | ||||||
|                   language-servers = [ "rust-analyzer" ]; |  | ||||||
|                 } |  | ||||||
|               ]; |  | ||||||
| 
 | 
 | ||||||
|               language-server = { |                 C-j = [ | ||||||
|                 nil = { |                   "move_line_down" | ||||||
|                   command = "${pkgs.nil}/bin/nil"; |                   "move_line_down" | ||||||
|                 }; |                   "move_line_down" | ||||||
|                 nixd = { |                   "move_line_down" | ||||||
|                   command = "${pkgs.nixd}/bin/nixd"; |                   "move_line_down" | ||||||
|                 }; |                 ]; | ||||||
|                 marksman = { |                 C-k = [ | ||||||
|                   command = "${pkgs.marksman}/bin/marksman"; |                   "move_line_up" | ||||||
|                 }; |                   "move_line_up" | ||||||
|                 vscode-json-language-server = { |                   "move_line_up" | ||||||
|                   command = "${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server"; |                   "move_line_up" | ||||||
|                   args = [ "--stdio" ]; |                   "move_line_up" | ||||||
|                   config.provideFormatter = true; |                 ]; | ||||||
|                   config.json.validate.enable = true; |               }; | ||||||
|                 }; |             }; | ||||||
|                 vscode-css-language-server = { |           }; | ||||||
|                   command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server"; | 
 | ||||||
|                   args = [ "--stdio" ]; |           languages = { | ||||||
|                   config.provideFormatter = true; |             language = [ | ||||||
|                 }; |               { | ||||||
|  |                 name = "nix"; | ||||||
|  |                 auto-format = true; | ||||||
|  |                 formatter.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; | ||||||
|  |                 language-servers = [ | ||||||
|  |                   "nixd" | ||||||
|  |                   "nil" | ||||||
|  |                 ]; | ||||||
|  |               } | ||||||
|  |               { | ||||||
|  |                 # provided by the dev environment in the rust shell | ||||||
|  |                 name = "rust"; | ||||||
|  |                 auto-format = true; | ||||||
|  |                 formatter.command = "cargo fmt"; | ||||||
|  |                 language-servers = [ "rust-analyzer" ]; | ||||||
|  |               } | ||||||
|  |             ]; | ||||||
|  | 
 | ||||||
|  |             language-server = { | ||||||
|  |               nixd = { | ||||||
|  |                 command = "${pkgs.nixd}/bin/nixd"; | ||||||
|  |               }; | ||||||
|  |               marksman = { | ||||||
|  |                 command = "${pkgs.marksman}/bin/marksman"; | ||||||
|  |               }; | ||||||
|  |               vscode-json-language-server = { | ||||||
|  |                 command = "${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server"; | ||||||
|  |                 args = [ "--stdio" ]; | ||||||
|  |                 config.provideFormatter = true; | ||||||
|  |                 config.json.validate.enable = true; | ||||||
|  |               }; | ||||||
|  |               vscode-css-language-server = { | ||||||
|  |                 command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server"; | ||||||
|  |                 args = [ "--stdio" ]; | ||||||
|  |                 config.provideFormatter = true; | ||||||
|               }; |               }; | ||||||
|             }; |             }; | ||||||
|           }; |           }; | ||||||
|  |  | ||||||
							
								
								
									
										45
									
								
								modules/nixos/desktop/addons/hypridle/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								modules/nixos/desktop/addons/hypridle/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,45 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   namespace, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | let | ||||||
|  |   inherit (lib) mkIf mkEnableOption; | ||||||
|  | 
 | ||||||
|  |   cfg = config.${namespace}.desktop.addons.hypridle; | ||||||
|  | 
 | ||||||
|  |   username = config.${namespace}.user.name; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   options.${namespace}.desktop.addons.hypridle = { | ||||||
|  |     enable = mkEnableOption "Enable HyprIdle"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     snowfallorg.users.${username}.home.config = { | ||||||
|  |       services.hypridle = { | ||||||
|  |         enable = true; | ||||||
|  |         settings = { | ||||||
|  |           general = { | ||||||
|  |             after_sleep_cmd = "hyprctl dispatch dpms on"; | ||||||
|  |             ignore_dbus_inhibit = false; | ||||||
|  |             lock_cmd = "hyprlock"; | ||||||
|  |           }; | ||||||
|  | 
 | ||||||
|  |           listener = [ | ||||||
|  |             { | ||||||
|  |               timeout = 900; | ||||||
|  |               on-timeout = "loginctl lock-session"; | ||||||
|  |             } | ||||||
|  |             { | ||||||
|  |               timeout = 1200; | ||||||
|  |               on-timeout = "hyprctl dispatch dpms off"; | ||||||
|  |               on-resume = "hyprctl dispatch dpms on"; | ||||||
|  |             } | ||||||
|  |           ]; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										614
									
								
								modules/nixos/desktop/addons/hyprpanel/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										614
									
								
								modules/nixos/desktop/addons/hyprpanel/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,614 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   namespace, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | let | ||||||
|  |   inherit (lib) | ||||||
|  |     mkIf | ||||||
|  |     mkEnableOption | ||||||
|  |     mkMerge | ||||||
|  |     mkOption | ||||||
|  |     literalExpression | ||||||
|  |     ; | ||||||
|  | 
 | ||||||
|  |   cfg = config.${namespace}.desktop.addons.hyprpanel; | ||||||
|  |   username = config.${namespace}.user.name; | ||||||
|  | 
 | ||||||
|  |   settingsFormat = pkgs.formats.json { }; | ||||||
|  | 
 | ||||||
|  |   iconColor = "#242438"; | ||||||
|  | 
 | ||||||
|  |   light-cyan = "#73daca"; | ||||||
|  |   lightBlue = "#414868"; | ||||||
|  |   medium-blue = "#9aa5ce"; | ||||||
|  |   cyan-blue = "#7dcfff"; | ||||||
|  |   navy-blue = "#24283b"; | ||||||
|  |   dark-blue = "#1a1b26"; | ||||||
|  |   dark-blue-gray = "565f89"; | ||||||
|  |   dark-blue-yankees = "#272a3d"; | ||||||
|  |   blue-magenta = "#181825"; | ||||||
|  | 
 | ||||||
|  |   lightPurple = "#bb9af7"; | ||||||
|  | 
 | ||||||
|  |   lightRed = "#f7768e"; | ||||||
|  |   red = "#c0caf5"; | ||||||
|  | 
 | ||||||
|  |   lightGreen = "#9ece6a"; | ||||||
|  |   yellow = "#e0af68"; | ||||||
|  | 
 | ||||||
|  |   settings = { | ||||||
|  |     tear = true; | ||||||
|  |     scalingPriority = "hyprland"; | ||||||
|  |     font.name = "CodeNewRoman Nerd Font Mono"; | ||||||
|  | 
 | ||||||
|  |     bar = { | ||||||
|  |       customModules = { | ||||||
|  |         updates.pollingInterval = 1440000; | ||||||
|  |         ram = { | ||||||
|  |           labelType = "used/total"; | ||||||
|  |           icon = " "; | ||||||
|  |         }; | ||||||
|  |         cpu = { | ||||||
|  |           label = true; | ||||||
|  |           leftClick = "kitty --hold btop"; | ||||||
|  |           icon = " "; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |       layouts = { | ||||||
|  |         "0" = { | ||||||
|  |           left = [ | ||||||
|  |             "workspaces" | ||||||
|  |           ]; | ||||||
|  |           middle = [ | ||||||
|  |             "windowtitle" | ||||||
|  |           ]; | ||||||
|  |           right = [ | ||||||
|  |             "clock" | ||||||
|  |           ]; | ||||||
|  |         }; | ||||||
|  |         "1" = { | ||||||
|  |           left = [ | ||||||
|  |             "dashboard" | ||||||
|  |             "workspaces" | ||||||
|  |           ]; | ||||||
|  |           middle = [ | ||||||
|  |             "windowtitle" | ||||||
|  |           ]; | ||||||
|  |           right = [ | ||||||
|  |             "volume" | ||||||
|  |             "bluetooth" | ||||||
|  |             "battery" | ||||||
|  |             "systray" | ||||||
|  |             "cpu" | ||||||
|  |             "ram" | ||||||
|  |             "clock" | ||||||
|  |             "notifications" | ||||||
|  |           ]; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |       workspaces = { | ||||||
|  |         showAllActive = true; | ||||||
|  |         show_icons = false; | ||||||
|  |         numbered_active_indicator = "underline"; | ||||||
|  |         show_numbered = true; | ||||||
|  |         showWsIcons = false; | ||||||
|  |         showApplicationIcons = false; | ||||||
|  |         hideUnoccupied = true; | ||||||
|  |       }; | ||||||
|  |       launcher = { | ||||||
|  |         icon = ""; | ||||||
|  |         rightClick = "hyprpanel -t settings-dialog"; | ||||||
|  |       }; | ||||||
|  |       scrollSpeed = 0; | ||||||
|  |       windowtitle = { | ||||||
|  |         class_name = false; | ||||||
|  |         custom_title = false; | ||||||
|  |         icon = false; | ||||||
|  |         label = true; | ||||||
|  |         title_map = [ | ||||||
|  | 
 | ||||||
|  |         ]; | ||||||
|  |         truncation = true; | ||||||
|  |       }; | ||||||
|  |       network = { | ||||||
|  |         label = false; | ||||||
|  |         truncation = false; | ||||||
|  |       }; | ||||||
|  |       clock.format = "%a %b %d  %H:%M:%S"; | ||||||
|  |       notifications.show_total = true; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     menus = { | ||||||
|  |       clock.time.military = true; | ||||||
|  |       dashboard = { | ||||||
|  |         powermenu.avatar.image = "/home/cholli/Pictures/profile.png"; | ||||||
|  | 
 | ||||||
|  |         shortcuts.enabled = false; | ||||||
|  |         directories.left = { | ||||||
|  |           directory1.command = "kitty $HOME/Downloads"; | ||||||
|  |           directory3.command = "kitty $HOME/projects"; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         stats = { | ||||||
|  |           enable_gpu = true; | ||||||
|  |           enabled = false; | ||||||
|  |         }; | ||||||
|  |         controls.enabled = false; | ||||||
|  |       }; | ||||||
|  |       bluetooth = { | ||||||
|  |         showBattery = true; | ||||||
|  |         batteryState = "always"; | ||||||
|  |       }; | ||||||
|  |       transition = "crossfade"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     theme = { | ||||||
|  |       bar = { | ||||||
|  |         floating = true; | ||||||
|  |         outer_spacing = "0.2em"; | ||||||
|  |         buttons = { | ||||||
|  |           enableBorders = true; | ||||||
|  | 
 | ||||||
|  |           workspaces = { | ||||||
|  |             enableBorder = false; | ||||||
|  |             fontSize = "1.2em"; | ||||||
|  |             smartHighlight = false; | ||||||
|  |             active = "#f7768e"; | ||||||
|  |             occupied = "#f7768e"; | ||||||
|  |             available = "#7dcfff"; | ||||||
|  |             hover = "#f7768e"; | ||||||
|  |             background = "#272a3d"; | ||||||
|  |             numbered_active_highlighted_text_color = "#181825"; | ||||||
|  |             numbered_active_underline_color = "#c678dd"; | ||||||
|  |             border = "#f7768e"; | ||||||
|  |           }; | ||||||
|  |           modules = { | ||||||
|  |             power = { | ||||||
|  |               icon = "#181825"; | ||||||
|  |               icon_background = "#f7768e"; | ||||||
|  |               background = "#272a3d"; | ||||||
|  |               border = "#f7768e"; | ||||||
|  |             }; | ||||||
|  |             ram = { | ||||||
|  |               enableBorder = false; | ||||||
|  |               spacing = "0.45em"; | ||||||
|  |               icon = "#181825"; | ||||||
|  |               icon_background = "#e0af68"; | ||||||
|  |               text = "#e0af68"; | ||||||
|  |               background = "#272a3d"; | ||||||
|  |               border = "#e0af68"; | ||||||
|  |             }; | ||||||
|  |             cpu = { | ||||||
|  |               enableBorder = false; | ||||||
|  |               background = "#272a3d"; | ||||||
|  |               icon = "#181825"; | ||||||
|  |               icon_background = "#f7768e"; | ||||||
|  |               text = "#f7768e"; | ||||||
|  |               border = "#f7768e"; | ||||||
|  |             }; | ||||||
|  |             submap = { | ||||||
|  |               background = "#272a3d"; | ||||||
|  |               text = "#73daca"; | ||||||
|  |               border = "#73daca"; | ||||||
|  |               icon = "#181825"; | ||||||
|  |               icon_background = "#73daca"; | ||||||
|  |             }; | ||||||
|  |           }; | ||||||
|  | 
 | ||||||
|  |           style = "split"; | ||||||
|  |           icon = "#242438"; | ||||||
|  |           icon_background = "#bb9af7"; | ||||||
|  |           text = "#bb9af7"; | ||||||
|  |           hover = "#414868"; | ||||||
|  |           background = "#272a3d"; | ||||||
|  |           dashboard = { | ||||||
|  |             enableBorder = false; | ||||||
|  |             icon = "#272a3d"; | ||||||
|  |             background = "#e0af68"; | ||||||
|  |             border = "#e0af68"; | ||||||
|  |           }; | ||||||
|  |           volume = { | ||||||
|  |             icon = "#272a3d"; | ||||||
|  |             text = "#f7768e"; | ||||||
|  |             background = "#272a3d"; | ||||||
|  |             icon_background = "#f7768e"; | ||||||
|  |             border = "#f7768e"; | ||||||
|  |           }; | ||||||
|  |           notifications = { | ||||||
|  |             total = "#bb9af7"; | ||||||
|  |             icon = "#272a3d"; | ||||||
|  |             background = "#272a3d"; | ||||||
|  |             icon_background = "#bb9af7"; | ||||||
|  |             border = "#bb9af7"; | ||||||
|  |           }; | ||||||
|  |           clock = { | ||||||
|  |             icon = "#272a3d"; | ||||||
|  |             text = "#f7768e"; | ||||||
|  |             background = "#272a3d"; | ||||||
|  |             icon_background = "#f7768e"; | ||||||
|  |             border = "#f7768e"; | ||||||
|  |           }; | ||||||
|  |           systray = { | ||||||
|  |             background = "#272a3d"; | ||||||
|  |             border = "#414868"; | ||||||
|  |             customIcon = "#c0caf5"; | ||||||
|  |           }; | ||||||
|  |           bluetooth = { | ||||||
|  |             icon = "#272a3d"; | ||||||
|  |             text = "#7dcfff"; | ||||||
|  |             background = "#272a3d"; | ||||||
|  |             icon_background = "#7dcfff"; | ||||||
|  |             border = "#7dcfff"; | ||||||
|  |           }; | ||||||
|  |           windowtitle = { | ||||||
|  |             icon = "#272a3d"; | ||||||
|  |             text = "#f7768e"; | ||||||
|  |             background = "#272a3d"; | ||||||
|  |             icon_background = "#f7768e"; | ||||||
|  |             border = "#f7768e"; | ||||||
|  |             enableBorder = false; | ||||||
|  |           }; | ||||||
|  |           radius = "0.3em"; | ||||||
|  |           borderSize = "0.0em"; | ||||||
|  |           padding_x = "0.7rem"; | ||||||
|  |           padding_y = "0.2rem"; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         menus = { | ||||||
|  |           monochrome = false; | ||||||
|  |           opacity = 95; | ||||||
|  |           menu = { | ||||||
|  |             dashboard = { | ||||||
|  |               powermenu = { | ||||||
|  |                 shutdown = "#f7768e"; | ||||||
|  |                 confirmation = { | ||||||
|  |                   deny = "#f7768e"; | ||||||
|  |                   confirm = "#9ece6a"; | ||||||
|  |                   button_text = "#1a1b26"; | ||||||
|  |                   body = "#c0caf5"; | ||||||
|  |                   label = "#bb9af7"; | ||||||
|  |                   border = "#414868"; | ||||||
|  |                   background = "#1a1b26"; | ||||||
|  |                   card = "#24283b"; | ||||||
|  |                 }; | ||||||
|  |                 sleep = "#7dcfff"; | ||||||
|  |                 logout = "#9ece6a"; | ||||||
|  |                 restart = "#e0af68"; | ||||||
|  |               }; | ||||||
|  |               monitors = { | ||||||
|  |                 ram = { | ||||||
|  |                   label = "#e0af68"; | ||||||
|  |                   bar = "#e0af68"; | ||||||
|  |                   icon = "#e0af68"; | ||||||
|  |                 }; | ||||||
|  |                 cpu = { | ||||||
|  |                   label = "#f7768e"; | ||||||
|  |                   bar = "#f7768e"; | ||||||
|  |                   icon = "#f7768e"; | ||||||
|  |                 }; | ||||||
|  |                 bar_background = "#414868"; | ||||||
|  |               }; | ||||||
|  |               directories = { | ||||||
|  |                 right = { | ||||||
|  |                   bottom.color = "#bb9af7"; | ||||||
|  |                   middle.color = "#bb9af7"; | ||||||
|  |                   top.color = "#73daca"; | ||||||
|  |                 }; | ||||||
|  |                 left = { | ||||||
|  |                   bottom.color = "#f7768e"; | ||||||
|  |                   middle.color = "#e0af68"; | ||||||
|  |                   top.color = "#f7768e"; | ||||||
|  |                 }; | ||||||
|  |               }; | ||||||
|  |               controls = { | ||||||
|  |                 input = { | ||||||
|  |                   text = "#1a1b26"; | ||||||
|  |                   background = "#f7768e"; | ||||||
|  |                 }; | ||||||
|  |                 volume = { | ||||||
|  |                   text = "#1a1b26"; | ||||||
|  |                   background = "#f7768e"; | ||||||
|  |                 }; | ||||||
|  |                 notifications = { | ||||||
|  |                   text = "#1a1b26"; | ||||||
|  |                   background = "#e0af68"; | ||||||
|  |                 }; | ||||||
|  |                 bluetooth = { | ||||||
|  |                   text = "#1a1b26"; | ||||||
|  |                   background = "#7dcfff"; | ||||||
|  |                 }; | ||||||
|  |                 disabled = "#414868"; | ||||||
|  |               }; | ||||||
|  |               profile.name = "#f7768e"; | ||||||
|  |               border.color = "#414868"; | ||||||
|  |               background.color = "#1a1b26"; | ||||||
|  |               card.color = "#24283b"; | ||||||
|  |             }; | ||||||
|  |             notifications = { | ||||||
|  |               switch = { | ||||||
|  |                 puck = "#565f89"; | ||||||
|  |                 disabled = "#565f89"; | ||||||
|  |                 enabled = "#bb9af7"; | ||||||
|  |               }; | ||||||
|  |               clear = "#f7768e"; | ||||||
|  |               switch_divider = "#414868"; | ||||||
|  |               border = "#414868"; | ||||||
|  |               card = "#24283b"; | ||||||
|  |               background = "#1a1b26"; | ||||||
|  |               no_notifications_label = "#414868"; | ||||||
|  |               label = "#bb9af7"; | ||||||
|  |               scrollbar.color = "#bb9af7"; | ||||||
|  |               pager = { | ||||||
|  |                 button = "#bb9af7"; | ||||||
|  |                 label = "#565f89"; | ||||||
|  |                 background = "#1a1b26"; | ||||||
|  |               }; | ||||||
|  |             }; | ||||||
|  |             clock = { | ||||||
|  |               text = "#c0caf5"; | ||||||
|  |               border.color = "#414868"; | ||||||
|  |               background.color = "#1a1b26"; | ||||||
|  |               card.color = "#24283b"; | ||||||
|  | 
 | ||||||
|  |               calendar = { | ||||||
|  |                 contextdays = "#414868"; | ||||||
|  |                 days = "#c0caf5"; | ||||||
|  |                 currentday = "#f7768e"; | ||||||
|  |                 paginator = "#f7768e"; | ||||||
|  |                 weekdays = "#f7768e"; | ||||||
|  |                 yearmonth = "#73daca"; | ||||||
|  |               }; | ||||||
|  |               time = { | ||||||
|  |                 timeperiod = "#73daca"; | ||||||
|  |                 time = "#f7768e"; | ||||||
|  |               }; | ||||||
|  |             }; | ||||||
|  |             systray = { | ||||||
|  |               dropdownmenu.divider = "#24283b"; | ||||||
|  |               dropdownmenu.text = "#c0caf5"; | ||||||
|  |               dropdownmenu.background = "#1a1b26"; | ||||||
|  |             }; | ||||||
|  |             bluetooth = { | ||||||
|  |               iconbutton = { | ||||||
|  |                 active = "#7dcfff"; | ||||||
|  |                 passive = "#c0caf5"; | ||||||
|  |               }; | ||||||
|  |               icons = { | ||||||
|  |                 active = "#7dcfff"; | ||||||
|  |                 passive = "#565f89"; | ||||||
|  |               }; | ||||||
|  |               listitems = { | ||||||
|  |                 active = "#7dcfff"; | ||||||
|  |                 passive = "#c0caf5"; | ||||||
|  |               }; | ||||||
|  |               switch = { | ||||||
|  |                 puck = "#565f89"; | ||||||
|  |                 disabled = "#565f89"; | ||||||
|  |                 enabled = "#7dcfff"; | ||||||
|  |               }; | ||||||
|  |               switch_divider = "#414868"; | ||||||
|  |               status = "#565f89"; | ||||||
|  |               text = "#c0caf5"; | ||||||
|  |               label.color = "#7dcfff"; | ||||||
|  |               border.color = "#414868"; | ||||||
|  |               background.color = "#1a1b26"; | ||||||
|  |               card.color = "#24283b"; | ||||||
|  |             }; | ||||||
|  |             volume = { | ||||||
|  |               text = "#c0caf5"; | ||||||
|  |               card.color = "#24283b"; | ||||||
|  |               label.color = "#f7768e"; | ||||||
|  |               input_slider = { | ||||||
|  |                 puck = "#414868"; | ||||||
|  |                 backgroundhover = "#414868"; | ||||||
|  |                 background = "#565f89"; | ||||||
|  |                 primary = "#f7768e"; | ||||||
|  |               }; | ||||||
|  |               audio_slider = { | ||||||
|  |                 puck = "#414868"; | ||||||
|  |                 backgroundhover = "#414868"; | ||||||
|  |                 background = "#565f89"; | ||||||
|  |                 primary = "#f7768e"; | ||||||
|  |               }; | ||||||
|  |               icons = { | ||||||
|  |                 active = "#f7768e"; | ||||||
|  |                 passive = "#565f89"; | ||||||
|  |               }; | ||||||
|  |               iconbutton = { | ||||||
|  |                 active = "#f7768e"; | ||||||
|  |                 passive = "#c0caf5"; | ||||||
|  |               }; | ||||||
|  |               listitems = { | ||||||
|  |                 active = "#f7768e"; | ||||||
|  |                 passive = "#c0caf5"; | ||||||
|  |               }; | ||||||
|  |               border.color = "#414868"; | ||||||
|  |               background.color = "#1a1b26"; | ||||||
|  |             }; | ||||||
|  |             media = { | ||||||
|  |               card.color = "#24283b"; | ||||||
|  |               slider = { | ||||||
|  |                 puck = "#565f89"; | ||||||
|  |                 backgroundhover = "#414868"; | ||||||
|  |                 background = "#565f89"; | ||||||
|  |                 primary = "#f7768e"; | ||||||
|  |               }; | ||||||
|  |               buttons = { | ||||||
|  |                 text = "#1a1b26"; | ||||||
|  |                 background = "#bb9af7"; | ||||||
|  |                 enabled = "#73daca"; | ||||||
|  |                 inactive = "#414868"; | ||||||
|  |               }; | ||||||
|  |               border.color = "#414868"; | ||||||
|  |               background.color = "#1a1b26"; | ||||||
|  |               album = "#f7768e"; | ||||||
|  |               artist = "#73daca"; | ||||||
|  |               song = "#bb9af7"; | ||||||
|  |             }; | ||||||
|  |             power = { | ||||||
|  |               border.color = "#414868"; | ||||||
|  |               buttons = { | ||||||
|  |                 sleep = { | ||||||
|  |                   icon_background = "#7dcfff"; | ||||||
|  |                   text = "#7dcfff"; | ||||||
|  |                   background = "#24283b"; | ||||||
|  |                   icon = "#1a1b26"; | ||||||
|  |                 }; | ||||||
|  |                 restart = { | ||||||
|  |                   text = "#e0af68"; | ||||||
|  |                   icon_background = "#e0af68"; | ||||||
|  |                   icon = "#1a1b26"; | ||||||
|  |                   background = "#24283b"; | ||||||
|  |                 }; | ||||||
|  |                 shutdown = { | ||||||
|  |                   icon = "#1a1b26"; | ||||||
|  |                   background = "#24283b"; | ||||||
|  |                   icon_background = "#f7768e"; | ||||||
|  |                   text = "#f7768e"; | ||||||
|  |                 }; | ||||||
|  |                 logout = { | ||||||
|  |                   icon = "#1a1b26"; | ||||||
|  |                   background = "#24283b"; | ||||||
|  |                   text = "#9ece6a"; | ||||||
|  |                   icon_background = "#9ece6a"; | ||||||
|  |                 }; | ||||||
|  |               }; | ||||||
|  |               background.color = "#1a1b26"; | ||||||
|  |               scaling = 90; | ||||||
|  |             }; | ||||||
|  |           }; | ||||||
|  |           background = "#1a1b26"; | ||||||
|  |           text = "#c0caf5"; | ||||||
|  |           border.color = "#414868"; | ||||||
|  |           popover = { | ||||||
|  |             text = "#bb9af7"; | ||||||
|  |             background = "#1a1b26"; | ||||||
|  |             border = "#1a1b26"; | ||||||
|  |           }; | ||||||
|  |           tooltip = { | ||||||
|  |             text = "#c0caf5"; | ||||||
|  |             background = "#1a1b26"; | ||||||
|  |           }; | ||||||
|  |           dropdownmenu = { | ||||||
|  |             divider = "#24283b"; | ||||||
|  |             text = "#c0caf5"; | ||||||
|  |             background = "#1a1b26"; | ||||||
|  |           }; | ||||||
|  |           slider = { | ||||||
|  |             puck = "#565f89"; | ||||||
|  |             backgroundhover = "#414868"; | ||||||
|  |             background = "#565f89"; | ||||||
|  |             primary = "#bb9af7"; | ||||||
|  |           }; | ||||||
|  |           progressbar = { | ||||||
|  |             background = "#414868"; | ||||||
|  |             foreground = "#bb9af7"; | ||||||
|  |           }; | ||||||
|  |           iconbuttons = { | ||||||
|  |             active = "#bb9af7"; | ||||||
|  |             passive = "#c0caf5"; | ||||||
|  |           }; | ||||||
|  |           buttons = { | ||||||
|  |             text = "#1a1b26"; | ||||||
|  |             disabled = "#565f89"; | ||||||
|  |             active = "#f7768e"; | ||||||
|  |             default = "#bb9af7"; | ||||||
|  |           }; | ||||||
|  |           switch = { | ||||||
|  |             puck = "#565f89"; | ||||||
|  |             disabled = "#565f89"; | ||||||
|  |             enabled = "#bb9af7"; | ||||||
|  |           }; | ||||||
|  |           icons = { | ||||||
|  |             active = "#bb9af7"; | ||||||
|  |             passive = "#414868"; | ||||||
|  |           }; | ||||||
|  |           listitems = { | ||||||
|  |             active = "#bb9af7"; | ||||||
|  |             passive = "#c0caf5"; | ||||||
|  |           }; | ||||||
|  |           label = "#bb9af7"; | ||||||
|  |           feinttext = "#414868"; | ||||||
|  |           dimtext = "#414868"; | ||||||
|  |           cards = "#24283b"; | ||||||
|  |           check_radio_button.background = "#3b4261"; | ||||||
|  |           check_radio_button.active = "#bb9af7"; | ||||||
|  |         }; | ||||||
|  |         transparent = true; | ||||||
|  |         background = "#1a1b26"; | ||||||
|  |         margin_sides = "0.0em"; | ||||||
|  |         location = "top"; | ||||||
|  |       }; | ||||||
|  |       osd = { | ||||||
|  |         monitor = 1; | ||||||
|  |         muted_zero = true; | ||||||
|  |         label = "#bb9af7"; | ||||||
|  |         icon = "#1a1b26"; | ||||||
|  |         bar_overflow_color = "#f7768e"; | ||||||
|  |         bar_empty_color = "#414868"; | ||||||
|  |         bar_color = "#bb9af7"; | ||||||
|  |         icon_container = "#bb9af7"; | ||||||
|  |         bar_container = "#1a1b26"; | ||||||
|  |       }; | ||||||
|  |       notification = { | ||||||
|  |         close_button.label = "#1a1b26"; | ||||||
|  |         close_button.background = "#f7768e"; | ||||||
|  |         labelicon = "#bb9af7"; | ||||||
|  |         text = "#c0caf5"; | ||||||
|  |         time = "#9aa5ce"; | ||||||
|  |         border = "#565f89"; | ||||||
|  |         label = "#bb9af7"; | ||||||
|  |         actions.text = "#24283b"; | ||||||
|  |         actions.background = "#bb9af7"; | ||||||
|  |         background = "#1a1b26"; | ||||||
|  |       }; | ||||||
|  |       font.size = "1.3rem"; | ||||||
|  |     }; | ||||||
|  |     notifications = { | ||||||
|  |       monitor = 1; | ||||||
|  |       active_monitor = false; | ||||||
|  |     }; | ||||||
|  |     wallpaper = { | ||||||
|  |       pywal = false; | ||||||
|  |       image = "/home/cholli/Pictures/firewatch.jpg"; | ||||||
|  |       enable = false; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   options.${namespace}.desktop.addons.hyprpanel = { | ||||||
|  |     enable = mkEnableOption "Enable HyprIdle"; | ||||||
|  |     extraSettings = mkOption { | ||||||
|  |       default = { }; | ||||||
|  |       inherit (settingsFormat) type; | ||||||
|  |       description = '' | ||||||
|  |         Additional Options to pass to hyprpanel | ||||||
|  |       ''; | ||||||
|  |       example = literalExpression '' | ||||||
|  |         { | ||||||
|  |            | ||||||
|  |         } | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  | 
 | ||||||
|  |     snowfallorg.users.${username}.home.config = { | ||||||
|  |       wayland.windowManager.hyprland.settings.exec-once = [ | ||||||
|  |         "${pkgs.hyprpanel}/bin/hyprpanel" | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     ${namespace}.home.file = { | ||||||
|  |       ".cache/ags/hyprpanel/options_test.json" = { | ||||||
|  | 
 | ||||||
|  |         # source = pkgs.formats.json.generate "options.json" settings; | ||||||
|  |         text = builtins.toJSON settings; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  | @ -1,20 +1,16 @@ | ||||||
| { | { | ||||||
|   config, |   config, | ||||||
|   inputs, |  | ||||||
|   lib, |   lib, | ||||||
|   namespace, |   namespace, | ||||||
|   pkgs, |  | ||||||
|   system, |  | ||||||
|   ... |   ... | ||||||
| }: | }: | ||||||
| let | let | ||||||
|   inherit (lib) mkIf mkEnableOption; |   inherit (lib) mkIf mkEnableOption; | ||||||
| 
 | 
 | ||||||
|   # hyprpaper-package = inputs.hyprpaper.packages.${system}.hyprpaper; |  | ||||||
| 
 |  | ||||||
|   cfg = config.${namespace}.desktop.addons.hyprpaper; |   cfg = config.${namespace}.desktop.addons.hyprpaper; | ||||||
| 
 | 
 | ||||||
|   username = config.${namespace}.user.name; |   username = config.${namespace}.user.name; | ||||||
|  |   picture-path = "/home/${username}/Pictures/firewatch.jpg"; | ||||||
| in | in | ||||||
| { | { | ||||||
|   options.${namespace}.desktop.addons.hyprpaper = { |   options.${namespace}.desktop.addons.hyprpaper = { | ||||||
|  | @ -28,13 +24,15 @@ in | ||||||
|         "Pictures/firewatch.jpg".source = ./firewatch.jpg; |         "Pictures/firewatch.jpg".source = ./firewatch.jpg; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|  |       wayland.windowManager.hyprland.settings.exec-once = [ | ||||||
|  |         ''hyprctl hyprpaper wallpaper "DP-2,${picture-path}"'' | ||||||
|  |       ]; | ||||||
|  | 
 | ||||||
|       services.hyprpaper = { |       services.hyprpaper = { | ||||||
|         enable = true; |         enable = true; | ||||||
|         settings = { |         settings = { | ||||||
|           preload = [ |           preload = [ picture-path ]; | ||||||
|             "/home/${username}/Pictures/firewatch.jpg" |           wallpaper = "DP-2,${picture-path}"; | ||||||
|           ]; |  | ||||||
|           wallpaper = "monitor DP-2, /home/${username}/Pictures/firewatch.jpg"; |  | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|  | @ -6,10 +6,17 @@ | ||||||
|   ... |   ... | ||||||
| }: | }: | ||||||
| let | let | ||||||
|  |   inherit (lib) mkIf mkEnableOption; | ||||||
|   user = config.${namespace}.user.name; |   user = config.${namespace}.user.name; | ||||||
|  | 
 | ||||||
|  |   cfg = config.${namespace}.desktop.hyprland; | ||||||
| in | in | ||||||
| { | { | ||||||
|   config = { |   options.${namespace}.desktop = { | ||||||
|  |     enable = mkEnableOption "Whether to enable desktop theming"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|     ${namespace}.home.extraOptions = { |     ${namespace}.home.extraOptions = { | ||||||
|       dconf.settings = { |       dconf.settings = { | ||||||
|         "org/gnome/desktop/interface" = { |         "org/gnome/desktop/interface" = { | ||||||
|  |  | ||||||
|  | @ -30,7 +30,7 @@ let | ||||||
|         hyprctl dispatch workspace $running |         hyprctl dispatch workspace $running | ||||||
|     else |     else | ||||||
|         # always open on w/space 4 |         # always open on w/space 4 | ||||||
|         hyprctl dispatch workspace 4 |         hyprctl dispatch workspace 9 | ||||||
|         1password& |         1password& | ||||||
|     fi |     fi | ||||||
|   ''; |   ''; | ||||||
|  | @ -47,19 +47,30 @@ in | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     environment.systemPackages = with pkgs; [ |     environment.systemPackages = with pkgs; [ | ||||||
|       polkit-kde-agent |       # Auth Agent | ||||||
|  |       hyprpolkitagent | ||||||
| 
 | 
 | ||||||
|  |       # Notification daemon | ||||||
|  |       libnotify | ||||||
|  | 
 | ||||||
|  |       # Wayland Utilities | ||||||
|       wl-clipboard |       wl-clipboard | ||||||
|       wl-screenrec |  | ||||||
|       wlr-randr |       wlr-randr | ||||||
|       grimblast |  | ||||||
|       xfce.thunar |  | ||||||
|       dunst |  | ||||||
| 
 | 
 | ||||||
|  |       # Screenshot Utility | ||||||
|  |       grimblast | ||||||
|  | 
 | ||||||
|  |       # File Manager | ||||||
|  |       xfce.thunar | ||||||
|  | 
 | ||||||
|  |       # clean sddm theme | ||||||
|       elegant-sddm |       elegant-sddm | ||||||
| 
 | 
 | ||||||
|  |       # json cli parser for bash script to focus 1password | ||||||
|       jq |       jq | ||||||
|       focus-1password |       focus-1password | ||||||
|  | 
 | ||||||
|  |       hyprpanel | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     programs = { |     programs = { | ||||||
|  | @ -79,14 +90,18 @@ in | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     ${namespace} = { |     ${namespace} = { | ||||||
|       desktop.addons = { |       desktop = { | ||||||
|         waybar = enabled; |         enable = true; | ||||||
|         rofi = { |         addons = { | ||||||
|           enable = true; |           rofi = { | ||||||
|           package = pkgs.rofi-wayland-unwrapped; |             enable = true; | ||||||
|  |             package = pkgs.rofi-wayland-unwrapped; | ||||||
|  |           }; | ||||||
|  |           hypridle = enabled; | ||||||
|  |           hyprlock = enabled; | ||||||
|  |           hyprpanel = enabled; | ||||||
|  |           hyprpaper = enabled; | ||||||
|         }; |         }; | ||||||
|         hyprlock = enabled; |  | ||||||
|         hyprpaper = enabled; |  | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|       nix.extra-substituters.${cachix-url} = { |       nix.extra-substituters.${cachix-url} = { | ||||||
|  | @ -109,20 +124,17 @@ in | ||||||
|               ]; |               ]; | ||||||
| 
 | 
 | ||||||
|               exec-once = [ |               exec-once = [ | ||||||
|                 "hyprpaper" |                 "systemctl --user start hyprpolkitagent" | ||||||
|                 "waybar" |  | ||||||
|                 "dunst" |  | ||||||
|                 "systemctl --user start plasma-polkit-agent" |  | ||||||
| 
 | 
 | ||||||
|                 "[workspace 3 silent] steam" |                 "[workspace 2 silent] steam --disable-gpu-compositing" # nvidia pls let me have nice things | ||||||
|                 "[workspace 2 silent] discord" |                 "[workspace 8 silent] discord --disable-gpu-compositing" | ||||||
|                 "[workspace 4 silent] 1password" |                 "[workspace 9 silent] 1password" | ||||||
|                 "[workspace 1 silent] zen" |                 "[workspace 1 silent] zen" | ||||||
|               ]; |               ]; | ||||||
| 
 | 
 | ||||||
|               windowrulev2 = [ |               windowrulev2 = [ | ||||||
|                 #stean is a bit wierd, since it opens in multiple phases, so just move the last window to the workspace |                 #stean is a bit wierd, since it opens in multiple phases, so just move the last window to the workspace | ||||||
|                 "workspace 3 silent, class:^(steam)$, title:^(Steam)" |                 "workspace 2 silent, class:^(steam)$, title:^(Steam)" | ||||||
| 
 | 
 | ||||||
|                 # make xwaylandvideobridge window invisible |                 # make xwaylandvideobridge window invisible | ||||||
|                 "opacity 0.0 override, class:^(xwaylandvideobridge)$" |                 "opacity 0.0 override, class:^(xwaylandvideobridge)$" | ||||||
|  |  | ||||||
							
								
								
									
										75
									
								
								modules/nixos/security/acme/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								modules/nixos/security/acme/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,75 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   namespace, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | with lib; | ||||||
|  | with lib.${namespace}; | ||||||
|  | let | ||||||
|  |   cfg = config.${namespace}.security.acme; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   options.${namespace}.security.acme = with lib.types; { | ||||||
|  |     enable = mkEnableOption "Enable sops (Default true)"; | ||||||
|  |     email = mkOpt str config.${namespace}.user.email "The email to use."; | ||||||
|  |     sopsFile = mkOption { | ||||||
|  |       type = lib.types.path; | ||||||
|  |       default = lib.snowfall.fs.get-file "secrets/secrets.yaml"; | ||||||
|  |       description = "SecretFile"; | ||||||
|  |     }; | ||||||
|  |     domainname = mkOpt str "christophhollizeck.dev" "domainname to use"; | ||||||
|  |     staging = mkOpt bool false "Use staging server for testing or not"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     sops = { | ||||||
|  |       secrets = { | ||||||
|  |         netcup_customer_number = { | ||||||
|  |           inherit (cfg) sopsFile; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         netcup_api_key = { | ||||||
|  |           inherit (cfg) sopsFile; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         netcup_api_password = { | ||||||
|  |           inherit (cfg) sopsFile; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       templates = { | ||||||
|  |         "netcup.env" = { | ||||||
|  |           content = '' | ||||||
|  |             NETCUP_CUSTOMER_NUMBER=${config.sops.placeholder.netcup_customer_number} | ||||||
|  |             NETCUP_API_KEY=${config.sops.placeholder.netcup_api_key} | ||||||
|  |             NETCUP_API_PASSWORD=${config.sops.placeholder.netcup_api_password} | ||||||
|  |             NETCUP_PROPAGATION_TIMEOUT=1200 | ||||||
|  |           ''; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     security.acme = { | ||||||
|  |       acceptTerms = true; | ||||||
|  |       defaults = { | ||||||
|  |         inherit (cfg) email; | ||||||
|  | 
 | ||||||
|  |         group = mkIf config.services.nginx.enable "nginx"; | ||||||
|  |         reloadServices = optional config.services.nginx.enable "nginx.service"; | ||||||
|  | 
 | ||||||
|  |         dnsProvider = "netcup"; | ||||||
|  |         environmentFile = config.sops.templates."netcup.env".path; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       certs."${cfg.domainname}" = { | ||||||
|  |         server = mkIf cfg.staging "https://acme-staging-v02.api.letsencrypt.org/directory"; | ||||||
|  |         dnsResolver = "1.1.1.1:53"; | ||||||
|  |         extraDomainNames = [ "*.${cfg.domainname}" ]; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  | @ -8,30 +8,38 @@ | ||||||
| with lib.${namespace}; | with lib.${namespace}; | ||||||
| let | let | ||||||
|   cfg = config.${namespace}.services.factorio-server; |   cfg = config.${namespace}.services.factorio-server; | ||||||
|   inherit (lib) mkIf mkEnableOption; |   inherit (lib) mkIf mkOption mkEnableOption; | ||||||
| in | in | ||||||
| { | { | ||||||
|   options.${namespace}.services.factorio-server = { |   options.${namespace}.services.factorio-server = { | ||||||
|     enable = mkEnableOption "Enable Factorio Headless Server"; |     enable = mkEnableOption "Enable Factorio Headless Server"; | ||||||
|  |     sopsFile = mkOption { | ||||||
|  |       type = lib.types.path; | ||||||
|  |       default = lib.snowfall.fs.get-file "secrets/secrets.yaml"; | ||||||
|  |       description = "SecretFile"; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     environment.systemPackages = with pkgs; [ factorio-headless ]; |     environment.systemPackages = [ pkgs.factorio-headless ]; | ||||||
|     sops = { |     sops = { | ||||||
|       secrets = { |       secrets = { | ||||||
|         factorio_token = { |         factorio_token = { | ||||||
|           restartUnits = [ "factorio.service" ]; |           restartUnits = [ "factorio.service" ]; | ||||||
|  |           inherit (cfg) sopsFile; | ||||||
|         }; |         }; | ||||||
|         factorio_username = { |         factorio_username = { | ||||||
|           restartUnits = [ "factorio.service" ]; |           restartUnits = [ "factorio.service" ]; | ||||||
|  |           inherit (cfg) sopsFile; | ||||||
|         }; |         }; | ||||||
|         factorio_game_password = { |         factorio_game_password = { | ||||||
|           restartUnits = [ "factorio.service" ]; |           restartUnits = [ "factorio.service" ]; | ||||||
|  |           inherit (cfg) sopsFile; | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
|       templates."extraSettingsFile.json".content = '' |       templates."extraSettingsFile.json".content = '' | ||||||
|         { |         { | ||||||
|           "name": "Alles Nix!", |           "name": "SpaceAgeHolli", | ||||||
|           "description": "Trying to run a factorio-headless-server on my nix system", |           "description": "Trying to run a factorio-headless-server on my nix system", | ||||||
|           "tags": ["vanilla"], |           "tags": ["vanilla"], | ||||||
|           "max_players": 10, |           "max_players": 10, | ||||||
|  | @ -40,7 +48,6 @@ in | ||||||
|           "autosave_slots": 5, |           "autosave_slots": 5, | ||||||
|           "ignore_player_limit_for_returning_players": true, |           "ignore_player_limit_for_returning_players": true, | ||||||
|           "username" : "${config.sops.placeholder.factorio_username}", |           "username" : "${config.sops.placeholder.factorio_username}", | ||||||
|           "admins": ["${config.sops.placeholder.factorio_username}"], |  | ||||||
|           "token": "${config.sops.placeholder.factorio_token}" |           "token": "${config.sops.placeholder.factorio_token}" | ||||||
|         } |         } | ||||||
|       ''; |       ''; | ||||||
|  | @ -53,8 +60,13 @@ in | ||||||
|       public = true; |       public = true; | ||||||
|       lan = true; |       lan = true; | ||||||
|       nonBlockingSaving = true; |       nonBlockingSaving = true; | ||||||
|       autosave-interval = 5; |       autosave-interval = 15; | ||||||
|       loadLatestSave = true; |       saveName = "SpaceAge"; | ||||||
|  |       admins = [ | ||||||
|  |         "daholli" | ||||||
|  |         "galbrain" | ||||||
|  |         "geigeabc" | ||||||
|  |       ]; | ||||||
|       extraSettingsFile = config.sops.templates."extraSettingsFile.json".path; |       extraSettingsFile = config.sops.templates."extraSettingsFile.json".path; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  | @ -13,7 +13,7 @@ let | ||||||
| in | in | ||||||
| { | { | ||||||
|   options.${namespace}.submodules.basics = with types; { |   options.${namespace}.submodules.basics = with types; { | ||||||
|     enable = mkBoolOpt false "Whether or not to enable basic configuration."; |     enable = mkEnableOption "Whether or not to enable basic configuration."; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|  | @ -29,7 +29,7 @@ in | ||||||
|       #optional |       #optional | ||||||
|       pciutils |       pciutils | ||||||
|       usbutils |       usbutils | ||||||
|       htop |       btop | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     ${namespace} = { |     ${namespace} = { | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ in | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     boot = { |     boot = { | ||||||
|       kernelPackages = pkgs.linuxPackages_6_10; |       kernelPackages = pkgs.linuxPackages_latest; | ||||||
|       loader = { |       loader = { | ||||||
|         systemd-boot.enable = true; |         systemd-boot.enable = true; | ||||||
|         efi.canTouchEfiVariables = true; |         efi.canTouchEfiVariables = true; | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ in | ||||||
|     environment.systemPackages = with pkgs; [ |     environment.systemPackages = with pkgs; [ | ||||||
|       git |       git | ||||||
|       gitAndTools.gh |       gitAndTools.gh | ||||||
|       gitbutler |       # gitbutler | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     ${namespace}.home.extraOptions = { |     ${namespace}.home.extraOptions = { | ||||||
|  |  | ||||||
|  | @ -48,6 +48,11 @@ in | ||||||
|     icon = mkOpt (nullOr package) defaultIcon "The profile picture to use for the user."; |     icon = mkOpt (nullOr package) defaultIcon "The profile picture to use for the user."; | ||||||
|     extraGroups = mkOpt (listOf str) [ ] "Groups for the user to be assigned."; |     extraGroups = mkOpt (listOf str) [ ] "Groups for the user to be assigned."; | ||||||
|     extraOptions = mkOpt attrs { } (mdDoc "Extra options passed to `users.users.<name>`."); |     extraOptions = mkOpt attrs { } (mdDoc "Extra options passed to `users.users.<name>`."); | ||||||
|  |     trustedPublicKeys = mkOption { | ||||||
|  |       default = [ ]; | ||||||
|  |       type = nullOr (listOf str); | ||||||
|  |       description = "Trusted public keys for this user for the machine"; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = { |   config = { | ||||||
|  | @ -92,6 +97,8 @@ in | ||||||
|       # system to select). |       # system to select). | ||||||
|       uid = 1000; |       uid = 1000; | ||||||
| 
 | 
 | ||||||
|  |       openssh.authorizedKeys.keys = cfg.trustedPublicKeys; | ||||||
|  | 
 | ||||||
|       extraGroups = [ "steamcmd" ] ++ cfg.extraGroups; |       extraGroups = [ "steamcmd" ] ++ cfg.extraGroups; | ||||||
|     } // cfg.extraOptions; |     } // cfg.extraOptions; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
							
								
								
									
										9
									
								
								overlays/discord/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								overlays/discord/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | ||||||
|  | { ... }: | ||||||
|  | 
 | ||||||
|  | final: prev: { | ||||||
|  |   discord = prev.discord.overrideAttrs (oldAttrs: { | ||||||
|  |     commandLineArgs = '' | ||||||
|  |       --disable-gpu-compositing | ||||||
|  |     ''; | ||||||
|  |   }); | ||||||
|  | } | ||||||
							
								
								
									
										3
									
								
								overlays/factorio-headless/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								overlays/factorio-headless/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | ||||||
|  | { channels, ... }: | ||||||
|  | 
 | ||||||
|  | final: prev: { inherit (channels.nixpkgs-latest-factorio) factorio-headless; } | ||||||
|  | @ -1,3 +1,3 @@ | ||||||
| { channels, ... }: | { channels, ... }: | ||||||
| 
 | 
 | ||||||
| final: prev: { inherit (channels.unstable) pobfrontend; } | final: prev: { inherit (channels.nixpkgs-unstable) pobfrontend; } | ||||||
|  |  | ||||||
							
								
								
									
										9
									
								
								overlays/steam/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								overlays/steam/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | ||||||
|  | { ... }: | ||||||
|  | 
 | ||||||
|  | final: prev: { | ||||||
|  |   steam = prev.steam.overrideAttrs (oldAttrs: { | ||||||
|  |     commandLineArgs = '' | ||||||
|  |       --disable-gpu-compositing | ||||||
|  |     ''; | ||||||
|  |   }); | ||||||
|  | } | ||||||
							
								
								
									
										9
									
								
								overlays/teams-for-linux/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								overlays/teams-for-linux/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | ||||||
|  | { ... }: | ||||||
|  | 
 | ||||||
|  | final: prev: { | ||||||
|  |   teams-for-linux = prev.teams-for-linux.overrideAttrs (oldAttrs: { | ||||||
|  |     commandLineArgs = '' | ||||||
|  |       --disable-gpu-compositing | ||||||
|  |     ''; | ||||||
|  |   }); | ||||||
|  | } | ||||||
							
								
								
									
										30
									
								
								secrets/secrets-loptland.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								secrets/secrets-loptland.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | ||||||
|  | #ENC[AES256_GCM,data:Cgp+gOU81+rvdlY=,iv:8DxJxnCslDoEu0bxtlTjmNiAUCdiAV/8VYKTb4yqQ50=,tag:ZTkK7WCOBh1It6GuKPUXdg==,type:comment] | ||||||
|  | factorio_username: ENC[AES256_GCM,data:egV5kXtAiw==,iv:Hay0PC2yol5FAJGcWxLkxzNdwpD1V4UfDDnkhsjvjVQ=,tag:QBDS6eAeOswQoHBoi4Gj6A==,type:str] | ||||||
|  | factorio_token: ENC[AES256_GCM,data:whruEJQCNIqqfMA0A3yQdwwrzpIJBt815Lvex4Au,iv:hh3zZt+UxV9ltSHIAjpTRwtDvPgPU5APrB/1bXtKUkE=,tag:AgUmBYWp+Oyxm8O7yD8vlA==,type:str] | ||||||
|  | factorio_game_password: ENC[AES256_GCM,data:Gu/p0+Sbd6Y=,iv:6AB1T3JdleiUnusU7hw/0wOFNSBsAsBgP2yD9FB7zXk=,tag:DMgD4csthynuBon+KNZtOw==,type:str] | ||||||
|  | #ENC[AES256_GCM,data:15i2BBxM4iM=,iv:JV6Lsk8jUZl/eIJWkH/w5I2NraB9J9+0ggsENBGgbdI=,tag:HDwGheUv7dFIztQoJBjGmQ==,type:comment] | ||||||
|  | forgejo_db_password: ENC[AES256_GCM,data:CFsvko1AXRymDBC6WiOBs98rvFM=,iv:Wemhu8URxA6HsWQyYcPSwJzuMP4myrDC3rU3GEDVt7c=,tag:6wcNlDFVdnjez8hzi4E2cw==,type:str] | ||||||
|  | #ENC[AES256_GCM,data:nQnLBl7v,iv:HORr/Uvw4eUXfW5uS6rWr+6FkFF9bTNpMYGaRpVITRY=,tag:/r4n/xpqp7EPecGxDj4N+w==,type:comment] | ||||||
|  | netcup_customer_number: ENC[AES256_GCM,data:pRooJa3O,iv:0U/ONcWa2eqcsT1UpgXmLpAvJndaU8zln2g1HMbBQYE=,tag:+pu8EBl/dnm6DoLAtrjZBQ==,type:str] | ||||||
|  | netcup_api_key: ENC[AES256_GCM,data:nlkDz1VV2NIXxv/tIROWDHN9DLI0lVq9n9l2FlDwt+3H4G4gg6yCeZjGtR+pTCNfwio=,iv:x8HLL10ww52UJDkz7Yi02KBg7jbuLFHAlG0iMYDd8hk=,tag:pcuka4/Hu/QFIwS0b8GlxQ==,type:str] | ||||||
|  | netcup_api_password: ENC[AES256_GCM,data:k2mdQp57x5ZTypRCHbVlq1fembJ0uj5D0rb72K5rac43p888y3TFyiYVuDTosxR66mo=,iv:0OhtKWD/LWeV5ZWN9fbPozebSxvaFRdSn1AkX97ffAM=,tag:uY6A4jBL/9mtGy7++Yvn0A==,type:str] | ||||||
|  | sops: | ||||||
|  |     kms: [] | ||||||
|  |     gcp_kms: [] | ||||||
|  |     azure_kv: [] | ||||||
|  |     hc_vault: [] | ||||||
|  |     age: | ||||||
|  |         - recipient: age1amdd4hu6k0czf3mtlhd03yj3yzkdaynl7q5fdlqmjzpe9pwgxfjs3j0c85 | ||||||
|  |           enc: | | ||||||
|  |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|  |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3NFlTd2hOTHBtUDhuT0lF | ||||||
|  |             amtLclY2ZTN0SStZQjFSNkZUd1RmMkdJZ0dJCnB2WU04dk41Qk45aGphMW9GQVJ4 | ||||||
|  |             b2VWQVlOVFFLaGJWaU9FVU5ZUWtlRncKLS0tIGVPYW5DQnJMeW1qdWtINDNlQWFo | ||||||
|  |             NmhrdXhpbVlmUFNsT1VaQjZyYkZkdzgKhL2BKXfPWNWUbFavpmtBQpnNEm/x0xH6 | ||||||
|  |             NsjiV05AcrqPmGjj2kjvTv4ULPSoHiHiC5McUMfFTYIrCJgNvUbmMg== | ||||||
|  |             -----END AGE ENCRYPTED FILE----- | ||||||
|  |     lastmodified: "2024-11-07T14:40:34Z" | ||||||
|  |     mac: ENC[AES256_GCM,data:uk2AeOA9pnhekuofIjXavCGy9ZaO0ObprkvnGhJg5lPr/hyT9l7YcZtMQ7wckKDLS03I1hCAcNg0w/EmSUeU2+EHLb6Z1IUj3l0HBUPtPIJwJZifkrzp9iQwGwlK+i6nfREEgPGeuNMj/rnD67MECO4NRHTzGBzH7ZImoDpu0Us=,iv:ss8Q7i75UOQDMJfw4dQCT0qxPUGwfHizX0c/TUej+vc=,tag:iufeO6sfaToNcJg6E8tuxA==,type:str] | ||||||
|  |     pgp: [] | ||||||
|  |     unencrypted_suffix: _unencrypted | ||||||
|  |     version: 3.9.1 | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| #ENC[AES256_GCM,data:Y75QxOB7YrOA,iv:mZ2f288IG/pmlQRtCqdcz03dDTYMnnj50Vsk/BwTJ+c=,tag:gPHZgq091G4LYMan9R6z1w==,type:comment] | #ENC[AES256_GCM,data:Y75QxOB7YrOA,iv:mZ2f288IG/pmlQRtCqdcz03dDTYMnnj50Vsk/BwTJ+c=,tag:gPHZgq091G4LYMan9R6z1w==,type:comment] | ||||||
| factorio_username: ENC[AES256_GCM,data:rI7vF0XlaQ==,iv:+d5dD+nawphw+g8zavFXUr87bewTL1d+fuFnYKuYJKc=,tag:B8/6I7zi0b6xo8TFsY35Ug==,type:str] | factorio_username: ENC[AES256_GCM,data:rI7vF0XlaQ==,iv:+d5dD+nawphw+g8zavFXUr87bewTL1d+fuFnYKuYJKc=,tag:B8/6I7zi0b6xo8TFsY35Ug==,type:str] | ||||||
| factorio_token: ENC[AES256_GCM,data:0JOQv4UGiz2j2KPEoNm2IuE3qt8XfKuVEBWJ2+fF,iv:EUc8vhrB5NcgFKO7xTCxG2PzUuFCJFIl1KB90NqCOXw=,tag:rCilwxD8sw+Ql5HzvcUEJQ==,type:str] | factorio_token: ENC[AES256_GCM,data:0JOQv4UGiz2j2KPEoNm2IuE3qt8XfKuVEBWJ2+fF,iv:EUc8vhrB5NcgFKO7xTCxG2PzUuFCJFIl1KB90NqCOXw=,tag:rCilwxD8sw+Ql5HzvcUEJQ==,type:str] | ||||||
| factorio_game_password: ENC[AES256_GCM,data:wwmltZzhYlQ=,iv:2LPugIqfPLJ5PbdrVfI36+76pAVp5Rano4T6968OsKs=,tag:kRpWL4wYnm/X4SHYypzVyA==,type:str] | factorio_game_password: ENC[AES256_GCM,data:xMpORLbom/w=,iv:ukkPL10vAcQKGGpjqKM58uIfJ3sRLhxUkFyf0JXJkvc=,tag:jw52z23utK7eHM9e2zZvig==,type:str] | ||||||
| nixpkgs_review_auth: ENC[AES256_GCM,data:4zd7nThKhMMQxuxVdGZFUyJJ3rDBC29h9ydGmjKBEFy9Lz5X9TCf3w==,iv:u3aasLXSqer50RZDvvwGr0mwEoyywWaMr6q9VhPZieg=,tag:/rfQ4LHfJsvFYH+4hBe4LQ==,type:str] | nixpkgs_review_auth: ENC[AES256_GCM,data:4zd7nThKhMMQxuxVdGZFUyJJ3rDBC29h9ydGmjKBEFy9Lz5X9TCf3w==,iv:u3aasLXSqer50RZDvvwGr0mwEoyywWaMr6q9VhPZieg=,tag:/rfQ4LHfJsvFYH+4hBe4LQ==,type:str] | ||||||
| sops: | sops: | ||||||
|     kms: [] |     kms: [] | ||||||
|  | @ -18,8 +18,8 @@ sops: | ||||||
|             TzdjVjVtWmxNNm96WHhXSGM4WjErMkEKoGtyn6M91h+ye8U/ltOuOQ74RUo/2R37 |             TzdjVjVtWmxNNm96WHhXSGM4WjErMkEKoGtyn6M91h+ye8U/ltOuOQ74RUo/2R37 | ||||||
|             l5vR47FUyzilUliIK2PDUMXM/S3Yk3Zi6g3XL8OPd53X5I1UYUJmRw== |             l5vR47FUyzilUliIK2PDUMXM/S3Yk3Zi6g3XL8OPd53X5I1UYUJmRw== | ||||||
|             -----END AGE ENCRYPTED FILE----- |             -----END AGE ENCRYPTED FILE----- | ||||||
|     lastmodified: "2024-09-06T19:21:22Z" |     lastmodified: "2024-10-22T00:06:22Z" | ||||||
|     mac: ENC[AES256_GCM,data:xgRgCRNtsoa3h7ss9uUyOVmGWoQqZ8+vSk0sNkhOeev1tB9qesTnkqNfRkilRyZPNen5xTV8iupvlB4wLVjODGDLueaimnOjWxrk8urSLPEbCzjLUsWuWiVANIkkyGWn0KH4mxr4pR0lt+Yy2JRKuzKGPYKYHWwnCg1saVCC2VE=,iv:iu86TvF8ur8RALGkJTgam35kJ4QRx6ruMBnj7o99A8k=,tag:AY/hCByZd1SNVIrWZ4qp4A==,type:str] |     mac: ENC[AES256_GCM,data:NFP/q1AwapApQ7osBUIIQRfwuD5CbZphZkxLo1BfnUG7q/TxLbUm7F1uDaHFx55ox7FrvBzm11k/A8njcOQtpmfnBGhwF+X6VUF+CvsnTStRk/4v1TiybFFODSPKVmsZvxKJS1cRnTmptBvDoDfztIvqk4m9XvuVZlYvK5VXQVA=,iv:z61xn9BYygcD5t/z0ZO7yUSS+yFOUNvmcSSx+c1RgAQ=,tag:u1/P68g2jemJhOloZHB7yA==,type:str] | ||||||
|     pgp: [] |     pgp: [] | ||||||
|     unencrypted_suffix: _unencrypted |     unencrypted_suffix: _unencrypted | ||||||
|     version: 3.9.0 |     version: 3.9.1 | ||||||
|  |  | ||||||
							
								
								
									
										122
									
								
								systems/x86_64-linux/loptland/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								systems/x86_64-linux/loptland/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,122 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   namespace, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | let | ||||||
|  |   inherit (lib) mkIf; | ||||||
|  |   inherit (lib.${namespace}) enabled; | ||||||
|  | 
 | ||||||
|  |   domainName = "christophhollizeck.dev"; | ||||||
|  |   forgejoPort = 3000; | ||||||
|  | 
 | ||||||
|  |   cfg.enableAcme = true; | ||||||
|  | 
 | ||||||
|  |   sopsFile = lib.snowfall.fs.get-file "secrets/secrets-loptland.yaml"; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   imports = [ ./hardware.nix ]; | ||||||
|  | 
 | ||||||
|  |   environment.systemPackages = [ ]; | ||||||
|  | 
 | ||||||
|  |   sops = { | ||||||
|  |     secrets = { | ||||||
|  |       forgejo_db_password = { | ||||||
|  |         inherit sopsFile; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   services.openssh = { | ||||||
|  |     enable = true; | ||||||
|  |     settings = { | ||||||
|  |       PasswordAuthentication = false; | ||||||
|  |       KbdInteractiveAuthentication = false; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   services.nginx = { | ||||||
|  |     enable = true; | ||||||
|  |     recommendedProxySettings = true; | ||||||
|  | 
 | ||||||
|  |     virtualHosts = { | ||||||
|  |       "git.${domainName}" = { | ||||||
|  |         forceSSL = cfg.enableAcme; | ||||||
|  |         useACMEHost = mkIf cfg.enableAcme domainName; | ||||||
|  | 
 | ||||||
|  |         locations."/" = { | ||||||
|  |           proxyPass = "http://localhost:${toString forgejoPort}/"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       "${domainName}" = { | ||||||
|  |         forceSSL = cfg.enableAcme; | ||||||
|  |         useACMEHost = mkIf cfg.enableAcme domainName; | ||||||
|  | 
 | ||||||
|  |         locations."/" = { | ||||||
|  |           return = "404"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   services.forgejo = { | ||||||
|  |     enable = true; | ||||||
|  |     database.type = "postgres"; | ||||||
|  |     lfs.enable = true; | ||||||
|  |     database = { | ||||||
|  |       passwordFile = config.sops.secrets.forgejo_db_password.path; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     settings = { | ||||||
|  |       server = { | ||||||
|  |         DOMAIN = "git.${domainName}"; | ||||||
|  |         ROOT_URL = "http://git.${domainName}:${toString forgejoPort}"; | ||||||
|  |         HTTP_PORT = forgejoPort; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       service.DISABLE_REGISTRATION = true; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   networking.firewall.allowedTCPPorts = [ | ||||||
|  |     forgejoPort | ||||||
|  |     80 | ||||||
|  |     443 | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|  |   ${namespace} = { | ||||||
|  |     submodules = { | ||||||
|  |       basics = enabled; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     services = { | ||||||
|  |       factorio-server = { | ||||||
|  |         enable = true; | ||||||
|  |         inherit sopsFile; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     security = { | ||||||
|  |       acme = { | ||||||
|  |         enable = cfg.enableAcme; | ||||||
|  |         inherit sopsFile; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     user.trustedPublicKeys = [ | ||||||
|  |       "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHFrDiO5+vMfD5MimkzN32iw3MnSMLZ0mHvOrHVVmLD0" | ||||||
|  |       "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII4Pr7p0jizrvIl0UhcvrmL5SHRQQQWIcHLAnRFyUZS6" | ||||||
|  |     ]; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   snowfallorg.users.${config.${namespace}.user.name}.home.config = { | ||||||
|  |     programs.fish.shellInit = '' | ||||||
|  |       eval $(op signin) | ||||||
|  |     ''; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   system.stateVersion = "24.11"; | ||||||
|  | } | ||||||
							
								
								
									
										42
									
								
								systems/x86_64-linux/loptland/hardware.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								systems/x86_64-linux/loptland/hardware.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,42 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   modulesPath, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | 
 | ||||||
|  | { | ||||||
|  |   imports = [ | ||||||
|  |     (modulesPath + "/profiles/qemu-guest.nix") | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|  |   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; | ||||||
|  | } | ||||||
|  | @ -5,7 +5,7 @@ | ||||||
|   ... |   ... | ||||||
| }: | }: | ||||||
| let | let | ||||||
|   inherit (lib.${namespace}) enabled; |   inherit (lib.${namespace}) enabled disabled; | ||||||
| in | in | ||||||
| { | { | ||||||
|   imports = [ ./hardware.nix ]; |   imports = [ ./hardware.nix ]; | ||||||
|  | @ -21,6 +21,10 @@ in | ||||||
| 
 | 
 | ||||||
|   virtualisation.waydroid = enabled; |   virtualisation.waydroid = enabled; | ||||||
| 
 | 
 | ||||||
|  |   programs.ssh.extraConfig = '' | ||||||
|  |     AddressFamily inet | ||||||
|  |   ''; | ||||||
|  | 
 | ||||||
|   ${namespace} = { |   ${namespace} = { | ||||||
|     archetypes = { |     archetypes = { | ||||||
|       gaming.enable = true; |       gaming.enable = true; | ||||||
|  | @ -57,35 +61,32 @@ in | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         exec-once = [ |         exec-once = [ | ||||||
|           "hyprctl dispatch moveworkspacetomonitor 4 HDMI-A-1" |  | ||||||
|           "xrandr --output DP-2 --primary" |           "xrandr --output DP-2 --primary" | ||||||
|           "[workspace 1 silent] obsidian --disabled-gpu" |           "[workspace 1 silent] obsidian --disabled-gpu" | ||||||
|           "[workspace 4 silent] git-butler" |           "[workspace 9 silent] git-butler" | ||||||
|         ]; |         ]; | ||||||
| 
 | 
 | ||||||
|         workspace = [ |         workspace = [ | ||||||
|           "1, monitor:DP-2" |           "1, monitor:DP-2" | ||||||
|           "2, monitor:HDMI-A-1" |           "2, monitor:DP-2" | ||||||
|           "3, monitor:DP-2" |           "3, monitor:DP-2" | ||||||
|           "4, monitor:HDMI-A-1" |           "4, monitor:DP-2" | ||||||
|  |           "8, monitor:HDMI-A-1" | ||||||
|  |           "9, monitor:HDMI-A-1" | ||||||
|         ]; |         ]; | ||||||
| 
 | 
 | ||||||
|         windowrulev2 = [ |         windowrulev2 = [ | ||||||
|           "workspace 2 silent, class:^(steam)$, title:^(Friends List)" |           "workspace 8 silent, class:^(steam)$, title:^(Friends List)" | ||||||
|           "workspace 2 silent, class:^(discord)$, title:^(Discord)" |           "workspace 8 silent, class:^(discord)$, title:^(Discord)" | ||||||
|         ]; |         ]; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     services = { |     services = { | ||||||
|       factorio-server = enabled; |       factorio-server = disabled; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     system = { |     system = { | ||||||
|       autoUpgrade = { |  | ||||||
|         enable = true; |  | ||||||
|         time = "10:00"; |  | ||||||
|       }; |  | ||||||
|       hardware = { |       hardware = { | ||||||
|         bluetooth = enabled; |         bluetooth = enabled; | ||||||
|         gpu.nvidia = enabled; |         gpu.nvidia = enabled; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue