Compare commits
	
		
			No commits in common. "2bd027e333944e66fe3ec5a023e65d25d96f8b4b" and "8f3c53dee5c0ec811c4837f813b6f93cea6fdd9c" have entirely different histories.
		
	
	
		
			2bd027e333
			...
			8f3c53dee5
		
	
		
					 26 changed files with 287 additions and 1426 deletions
				
			
		
							
								
								
									
										10
									
								
								.sops.yaml
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								.sops.yaml
									
										
									
									
									
								
							|  | @ -5,13 +5,3 @@ 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,24 +1,5 @@ | ||||||
| { | { | ||||||
|   "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": [ | ||||||
|  | @ -39,11 +20,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730968822, |         "lastModified": 1728902391, | ||||||
|         "narHash": "sha256-NocDjINsh6ismkhb0Xr6xPRksmhuB2WGf8ZmXMhxu7Y=", |         "narHash": "sha256-44bnoY0nAvbBQ/lVjmn511yL39Sv7SknV0BDxn34P3Q=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "aquamarine", |         "repo": "aquamarine", | ||||||
|         "rev": "a49bc3583ff223f426cb3526fdaa4bcaa247ec14", |         "rev": "9874e08eec85b5542ca22494e127b0cdce46b786", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -53,12 +34,18 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "crane": { |     "crane": { | ||||||
|  |       "inputs": { | ||||||
|  |         "nixpkgs": [ | ||||||
|  |           "helix", | ||||||
|  |           "nixpkgs" | ||||||
|  |         ] | ||||||
|  |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1727974419, |         "lastModified": 1709610799, | ||||||
|         "narHash": "sha256-WD0//20h+2/yPGkO88d2nYbb23WMWYvnRyDQ9Dx4UHg=", |         "narHash": "sha256-5jfLQx0U9hXbi2skYMGodDJkIgffrjIOgMRjZqms2QE=", | ||||||
|         "owner": "ipetkov", |         "owner": "ipetkov", | ||||||
|         "repo": "crane", |         "repo": "crane", | ||||||
|         "rev": "37e4f9f0976cb9281cd3f0c70081e5e0ecaee93f", |         "rev": "81c393c776d5379c030607866afef6406ca1be57", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -75,11 +62,11 @@ | ||||||
|         "rust-analyzer-src": "rust-analyzer-src" |         "rust-analyzer-src": "rust-analyzer-src" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730961036, |         "lastModified": 1728973961, | ||||||
|         "narHash": "sha256-nkho9Dq4WzyF4xr83UdxrlDS5Sm7ZKkPaqGVupLOpOI=", |         "narHash": "sha256-Jkqaw9O7WXTf5SHrK7xr9HpVU/mEPVg0Sp6s3AENC90=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "fenix", |         "repo": "fenix", | ||||||
|         "rev": "9bf50cb857db8dba15528f3905e271d948cbff06", |         "rev": "d6a9ff4d1e60c347a23bc96ccdb058d37a810541", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -192,11 +179,11 @@ | ||||||
|         "systems": "systems" |         "systems": "systems" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1726560853, |         "lastModified": 1709126324, | ||||||
|         "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", |         "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", | ||||||
|         "owner": "numtide", |         "owner": "numtide", | ||||||
|         "repo": "flake-utils", |         "repo": "flake-utils", | ||||||
|         "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", |         "rev": "d465f4819400de7c8d874d50b982301f28a84605", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -245,7 +232,7 @@ | ||||||
|     }, |     }, | ||||||
|     "flake-utils_2": { |     "flake-utils_2": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "systems": "systems_5" |         "systems": "systems_4" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1710146030, |         "lastModified": 1710146030, | ||||||
|  | @ -263,7 +250,7 @@ | ||||||
|     }, |     }, | ||||||
|     "flake-utils_3": { |     "flake-utils_3": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "systems": "systems_6" |         "systems": "systems_5" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1726560853, |         "lastModified": 1726560853, | ||||||
|  | @ -296,7 +283,7 @@ | ||||||
|     }, |     }, | ||||||
|     "flake-utils_5": { |     "flake-utils_5": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "systems": "systems_7" |         "systems": "systems_6" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1694529238, |         "lastModified": 1694529238, | ||||||
|  | @ -315,7 +302,7 @@ | ||||||
|     "gen-luarc": { |     "gen-luarc": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "flake-parts": "flake-parts", |         "flake-parts": "flake-parts", | ||||||
|         "nixpkgs": "nixpkgs_5" |         "nixpkgs": "nixpkgs_3" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1718922730, |         "lastModified": 1718922730, | ||||||
|  | @ -379,11 +366,11 @@ | ||||||
|         "rust-overlay": "rust-overlay" |         "rust-overlay": "rust-overlay" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730790589, |         "lastModified": 1729331287, | ||||||
|         "narHash": "sha256-xJ6bQ4VmdTB7A+dMbmOMaZ8a6erB6rkZkB+yzqD7gd4=", |         "narHash": "sha256-CiQsoNEOGHkSfG/0JJMegHfwXUAI0PwAIVj3i3FmGao=", | ||||||
|         "owner": "helix-editor", |         "owner": "helix-editor", | ||||||
|         "repo": "helix", |         "repo": "helix", | ||||||
|         "rev": "b53dafe326d51b7f64a1c52379e3d4150cd2991e", |         "rev": "be2884d80061493ab1999d73ffa51dfb4f59639d", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -399,11 +386,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730837930, |         "lastModified": 1729321331, | ||||||
|         "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=", |         "narHash": "sha256-KVyQq+ez/oB30/WbdNgVD8g/bda34z8NiU187QKQb74=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "rev": "2f607e07f3ac7e53541120536708e824acccfaa8", |         "rev": "122f70545b29ccb922e655b08acfe05bfb44ec68", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -420,11 +407,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730065367, |         "lastModified": 1729122023, | ||||||
|         "narHash": "sha256-XIsgB/tgaenHorewWrfU2gkDsbkMfPA87Z/LXjeKM7Y=", |         "narHash": "sha256-OJNfAveVogmpSIJ7V3eCSWVGvmWOVQfMQTfOpK163HQ=", | ||||||
|         "owner": "outfoxxed", |         "owner": "outfoxxed", | ||||||
|         "repo": "hy3", |         "repo": "hy3", | ||||||
|         "rev": "4c79361db9c065886c163d1cf873889e1e641e44", |         "rev": "29293bf7d509cd18e25a59e15841538fcdef580a", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -476,11 +463,11 @@ | ||||||
|         "xdph": "xdph" |         "xdph": "xdph" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730969692, |         "lastModified": 1729353802, | ||||||
|         "narHash": "sha256-yHY98IWTLDz57TrseUxdh5QnpngcNCjNXTJ2XCeNhtk=", |         "narHash": "sha256-6OkHeoC3Iva55uVd7MRKS7RLvln8Ma61H9xpcZtU2eY=", | ||||||
|         "ref": "refs/heads/main", |         "ref": "refs/heads/main", | ||||||
|         "rev": "e58e97b0a38b8ccc87a4304c9e4e2b37c9966875", |         "rev": "ce3ba798df6bca5be1da4396644a9ef08a2acab4", | ||||||
|         "revCount": 5425, |         "revCount": 5358, | ||||||
|         "submodules": true, |         "submodules": true, | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://github.com/hyprwm/Hyprland" |         "url": "https://github.com/hyprwm/Hyprland" | ||||||
|  | @ -508,11 +495,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730755630, |         "lastModified": 1728383680, | ||||||
|         "narHash": "sha256-IA5U8lHx/lnHwbx25dpPpeLbaALqNNjalYCf19tIoj0=", |         "narHash": "sha256-/SeOrMuPEOjngI+MBlzqxQ/sJxkJFIYoef+wJ/PmX2w=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "hyprland-plugins", |         "repo": "hyprland-plugins", | ||||||
|         "rev": "44859f877739c05d031fcab4a2991ec004fa9bc4", |         "rev": "d05eb1ffba2ebffb5b4e1b407f134a4dcb411a88", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -612,11 +599,11 @@ | ||||||
|         "systems": "systems_3" |         "systems": "systems_3" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730911842, |         "lastModified": 1729175038, | ||||||
|         "narHash": "sha256-stAVRv13iACAIJ6mheJOwZXWD24YDupyshaUDovVNi4=", |         "narHash": "sha256-4eTSbHMPUgap+63YW2IJreM//HL/meaGR0r5IOonH9g=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "hyprlock", |         "repo": "hyprlock", | ||||||
|         "rev": "4fc133c96fa1ad2968cad44f8e9e9e923cd0381a", |         "rev": "b8080862869af28bafdafb512682d414d9de063a", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -625,25 +612,6 @@ | ||||||
|         "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": [ | ||||||
|  | @ -656,11 +624,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730968903, |         "lastModified": 1728941256, | ||||||
|         "narHash": "sha256-zFvzLXcSm0Ia4XI1SE4FQ9KE63hlGrRWhLtwMolWuR8=", |         "narHash": "sha256-WRypmcZ2Bw94lLmcmxYokVOHPJSZ7T06V49QZ4tkZeQ=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "hyprutils", |         "repo": "hyprutils", | ||||||
|         "rev": "3ce0cde8709cdacbfba471f8e828433b58a561e9", |         "rev": "fd4be8b9ca932f7384e454bcd923c5451ef2aa85", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -744,7 +712,7 @@ | ||||||
|     "nix-ld": { |     "nix-ld": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|           "nixpkgs-unstable" |           "unstable" | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|  | @ -763,11 +731,11 @@ | ||||||
|     }, |     }, | ||||||
|     "nixos-hardware": { |     "nixos-hardware": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730919458, |         "lastModified": 1729333370, | ||||||
|         "narHash": "sha256-yMO0T0QJlmT/x4HEyvrCyigGrdYfIXX3e5gWqB64wLg=", |         "narHash": "sha256-NU+tYe3QWzDNpB8RagpqR3hNQXn4BNuBd7ZGosMHLL8=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixos-hardware", |         "repo": "nixos-hardware", | ||||||
|         "rev": "e1cc1f6483393634aee94514186d21a4871e78d7", |         "rev": "38279034170b1e2929b2be33bdaedbf14a57bfeb", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -785,11 +753,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730453870, |         "lastModified": 1729300178, | ||||||
|         "narHash": "sha256-d+kIgz4BvTXb7emjSFV3zjNydGmLUmuluQjdBb51R9o=", |         "narHash": "sha256-mkAPu2o5u7F/glAAfBzDji726iL1u2pm2fyN1SPWRQk=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "NixOS-WSL", |         "repo": "NixOS-WSL", | ||||||
|         "rev": "adb6bc4b661a43328752b4575be4968a4990c033", |         "rev": "42c23a6d5a2a1cbfd3fd137a7ff3d47c6d718033", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -800,11 +768,11 @@ | ||||||
|     }, |     }, | ||||||
|     "nixpkgs": { |     "nixpkgs": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730785428, |         "lastModified": 1728888510, | ||||||
|         "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", |         "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", |         "rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -814,22 +782,6 @@ | ||||||
|         "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, | ||||||
|  | @ -842,29 +794,13 @@ | ||||||
|         "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": 1730741070, |         "lastModified": 1720386169, | ||||||
|         "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", |         "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", |         "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -876,11 +812,11 @@ | ||||||
|     }, |     }, | ||||||
|     "nixpkgs-stable_2": { |     "nixpkgs-stable_2": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730602179, |         "lastModified": 1728156290, | ||||||
|         "narHash": "sha256-efgLzQAWSzJuCLiCaQUCDu4NudNlHdg2NzGLX5GYaEY=", |         "narHash": "sha256-uogSvuAp+1BYtdu6UWuObjHqSbBohpyARXDWqgI12Ss=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "3c2f1c4ca372622cb2f9de8016c9a0b1cbd0f37c", |         "rev": "17ae88b569bb15590549ff478bab6494dde4a907", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -890,22 +826,6 @@ | ||||||
|         "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, | ||||||
|  | @ -923,38 +843,6 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "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=", | ||||||
|  | @ -970,13 +858,13 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nixpkgs_6": { |     "nixpkgs_4": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730785428, |         "lastModified": 1729256560, | ||||||
|         "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", |         "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", |         "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -986,13 +874,13 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nixpkgs_7": { |     "nixpkgs_5": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730272153, |         "lastModified": 1728093190, | ||||||
|         "narHash": "sha256-B5WRZYsRlJgwVHIV6DvidFN7VX7Fg9uuwkRW9Ha8z+w=", |         "narHash": "sha256-CAZF2NRuHmqTtRTNAruWpHA43Gg2UvuCNEIzabP0l6M=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53", |         "rev": "e2f08f4d8b3ecb5cf5c9fd9cb2d53bb3c71807da", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1002,13 +890,13 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nixpkgs_8": { |     "nixpkgs_6": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730200266, |         "lastModified": 1729256560, | ||||||
|         "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=", |         "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd", |         "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1029,11 +917,11 @@ | ||||||
|         "nixpkgs-stable": "nixpkgs-stable" |         "nixpkgs-stable": "nixpkgs-stable" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730814269, |         "lastModified": 1728778939, | ||||||
|         "narHash": "sha256-fWPHyhYE6xvMI1eGY3pwBTq85wcy1YXqdzTZF+06nOg=", |         "narHash": "sha256-WybK5E3hpGxtCYtBwpRj1E9JoiVxe+8kX83snTNaFHE=", | ||||||
|         "owner": "cachix", |         "owner": "cachix", | ||||||
|         "repo": "git-hooks.nix", |         "repo": "git-hooks.nix", | ||||||
|         "rev": "d70155fdc00df4628446352fc58adc640cd705c2", |         "rev": "ff68f91754be6f3427e4986d7949e6273659be1d", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1052,29 +940,26 @@ | ||||||
|         "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_6", |         "nixpkgs": "nixpkgs_4", | ||||||
|         "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": 1730749868, |         "lastModified": 1728921748, | ||||||
|         "narHash": "sha256-b8UMpLh61z6T4J1NObustAuFGoJiAKBTaPTrEf3Amts=", |         "narHash": "sha256-BOCZ5osPOMh2BPHnkK4sVdTGj7sn47rBn1nxjrzWe5U=", | ||||||
|         "owner": "rust-lang", |         "owner": "rust-lang", | ||||||
|         "repo": "rust-analyzer", |         "repo": "rust-analyzer", | ||||||
|         "rev": "b51f9bc736dc0472481a47d7c05de2901323e543", |         "rev": "0319586ef2a2636f6d6b891690b7ebebf4337c85", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1086,17 +971,21 @@ | ||||||
|     }, |     }, | ||||||
|     "rust-overlay": { |     "rust-overlay": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|  |         "flake-utils": [ | ||||||
|  |           "helix", | ||||||
|  |           "flake-utils" | ||||||
|  |         ], | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|           "helix", |           "helix", | ||||||
|           "nixpkgs" |           "nixpkgs" | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1728268235, |         "lastModified": 1709604635, | ||||||
|         "narHash": "sha256-lJMFnMO4maJuNO6PQ5fZesrTmglze3UFTTBuKGwR1Nw=", |         "narHash": "sha256-le4fwmWmjGRYWwkho0Gr7mnnZndOOe4XGbLw68OvF40=", | ||||||
|         "owner": "oxalica", |         "owner": "oxalica", | ||||||
|         "repo": "rust-overlay", |         "repo": "rust-overlay", | ||||||
|         "rev": "25685cc2c7054efc31351c172ae77b21814f2d42", |         "rev": "e86c0fb5d3a22a5f30d7f64ecad88643fe26449d", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1109,7 +998,7 @@ | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "flake-compat": "flake-compat_3", |         "flake-compat": "flake-compat_3", | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|           "nixpkgs-unstable" |           "unstable" | ||||||
|         ], |         ], | ||||||
|         "snowfall-lib": "snowfall-lib" |         "snowfall-lib": "snowfall-lib" | ||||||
|       }, |       }, | ||||||
|  | @ -1160,11 +1049,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730136121, |         "lastModified": 1719005984, | ||||||
|         "narHash": "sha256-tfVayj13Zw+zzOKrmJhnvBod7Hdb9ixBR6/4GUlyMA0=", |         "narHash": "sha256-mpFl3Jv4fKnn+5znYXG6SsBjfXHJdRG5FEqNSPx0GLA=", | ||||||
|         "owner": "snowfallorg", |         "owner": "snowfallorg", | ||||||
|         "repo": "lib", |         "repo": "lib", | ||||||
|         "rev": "dd348182c1a010993e68004eada86cf0341fe2c4", |         "rev": "c6238c83de101729c5de3a29586ba166a9a65622", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1175,15 +1064,15 @@ | ||||||
|     }, |     }, | ||||||
|     "sops-nix": { |     "sops-nix": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": "nixpkgs_7", |         "nixpkgs": "nixpkgs_5", | ||||||
|         "nixpkgs-stable": "nixpkgs-stable_2" |         "nixpkgs-stable": "nixpkgs-stable_2" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1731008979, |         "lastModified": 1728345710, | ||||||
|         "narHash": "sha256-yN1NxvmqV8UltLkqYBWTeZNgpD/eyh/7LM58caHiEfE=", |         "narHash": "sha256-lpunY1+bf90ts+sA2/FgxVNIegPDKCpEoWwOPu4ITTQ=", | ||||||
|         "owner": "Mic92", |         "owner": "Mic92", | ||||||
|         "repo": "sops-nix", |         "repo": "sops-nix", | ||||||
|         "rev": "fe63071416471abdab06caa234122932a7c4b980", |         "rev": "06535d0e3d0201e6a8080dd32dbfde339b94f01b", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1239,16 +1128,16 @@ | ||||||
|     }, |     }, | ||||||
|     "systems_4": { |     "systems_4": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1689347949, |         "lastModified": 1681028828, | ||||||
|         "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", |         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||||
|         "owner": "nix-systems", |         "owner": "nix-systems", | ||||||
|         "repo": "default-linux", |         "repo": "default", | ||||||
|         "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", |         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "nix-systems", |         "owner": "nix-systems", | ||||||
|         "repo": "default-linux", |         "repo": "default", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  | @ -1282,18 +1171,19 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "systems_7": { |     "unstable": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1681028828, |         "lastModified": 1729256560, | ||||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", |         "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", | ||||||
|         "owner": "nix-systems", |         "owner": "nixos", | ||||||
|         "repo": "default", |         "repo": "nixpkgs", | ||||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", |         "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "nix-systems", |         "owner": "nixos", | ||||||
|         "repo": "default", |         "ref": "nixos-unstable", | ||||||
|  |         "repo": "nixpkgs", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  | @ -1325,11 +1215,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730743262, |         "lastModified": 1728166987, | ||||||
|         "narHash": "sha256-iTLqj3lU8kFehPm5tXpctzkD274t/k1nwSSq3qCWXeg=", |         "narHash": "sha256-w6dVTguAn9zJ+7aPOhBQgDz8bn6YZ7b56cY8Kg5HJRI=", | ||||||
|         "owner": "hyprwm", |         "owner": "hyprwm", | ||||||
|         "repo": "xdg-desktop-portal-hyprland", |         "repo": "xdg-desktop-portal-hyprland", | ||||||
|         "rev": "09b23cef06fe248e61cec8862c04b9bcb62f4b6d", |         "rev": "fb9c8d665af0588bb087f97d0f673ddf0d501787", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -1340,14 +1230,14 @@ | ||||||
|     }, |     }, | ||||||
|     "zen-browser": { |     "zen-browser": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": "nixpkgs_8" |         "nixpkgs": "nixpkgs_6" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1730444716, |         "lastModified": 1729334402, | ||||||
|         "narHash": "sha256-WtqSpYQyG5ad+GK7B0ViDSl0NolHp7yM24TacUslBXE=", |         "narHash": "sha256-elpcQZC6VoZC4jKk09upN2cGPW4j+OjDpD2HjvYe9Z4=", | ||||||
|         "owner": "ch4og", |         "owner": "ch4og", | ||||||
|         "repo": "zen-browser-flake", |         "repo": "zen-browser-flake", | ||||||
|         "rev": "d3c639ee7bff20f799f443e18fffa6331a71cd3a", |         "rev": "d5adb0791f5cf974b2b480f5d62075e9b3e7dd80", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								flake.nix
									
										
									
									
									
								
							|  | @ -4,10 +4,7 @@ | ||||||
|   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"; | ||||||
|     nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; |     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"; | ||||||
|  | @ -25,7 +22,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 = "nixpkgs-unstable"; |       inputs.nixpkgs.follows = "unstable"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     ### |     ### | ||||||
|  | @ -42,8 +39,6 @@ | ||||||
|       inputs.hyprland.follows = "hyprland"; |       inputs.hyprland.follows = "hyprland"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; |  | ||||||
| 
 |  | ||||||
|     ### |     ### | ||||||
|     # Snowfall dependencies |     # Snowfall dependencies | ||||||
|     snowfall-lib = { |     snowfall-lib = { | ||||||
|  | @ -53,10 +48,9 @@ | ||||||
| 
 | 
 | ||||||
|     snowfall-flake = { |     snowfall-flake = { | ||||||
|       url = "github:snowfallorg/flake"; |       url = "github:snowfallorg/flake"; | ||||||
|       inputs.nixpkgs.follows = "nixpkgs-unstable"; |       inputs.nixpkgs.follows = "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"; | ||||||
|  | @ -115,7 +109,6 @@ | ||||||
|       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; [ | ||||||
|  |  | ||||||
|  | @ -1,22 +0,0 @@ | ||||||
| { |  | ||||||
|   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 helix or not"; |     enable = mkEnableOption "Whether to enable nixvim or not"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|  | @ -30,119 +30,124 @@ in | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     ${namespace} = { |     ${namespace} = { | ||||||
|       home.extraOptions = { |       home = { | ||||||
|         programs.helix = { |         extraOptions = { | ||||||
|           enable = true; |           programs.helix = { | ||||||
|           package = helix-pkg; |             enable = true; | ||||||
|           defaultEditor = true; |             package = helix-pkg; | ||||||
|           settings = { |             defaultEditor = true; | ||||||
|             theme = "tokyonight"; |             settings = { | ||||||
|             editor = { |               theme = "tokyonight"; | ||||||
|               auto-format = true; |               editor = { | ||||||
|               line-number = "relative"; |                 auto-format = true; | ||||||
|  |                 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 = { |  | ||||||
|               normal = { |  | ||||||
|                 esc = [ |  | ||||||
|                   "collapse_selection" |  | ||||||
|                   "keep_primary_selection" |  | ||||||
|                 ]; |  | ||||||
|                 space = { |  | ||||||
|                   space = "file_picker"; |  | ||||||
|                 }; |                 }; | ||||||
| 
 | 
 | ||||||
|                 C-j = [ |                 cursor-shape = { | ||||||
|                   "move_line_down" |                   normal = "block"; | ||||||
|                   "move_line_down" |                   insert = "bar"; | ||||||
|                   "move_line_down" |                   select = "underline"; | ||||||
|                   "move_line_down" |                 }; | ||||||
|                   "move_line_down" | 
 | ||||||
|                 ]; |                 indent-guides = { | ||||||
|                 C-k = [ |                   render = true; | ||||||
|                   "move_line_up" |                   character = "|"; | ||||||
|                   "move_line_up" |                 }; | ||||||
|                   "move_line_up" | 
 | ||||||
|                   "move_line_up" |                 statusline = { | ||||||
|                   "move_line_up" |                   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 = { | ||||||
|  |                 normal = { | ||||||
|  |                   esc = [ | ||||||
|  |                     "collapse_selection" | ||||||
|  |                     "keep_primary_selection" | ||||||
|  |                   ]; | ||||||
|  |                   space = { | ||||||
|  |                     space = "file_picker"; | ||||||
|  |                   }; | ||||||
|  | 
 | ||||||
|  |                   C-j = [ | ||||||
|  |                     "move_line_down" | ||||||
|  |                     "move_line_down" | ||||||
|  |                     "move_line_down" | ||||||
|  |                     "move_line_down" | ||||||
|  |                     "move_line_down" | ||||||
|  |                   ]; | ||||||
|  |                   C-k = [ | ||||||
|  |                     "move_line_up" | ||||||
|  |                     "move_line_up" | ||||||
|  |                     "move_line_up" | ||||||
|  |                     "move_line_up" | ||||||
|  |                     "move_line_up" | ||||||
|  |                   ]; | ||||||
|  |                 }; | ||||||
|               }; |               }; | ||||||
|             }; |             }; | ||||||
|           }; |  | ||||||
| 
 | 
 | ||||||
|           languages = { |             languages = { | ||||||
|             language = [ |               language = [ | ||||||
|               { |                 { | ||||||
|                 name = "nix"; |                   name = "nix"; | ||||||
|                 auto-format = true; |                   auto-format = true; | ||||||
|                 formatter.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; |                   formatter.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; | ||||||
|                 language-servers = [ |                   language-servers = [ | ||||||
|                   "nixd" |                     "nixd" | ||||||
|                   "nil" |                     "nil" | ||||||
|                 ]; |                   ]; | ||||||
|               } |                 } | ||||||
|               { |                 { | ||||||
|                 # provided by the dev environment in the rust shell |                   # provided by the dev environment in the rust shell | ||||||
|                 name = "rust"; |                   name = "rust"; | ||||||
|                 auto-format = true; |                   auto-format = true; | ||||||
|                 formatter.command = "cargo fmt"; |                   formatter.command = "cargo fmt"; | ||||||
|                 language-servers = [ "rust-analyzer" ]; |                   language-servers = [ "rust-analyzer" ]; | ||||||
|               } |                 } | ||||||
|             ]; |               ]; | ||||||
| 
 | 
 | ||||||
|             language-server = { |               language-server = { | ||||||
|               nixd = { |                 nil = { | ||||||
|                 command = "${pkgs.nixd}/bin/nixd"; |                   command = "${pkgs.nil}/bin/nil"; | ||||||
|               }; |                 }; | ||||||
|               marksman = { |                 nixd = { | ||||||
|                 command = "${pkgs.marksman}/bin/marksman"; |                   command = "${pkgs.nixd}/bin/nixd"; | ||||||
|               }; |                 }; | ||||||
|               vscode-json-language-server = { |                 marksman = { | ||||||
|                 command = "${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server"; |                   command = "${pkgs.marksman}/bin/marksman"; | ||||||
|                 args = [ "--stdio" ]; |                 }; | ||||||
|                 config.provideFormatter = true; |                 vscode-json-language-server = { | ||||||
|                 config.json.validate.enable = true; |                   command = "${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server"; | ||||||
|               }; |                   args = [ "--stdio" ]; | ||||||
|               vscode-css-language-server = { |                   config.provideFormatter = true; | ||||||
|                 command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server"; |                   config.json.validate.enable = true; | ||||||
|                 args = [ "--stdio" ]; |                 }; | ||||||
|                 config.provideFormatter = true; |                 vscode-css-language-server = { | ||||||
|  |                   command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server"; | ||||||
|  |                   args = [ "--stdio" ]; | ||||||
|  |                   config.provideFormatter = true; | ||||||
|  |                 }; | ||||||
|               }; |               }; | ||||||
|             }; |             }; | ||||||
|           }; |           }; | ||||||
|  |  | ||||||
|  | @ -1,45 +0,0 @@ | ||||||
| { |  | ||||||
|   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"; |  | ||||||
|             } |  | ||||||
|           ]; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,614 +0,0 @@ | ||||||
| { |  | ||||||
|   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,16 +1,20 @@ | ||||||
| { | { | ||||||
|   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 = { | ||||||
|  | @ -24,15 +28,13 @@ 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 = [ picture-path ]; |           preload = [ | ||||||
|           wallpaper = "DP-2,${picture-path}"; |             "/home/${username}/Pictures/firewatch.jpg" | ||||||
|  |           ]; | ||||||
|  |           wallpaper = "monitor DP-2, /home/${username}/Pictures/firewatch.jpg"; | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|  | @ -6,17 +6,10 @@ | ||||||
|   ... |   ... | ||||||
| }: | }: | ||||||
| let | let | ||||||
|   inherit (lib) mkIf mkEnableOption; |  | ||||||
|   user = config.${namespace}.user.name; |   user = config.${namespace}.user.name; | ||||||
| 
 |  | ||||||
|   cfg = config.${namespace}.desktop.hyprland; |  | ||||||
| in | in | ||||||
| { | { | ||||||
|   options.${namespace}.desktop = { |   config = { | ||||||
|     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 9 |         hyprctl dispatch workspace 4 | ||||||
|         1password& |         1password& | ||||||
|     fi |     fi | ||||||
|   ''; |   ''; | ||||||
|  | @ -47,30 +47,19 @@ in | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     environment.systemPackages = with pkgs; [ |     environment.systemPackages = with pkgs; [ | ||||||
|       # Auth Agent |       polkit-kde-agent | ||||||
|       hyprpolkitagent |  | ||||||
| 
 | 
 | ||||||
|       # Notification daemon |  | ||||||
|       libnotify |  | ||||||
| 
 |  | ||||||
|       # Wayland Utilities |  | ||||||
|       wl-clipboard |       wl-clipboard | ||||||
|  |       wl-screenrec | ||||||
|       wlr-randr |       wlr-randr | ||||||
| 
 |  | ||||||
|       # Screenshot Utility |  | ||||||
|       grimblast |       grimblast | ||||||
| 
 |  | ||||||
|       # File Manager |  | ||||||
|       xfce.thunar |       xfce.thunar | ||||||
|  |       dunst | ||||||
| 
 | 
 | ||||||
|       # 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 = { | ||||||
|  | @ -90,18 +79,14 @@ in | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     ${namespace} = { |     ${namespace} = { | ||||||
|       desktop = { |       desktop.addons = { | ||||||
|         enable = true; |         waybar = enabled; | ||||||
|         addons = { |         rofi = { | ||||||
|           rofi = { |           enable = true; | ||||||
|             enable = true; |           package = pkgs.rofi-wayland-unwrapped; | ||||||
|             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} = { | ||||||
|  | @ -124,17 +109,20 @@ in | ||||||
|               ]; |               ]; | ||||||
| 
 | 
 | ||||||
|               exec-once = [ |               exec-once = [ | ||||||
|                 "systemctl --user start hyprpolkitagent" |                 "hyprpaper" | ||||||
|  |                 "waybar" | ||||||
|  |                 "dunst" | ||||||
|  |                 "systemctl --user start plasma-polkit-agent" | ||||||
| 
 | 
 | ||||||
|                 "[workspace 2 silent] steam --disable-gpu-compositing" # nvidia pls let me have nice things |                 "[workspace 3 silent] steam" | ||||||
|                 "[workspace 8 silent] discord --disable-gpu-compositing" |                 "[workspace 2 silent] discord" | ||||||
|                 "[workspace 9 silent] 1password" |                 "[workspace 4 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 2 silent, class:^(steam)$, title:^(Steam)" |                 "workspace 3 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)$" | ||||||
|  |  | ||||||
|  | @ -1,75 +0,0 @@ | ||||||
| { |  | ||||||
|   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,38 +8,30 @@ | ||||||
| with lib.${namespace}; | with lib.${namespace}; | ||||||
| let | let | ||||||
|   cfg = config.${namespace}.services.factorio-server; |   cfg = config.${namespace}.services.factorio-server; | ||||||
|   inherit (lib) mkIf mkOption mkEnableOption; |   inherit (lib) mkIf 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 = [ pkgs.factorio-headless ]; |     environment.systemPackages = with 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": "SpaceAgeHolli", |           "name": "Alles Nix!", | ||||||
|           "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, | ||||||
|  | @ -48,6 +40,7 @@ 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}" | ||||||
|         } |         } | ||||||
|       ''; |       ''; | ||||||
|  | @ -60,13 +53,8 @@ in | ||||||
|       public = true; |       public = true; | ||||||
|       lan = true; |       lan = true; | ||||||
|       nonBlockingSaving = true; |       nonBlockingSaving = true; | ||||||
|       autosave-interval = 15; |       autosave-interval = 5; | ||||||
|       saveName = "SpaceAge"; |       loadLatestSave = true; | ||||||
|       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 = mkEnableOption "Whether or not to enable basic configuration."; |     enable = mkBoolOpt false "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 | ||||||
|       btop |       htop | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     ${namespace} = { |     ${namespace} = { | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ in | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     boot = { |     boot = { | ||||||
|       kernelPackages = pkgs.linuxPackages_latest; |       kernelPackages = pkgs.linuxPackages_6_10; | ||||||
|       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,11 +48,6 @@ 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 = { | ||||||
|  | @ -97,8 +92,6 @@ 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; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| { ... }: |  | ||||||
| 
 |  | ||||||
| final: prev: { |  | ||||||
|   discord = prev.discord.overrideAttrs (oldAttrs: { |  | ||||||
|     commandLineArgs = '' |  | ||||||
|       --disable-gpu-compositing |  | ||||||
|     ''; |  | ||||||
|   }); |  | ||||||
| } |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| { channels, ... }: |  | ||||||
| 
 |  | ||||||
| final: prev: { inherit (channels.nixpkgs-latest-factorio) factorio-headless; } |  | ||||||
|  | @ -1,3 +1,3 @@ | ||||||
| { channels, ... }: | { channels, ... }: | ||||||
| 
 | 
 | ||||||
| final: prev: { inherit (channels.nixpkgs-unstable) pobfrontend; } | final: prev: { inherit (channels.unstable) pobfrontend; } | ||||||
|  |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| { ... }: |  | ||||||
| 
 |  | ||||||
| final: prev: { |  | ||||||
|   steam = prev.steam.overrideAttrs (oldAttrs: { |  | ||||||
|     commandLineArgs = '' |  | ||||||
|       --disable-gpu-compositing |  | ||||||
|     ''; |  | ||||||
|   }); |  | ||||||
| } |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| { ... }: |  | ||||||
| 
 |  | ||||||
| final: prev: { |  | ||||||
|   teams-for-linux = prev.teams-for-linux.overrideAttrs (oldAttrs: { |  | ||||||
|     commandLineArgs = '' |  | ||||||
|       --disable-gpu-compositing |  | ||||||
|     ''; |  | ||||||
|   }); |  | ||||||
| } |  | ||||||
|  | @ -1,30 +0,0 @@ | ||||||
| #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:xMpORLbom/w=,iv:ukkPL10vAcQKGGpjqKM58uIfJ3sRLhxUkFyf0JXJkvc=,tag:jw52z23utK7eHM9e2zZvig==,type:str] | factorio_game_password: ENC[AES256_GCM,data:wwmltZzhYlQ=,iv:2LPugIqfPLJ5PbdrVfI36+76pAVp5Rano4T6968OsKs=,tag:kRpWL4wYnm/X4SHYypzVyA==,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-10-22T00:06:22Z" |     lastmodified: "2024-09-06T19:21:22Z" | ||||||
|     mac: ENC[AES256_GCM,data:NFP/q1AwapApQ7osBUIIQRfwuD5CbZphZkxLo1BfnUG7q/TxLbUm7F1uDaHFx55ox7FrvBzm11k/A8njcOQtpmfnBGhwF+X6VUF+CvsnTStRk/4v1TiybFFODSPKVmsZvxKJS1cRnTmptBvDoDfztIvqk4m9XvuVZlYvK5VXQVA=,iv:z61xn9BYygcD5t/z0ZO7yUSS+yFOUNvmcSSx+c1RgAQ=,tag:u1/P68g2jemJhOloZHB7yA==,type:str] |     mac: ENC[AES256_GCM,data:xgRgCRNtsoa3h7ss9uUyOVmGWoQqZ8+vSk0sNkhOeev1tB9qesTnkqNfRkilRyZPNen5xTV8iupvlB4wLVjODGDLueaimnOjWxrk8urSLPEbCzjLUsWuWiVANIkkyGWn0KH4mxr4pR0lt+Yy2JRKuzKGPYKYHWwnCg1saVCC2VE=,iv:iu86TvF8ur8RALGkJTgam35kJ4QRx6ruMBnj7o99A8k=,tag:AY/hCByZd1SNVIrWZ4qp4A==,type:str] | ||||||
|     pgp: [] |     pgp: [] | ||||||
|     unencrypted_suffix: _unencrypted |     unencrypted_suffix: _unencrypted | ||||||
|     version: 3.9.1 |     version: 3.9.0 | ||||||
|  |  | ||||||
|  | @ -1,122 +0,0 @@ | ||||||
| { |  | ||||||
|   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"; |  | ||||||
| } |  | ||||||
|  | @ -1,42 +0,0 @@ | ||||||
| { |  | ||||||
|   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 disabled; |   inherit (lib.${namespace}) enabled; | ||||||
| in | in | ||||||
| { | { | ||||||
|   imports = [ ./hardware.nix ]; |   imports = [ ./hardware.nix ]; | ||||||
|  | @ -21,10 +21,6 @@ in | ||||||
| 
 | 
 | ||||||
|   virtualisation.waydroid = enabled; |   virtualisation.waydroid = enabled; | ||||||
| 
 | 
 | ||||||
|   programs.ssh.extraConfig = '' |  | ||||||
|     AddressFamily inet |  | ||||||
|   ''; |  | ||||||
| 
 |  | ||||||
|   ${namespace} = { |   ${namespace} = { | ||||||
|     archetypes = { |     archetypes = { | ||||||
|       gaming.enable = true; |       gaming.enable = true; | ||||||
|  | @ -61,32 +57,35 @@ 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 9 silent] git-butler" |           "[workspace 4 silent] git-butler" | ||||||
|         ]; |         ]; | ||||||
| 
 | 
 | ||||||
|         workspace = [ |         workspace = [ | ||||||
|           "1, monitor:DP-2" |           "1, monitor:DP-2" | ||||||
|           "2, monitor:DP-2" |           "2, monitor:HDMI-A-1" | ||||||
|           "3, monitor:DP-2" |           "3, monitor:DP-2" | ||||||
|           "4, monitor:DP-2" |           "4, monitor:HDMI-A-1" | ||||||
|           "8, monitor:HDMI-A-1" |  | ||||||
|           "9, monitor:HDMI-A-1" |  | ||||||
|         ]; |         ]; | ||||||
| 
 | 
 | ||||||
|         windowrulev2 = [ |         windowrulev2 = [ | ||||||
|           "workspace 8 silent, class:^(steam)$, title:^(Friends List)" |           "workspace 2 silent, class:^(steam)$, title:^(Friends List)" | ||||||
|           "workspace 8 silent, class:^(discord)$, title:^(Discord)" |           "workspace 2 silent, class:^(discord)$, title:^(Discord)" | ||||||
|         ]; |         ]; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     services = { |     services = { | ||||||
|       factorio-server = disabled; |       factorio-server = enabled; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     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