Compare commits
	
		
			1 Commits
		
	
	
		
			master
			...
			temp-small
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| aad01c1271 | 
| @@ -8,7 +8,6 @@ creation_rules: | ||||
|     key_groups: | ||||
|       - age: | ||||
|         - *admin_torjus | ||||
|         - *server_magicman | ||||
|   - path_regex: secrets/gunter/[^/]+\.(yaml|json|env|ini|toml) | ||||
|     key_groups: | ||||
|       - age: | ||||
| @@ -28,4 +27,3 @@ creation_rules: | ||||
|     key_groups: | ||||
|       - age: | ||||
|         - *admin_torjus | ||||
|         - *server_magicman | ||||
|   | ||||
							
								
								
									
										449
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										449
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @@ -1,5 +1,77 @@ | ||||
| { | ||||
|   "nodes": { | ||||
|     "flake-utils": { | ||||
|       "inputs": { | ||||
|         "systems": "systems" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1710146030, | ||||
|         "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils_2": { | ||||
|       "inputs": { | ||||
|         "systems": "systems_2" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1710146030, | ||||
|         "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils_3": { | ||||
|       "inputs": { | ||||
|         "systems": "systems_4" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1726560853, | ||||
|         "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils_4": { | ||||
|       "inputs": { | ||||
|         "systems": "systems_5" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1726560853, | ||||
|         "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "ghettoptt": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
| @@ -28,11 +100,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1761770832, | ||||
|         "narHash": "sha256-IQIWG6kHxnUpx5KEb9r0BROL3/R6UQ/30aO2oHncBA8=", | ||||
|         "lastModified": 1732025103, | ||||
|         "narHash": "sha256-qjEI64RKvDxRyEarY0jTzrZMa8ebezh2DEZmJJrpVdo=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "rev": "124b99dbd1594dbebdd575ac7142752ee96a98a0", | ||||
|         "rev": "a46e702093a5c46e192243edbd977d5749e7f294", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -43,19 +115,18 @@ | ||||
|     }, | ||||
|     "huecli": { | ||||
|       "inputs": { | ||||
|         "flake-utils": "flake-utils", | ||||
|         "nixpkgs": [ | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "pyproject-build-systems": "pyproject-build-systems", | ||||
|         "pyproject-nix": "pyproject-nix", | ||||
|         "uv2nix": "uv2nix" | ||||
|         "poetry2nix": "poetry2nix" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1757974387, | ||||
|         "narHash": "sha256-vVFZTB3NxJCH91aaAtop3MEZcilPQ273epV1gcnQE4s=", | ||||
|         "lastModified": 1728336978, | ||||
|         "narHash": "sha256-7FX4K8QBH/9jiYyCMs2JyCTzlx1/D5Cw6upaFThSVg4=", | ||||
|         "ref": "master", | ||||
|         "rev": "b341e613337b87cef7a0f4ea05d677288cafa3fb", | ||||
|         "revCount": 33, | ||||
|         "rev": "700ece0bada9833fcfd3b6ce698cd74bc00e4493", | ||||
|         "revCount": 22, | ||||
|         "type": "git", | ||||
|         "url": "https://git.t-juice.club/torjus/huecli" | ||||
|       }, | ||||
| @@ -65,25 +136,48 @@ | ||||
|         "url": "https://git.t-juice.club/torjus/huecli" | ||||
|       } | ||||
|     }, | ||||
|     "natstonotify": { | ||||
|     "nix-github-actions": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "huecli", | ||||
|           "poetry2nix", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1739302828, | ||||
|         "narHash": "sha256-D6l5tAh1FDpdz9/tQC7kYhFPQzqI1HICwNh7fRejfrw=", | ||||
|         "ref": "master", | ||||
|         "rev": "bfcf518fe0b2fe19075667f7b22227376d102509", | ||||
|         "revCount": 7, | ||||
|         "type": "git", | ||||
|         "url": "https://git.t-juice.club/torjus/natstonotify" | ||||
|         "lastModified": 1703863825, | ||||
|         "narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "nix-github-actions", | ||||
|         "rev": "5163432afc817cf8bd1f031418d1869e4c9d5547", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "ref": "master", | ||||
|         "type": "git", | ||||
|         "url": "https://git.t-juice.club/torjus/natstonotify" | ||||
|         "owner": "nix-community", | ||||
|         "repo": "nix-github-actions", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nix-github-actions_2": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "nixprstatus", | ||||
|           "poetry2nix", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1720066371, | ||||
|         "narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "nix-github-actions", | ||||
|         "rev": "622f829f5fe69310a866c8a6cd07e747c44ef820", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-community", | ||||
|         "repo": "nix-github-actions", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nix-packages": { | ||||
| @@ -93,11 +187,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1757017925, | ||||
|         "narHash": "sha256-QC1SkvyU5nQ32lju2GYK9ozuh/JYWXfWK/T7OC6dVls=", | ||||
|         "lastModified": 1728153756, | ||||
|         "narHash": "sha256-kNpO8yC2MioSRc2SNxNM5egVvFjA2Ox0b4SAs6GnM8w=", | ||||
|         "ref": "master", | ||||
|         "rev": "7723cb45020e1f561f527779540faa5901d34e4d", | ||||
|         "revCount": 31, | ||||
|         "rev": "2fc840c15280d2dd3da1aba7272243b4aa11e611", | ||||
|         "revCount": 21, | ||||
|         "type": "git", | ||||
|         "url": "https://git.t-juice.club/torjus/nix-packages" | ||||
|       }, | ||||
| @@ -109,11 +203,11 @@ | ||||
|     }, | ||||
|     "nixpkgs": { | ||||
|       "locked": { | ||||
|         "lastModified": 1761672384, | ||||
|         "narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=", | ||||
|         "lastModified": 1731676054, | ||||
|         "narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=", | ||||
|         "owner": "nixos", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c", | ||||
|         "rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -123,37 +217,52 @@ | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs-stable": { | ||||
|     "nixpkgs-small": { | ||||
|       "locked": { | ||||
|         "lastModified": 1761468971, | ||||
|         "narHash": "sha256-vY2OLVg5ZTobdroQKQQSipSIkHlxOTrIF1fsMzPh8w8=", | ||||
|         "lastModified": 1732007104, | ||||
|         "narHash": "sha256-qaWPxgLAvtIHTDcm0qJuc+WNYjcy4ZKigOyn2ag4ihM=", | ||||
|         "owner": "nixos", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "78e34d1667d32d8a0ffc3eba4591ff256e80576e", | ||||
|         "rev": "0705964c881cea8896474610188905ba41b59b08", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nixos", | ||||
|         "ref": "nixos-25.05", | ||||
|         "ref": "nixos-unstable-small", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs-stable": { | ||||
|       "locked": { | ||||
|         "lastModified": 1731755305, | ||||
|         "narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=", | ||||
|         "owner": "nixos", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nixos", | ||||
|         "ref": "nixos-24.11", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixprstatus": { | ||||
|       "inputs": { | ||||
|         "flake-utils": "flake-utils_3", | ||||
|         "nixpkgs": [ | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "pyproject-build-systems": "pyproject-build-systems_2", | ||||
|         "pyproject-nix": "pyproject-nix_2", | ||||
|         "uv2nix": "uv2nix_2" | ||||
|         "poetry2nix": "poetry2nix_2" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1748349633, | ||||
|         "narHash": "sha256-SyFF/p3G7YsJH0p5jgeOqdtc3ehzGuI05ZqiJbZNAZA=", | ||||
|         "lastModified": 1729118937, | ||||
|         "narHash": "sha256-7xYCJXTh92OpKwfshYYnxrWmfNjqaH9SzQ0stuBARVM=", | ||||
|         "ref": "master", | ||||
|         "rev": "ef55b5b9478390b535fe708edfa297729ac75572", | ||||
|         "revCount": 60, | ||||
|         "rev": "58b113d934f5d62f27dc50439b89fece4eb621f5", | ||||
|         "revCount": 37, | ||||
|         "type": "git", | ||||
|         "url": "https://git.t-juice.club/torjus/nixprstatus" | ||||
|       }, | ||||
| @@ -163,103 +272,53 @@ | ||||
|         "url": "https://git.t-juice.club/torjus/nixprstatus" | ||||
|       } | ||||
|     }, | ||||
|     "pyproject-build-systems": { | ||||
|     "poetry2nix": { | ||||
|       "inputs": { | ||||
|         "flake-utils": "flake-utils_2", | ||||
|         "nix-github-actions": "nix-github-actions", | ||||
|         "nixpkgs": [ | ||||
|           "huecli", | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "pyproject-nix": [ | ||||
|           "huecli", | ||||
|           "pyproject-nix" | ||||
|         ], | ||||
|         "uv2nix": [ | ||||
|           "huecli", | ||||
|           "uv2nix" | ||||
|         ] | ||||
|         "systems": "systems_3", | ||||
|         "treefmt-nix": "treefmt-nix" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1757296493, | ||||
|         "narHash": "sha256-6nzSZl28IwH2Vx8YSmd3t6TREHpDbKlDPK+dq1LKIZQ=", | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "build-system-pkgs", | ||||
|         "rev": "5b8e37fe0077db5c1df3a5ee90a651345f085d38", | ||||
|         "lastModified": 1724208502, | ||||
|         "narHash": "sha256-TCRcEPSfgAw/t7kClmlr23s591N06mQCrhzlAO7cyFw=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "poetry2nix", | ||||
|         "rev": "884b66152b0c625b8220b570a31dc7acc36749a3", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "build-system-pkgs", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "poetry2nix", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "pyproject-build-systems_2": { | ||||
|     "poetry2nix_2": { | ||||
|       "inputs": { | ||||
|         "flake-utils": "flake-utils_4", | ||||
|         "nix-github-actions": "nix-github-actions_2", | ||||
|         "nixpkgs": [ | ||||
|           "nixprstatus", | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "pyproject-nix": [ | ||||
|           "nixprstatus", | ||||
|           "pyproject-nix" | ||||
|         ], | ||||
|         "uv2nix": [ | ||||
|           "nixprstatus", | ||||
|           "uv2nix" | ||||
|         ] | ||||
|         "systems": "systems_6", | ||||
|         "treefmt-nix": "treefmt-nix_2" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744599653, | ||||
|         "narHash": "sha256-nysSwVVjG4hKoOjhjvE6U5lIKA8sEr1d1QzEfZsannU=", | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "build-system-pkgs", | ||||
|         "rev": "7dba6dbc73120e15b558754c26024f6c93015dd7", | ||||
|         "lastModified": 1729073785, | ||||
|         "narHash": "sha256-KaDC7emuamQblDdka+gkBUUdEjQf3YGYozMb+zomgSM=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "poetry2nix", | ||||
|         "rev": "795fddefc9f910671c1cf0752c29802ce27322d6", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "build-system-pkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "pyproject-nix": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "huecli", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1757246327, | ||||
|         "narHash": "sha256-6pNlGhwOIMfhe/RLjHdpXveKS4FyLHvlGe+KtjDild4=", | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "pyproject.nix", | ||||
|         "rev": "8d77f342d66ad1601cdb9d97e9388b69f64d4c8e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "pyproject.nix", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "pyproject-nix_2": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "nixprstatus", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1746540146, | ||||
|         "narHash": "sha256-QxdHGNpbicIrw5t6U3x+ZxeY/7IEJ6lYbvsjXmcxFIM=", | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "pyproject.nix", | ||||
|         "rev": "e09c10c24ebb955125fda449939bfba664c467fd", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "pyproject.nix", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "poetry2nix", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
| @@ -268,9 +327,9 @@ | ||||
|         "ghettoptt": "ghettoptt", | ||||
|         "home-manager": "home-manager", | ||||
|         "huecli": "huecli", | ||||
|         "natstonotify": "natstonotify", | ||||
|         "nix-packages": "nix-packages", | ||||
|         "nixpkgs": "nixpkgs", | ||||
|         "nixpkgs-small": "nixpkgs-small", | ||||
|         "nixpkgs-stable": "nixpkgs-stable", | ||||
|         "nixprstatus": "nixprstatus", | ||||
|         "sops-nix": "sops-nix" | ||||
| @@ -283,11 +342,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1760998189, | ||||
|         "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", | ||||
|         "lastModified": 1731954233, | ||||
|         "narHash": "sha256-vvXx1m2Rsw7MkbKJdpcICzz4YPgZPApGKQGhNZfkhOI=", | ||||
|         "owner": "Mic92", | ||||
|         "repo": "sops-nix", | ||||
|         "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", | ||||
|         "rev": "e39947d0ee8e341fa7108bd02a33cdfa24a1360e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -296,53 +355,135 @@ | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "uv2nix": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "huecli", | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "pyproject-nix": [ | ||||
|           "huecli", | ||||
|           "pyproject-nix" | ||||
|         ] | ||||
|       }, | ||||
|     "systems": { | ||||
|       "locked": { | ||||
|         "lastModified": 1757925761, | ||||
|         "narHash": "sha256-7Hwz0vfHuFqCo5v7Q07GQgLBWuPvZCuf/5/pk4NoADg=", | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "uv2nix", | ||||
|         "rev": "780494c40895bb7419a73d942bee326291e80b3b", | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "uv2nix", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "uv2nix_2": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "nixprstatus", | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "pyproject-nix": [ | ||||
|           "nixprstatus", | ||||
|           "pyproject-nix" | ||||
|         ] | ||||
|       }, | ||||
|     "systems_2": { | ||||
|       "locked": { | ||||
|         "lastModified": 1747949765, | ||||
|         "narHash": "sha256-1v8SFHOwUCvHDXFmQRjHZYawY19nxmtZ7zH/kwAGgj0=", | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "uv2nix", | ||||
|         "rev": "ec0502250b48116fd3aa8e1347a2d0254bacd05e", | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "pyproject-nix", | ||||
|         "repo": "uv2nix", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "systems_3": { | ||||
|       "locked": { | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "id": "systems", | ||||
|         "type": "indirect" | ||||
|       } | ||||
|     }, | ||||
|     "systems_4": { | ||||
|       "locked": { | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "systems_5": { | ||||
|       "locked": { | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "systems_6": { | ||||
|       "locked": { | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "id": "systems", | ||||
|         "type": "indirect" | ||||
|       } | ||||
|     }, | ||||
|     "treefmt-nix": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "huecli", | ||||
|           "poetry2nix", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1719749022, | ||||
|         "narHash": "sha256-ddPKHcqaKCIFSFc/cvxS14goUhCOAwsM1PbMr0ZtHMg=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "treefmt-nix", | ||||
|         "rev": "8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "treefmt-nix", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "treefmt-nix_2": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "nixprstatus", | ||||
|           "poetry2nix", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1727984844, | ||||
|         "narHash": "sha256-xpRqITAoD8rHlXQafYZOLvUXCF6cnZkPfoq67ThN0Hc=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "treefmt-nix", | ||||
|         "rev": "4446c7a6fc0775df028c5a3f6727945ba8400e64", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "treefmt-nix", | ||||
|         "type": "github" | ||||
|       } | ||||
|     } | ||||
|   | ||||
							
								
								
									
										23
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								flake.nix
									
									
									
									
									
								
							| @@ -2,9 +2,10 @@ | ||||
|   description = "Torjus nixos config flake"; | ||||
|  | ||||
|   inputs = { | ||||
|     nixpkgs-stable.url = "github:nixos/nixpkgs?ref=nixos-25.05"; | ||||
|     nixpkgs-stable.url = "github:nixos/nixpkgs?ref=nixos-24.11"; | ||||
|     #nixpkgs-master.url = "github:nixos/nixpkgs?ref=master"; | ||||
|     nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; | ||||
|     nixpkgs-small.url = "github:nixos/nixpkgs?ref=nixos-unstable-small"; | ||||
|     home-manager = { | ||||
|       url = "github:nix-community/home-manager"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
| @@ -30,10 +31,6 @@ | ||||
|       url = "git+https://git.t-juice.club/torjus/nixprstatus?ref=master"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     }; | ||||
|     natstonotify = { | ||||
|       url = "git+https://git.t-juice.club/torjus/natstonotify?ref=master"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     }; | ||||
|   }; | ||||
|  | ||||
|   outputs = | ||||
| @@ -42,11 +39,11 @@ | ||||
|       nixpkgs, | ||||
|       # nixpkgs-master, | ||||
|       nixpkgs-stable, | ||||
|       nixpkgs-small, | ||||
|       nixprstatus, | ||||
|       sops-nix, | ||||
|       ghettoptt, | ||||
|       huecli, | ||||
|       natstonotify, | ||||
|       nix-packages, | ||||
|       ... | ||||
|     }@inputs: | ||||
| @@ -59,6 +56,17 @@ | ||||
|           config.allowUnfree = true; | ||||
|         }; | ||||
|       }; | ||||
|       overlay-pyside6 = | ||||
|         final: prev: | ||||
|         let | ||||
|           small = import nixpkgs-small { | ||||
|             inherit system; | ||||
|             config.allowUnfree = true; | ||||
|           }; | ||||
|         in | ||||
|         { | ||||
|           python312Packages = small.lib.warn "Using python312Packages from nixos-unstable-small #" small.python312Packages; | ||||
|         }; | ||||
|       # overlay-master = final: prev: { | ||||
|       #   master = import nixpkgs-master { | ||||
|       #     inherit system; | ||||
| @@ -76,15 +84,14 @@ | ||||
|       commonOverlays = [ | ||||
|         overlay-stable | ||||
|         # overlay-master | ||||
|         overlay-pyside6 | ||||
|         ghettoptt.overlays.default | ||||
|         huecli.overlays.default | ||||
|         nix-packages.overlays.default | ||||
|         nixprstatus.overlays.default | ||||
|         natstonotify.overlays.default | ||||
|       ]; | ||||
|     in | ||||
|     { | ||||
|       formatter.${system} = nixpkgs.legacyPackages.${system}.nixfmt-tree; | ||||
|       nixosConfigurations = { | ||||
|         prismo = nixpkgs.lib.nixosSystem { | ||||
|           inherit system; | ||||
|   | ||||
| @@ -5,9 +5,6 @@ | ||||
|       enable = true; | ||||
|       defaultEditor = true; | ||||
|       vimAlias = true; | ||||
|       extraPackages = with pkgs; [ | ||||
|         nodePackages_latest.nodejs | ||||
|       ]; | ||||
|       plugins = with pkgs.vimPlugins; [ | ||||
|         vim-fugitive | ||||
|         undotree | ||||
| @@ -43,8 +40,8 @@ | ||||
|         ])) | ||||
|       ]; | ||||
|       extraLuaConfig = '' | ||||
|         ${builtins.readFile ./plugins.lua} | ||||
|         ${builtins.readFile ./options.lua} | ||||
|         ${builtins.readFile ./plugins.lua} | ||||
|         ${builtins.readFile ./keybinds.lua} | ||||
|       ''; | ||||
|     }; | ||||
|   | ||||
| @@ -11,8 +11,3 @@ vim.o.relativenumber = true | ||||
| vim.o.tabstop = 4 | ||||
| vim.o.shiftwidth = 4 | ||||
| vim.o.expandtab = true | ||||
|  | ||||
| vim.o.termguicolors = true | ||||
|  | ||||
| vim.o.list = true | ||||
| vim.o.listchars = 'tab:» ,trail:·,extends:»,precedes:«,nbsp:␣' | ||||
|   | ||||
| @@ -17,7 +17,7 @@ lsp_zero.format_on_save({ | ||||
| 		['gopls'] = { 'go' }, | ||||
| 		['nil_ls'] = { 'nix' }, | ||||
| 		['lua_ls'] = { 'lua' }, | ||||
| 		['ts_ls'] = { 'typescript', 'javascript', 'typescriptreact' }, | ||||
| 		['ts_ls'] = { 'typescript', 'javascript' }, | ||||
| 	}, | ||||
| }) | ||||
| -- LSP: go | ||||
| @@ -120,7 +120,6 @@ lspconfig.ts_ls.setup({ | ||||
| 	filetypes = { | ||||
| 		"typescript", | ||||
| 		"javascript", | ||||
| 		"typescriptreact", | ||||
| 	}, | ||||
| }) | ||||
|  | ||||
| @@ -298,6 +297,6 @@ cmp.setup({ | ||||
|  | ||||
|  | ||||
| -- Colorscheme | ||||
| require('catppuccin').setup { | ||||
| } | ||||
| require('catppuccin').setup({ | ||||
| }) | ||||
| vim.cmd.colorscheme "catppuccin" | ||||
|   | ||||
| @@ -31,7 +31,6 @@ | ||||
|           ./scripts | ||||
|           ./services/backup-home.nix | ||||
|           ./services/ghettoptt.nix | ||||
|           ./services/natstonotify.nix | ||||
|           ./sops | ||||
|           ./ssh | ||||
|           ./zsh | ||||
|   | ||||
| @@ -1,34 +1,22 @@ | ||||
| { | ||||
|   inputs, | ||||
|   pkgs, | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: | ||||
| let | ||||
|   lockhelper = pkgs.callPackage ../scripts/lockhelper.nix { }; | ||||
|   monitorTopDesc = "BNQ G2420HDBL T2B04424SL000"; | ||||
|   monitorTopName = "desc:${monitorTopDesc}"; | ||||
|   monitorTopHash = builtins.substring 0 8 (builtins.hashString "sha256" monitorTopDesc); | ||||
|  | ||||
|   monitorLeftDesc = "Samsung Electric Company LS27A600U HNMT502389"; | ||||
|   monitorLeftName = "desc:${monitorLeftDesc}"; | ||||
|   monitorLeftHash = builtins.substring 0 8 (builtins.hashString "sha256" monitorLeftDesc); | ||||
|  | ||||
|   monitorCenterDesc = "Acer Technologies XB271HU #ASPVEKfgZ8Dd"; | ||||
|   monitorCenterName = "desc:${monitorCenterDesc}"; | ||||
|   monitorCenterHash = builtins.substring 0 8 (builtins.hashString "sha256" monitorCenterDesc); | ||||
|  | ||||
|   monitorRightDesc = "Samsung Electric Company LS27A600U HNMT502390"; | ||||
|   monitorRightName = "desc:${monitorRightDesc}"; | ||||
|   monitorRightHash = builtins.substring 0 8 (builtins.hashString "sha256" monitorRightDesc); | ||||
|  | ||||
| in | ||||
| { | ||||
|   imports = [ | ||||
|     ./hyprlock.nix | ||||
|     ./hypridle.nix | ||||
|   ]; | ||||
|   options.hyprland.enable = lib.mkEnableOption "Hyprland"; | ||||
|   config = { | ||||
|     home.packages = with pkgs; [ | ||||
|       dunst | ||||
|       rofi | ||||
|       # hyprlock | ||||
|       hyprpaper | ||||
|       rofi-wayland | ||||
|       slurp | ||||
|       swww | ||||
|       waybar | ||||
| @@ -40,175 +28,35 @@ in | ||||
|       libsForQt5.qt5ct | ||||
|     ]; | ||||
|  | ||||
|     services.hyprpaper = { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         splash = false; | ||||
|       }; | ||||
|     }; | ||||
|     services.hypridle = { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         general = { | ||||
|           lock_cmd = "${pkgs.hyprlock}/bin/hyprlock"; | ||||
|           before_sleep_cmd = "${lockhelper}/bin/lockhelper"; | ||||
|           ignore_dbus_inhibit = false; | ||||
|         }; | ||||
|         listener = { | ||||
|           timeout = 240; | ||||
|           on-timeout = "${lockhelper}/bin/lockhelper"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|  | ||||
|     programs.hyprlock = { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         background = [ | ||||
|           { | ||||
|             monitor = monitorTopName; | ||||
|             # path = "/tmp/lockscreen/${monitorTopHash}.png"; | ||||
|             path = "screenshot"; | ||||
|             color = "rgba(17, 17, 17, 1.0)"; | ||||
|             blur_passes = 3; | ||||
|             contrast = 0.8916; | ||||
|             brightness = 0.8172; | ||||
|             vibrancy = 0.1696; | ||||
|             vibrancy_darkness = 0.0; | ||||
|           } | ||||
|           { | ||||
|             monitor = monitorLeftName; | ||||
|             # path = "/tmp/lockscreen/${monitorLeftHash}.png"; | ||||
|             path = "screenshot"; | ||||
|             color = "rgba(17, 17, 17, 1.0)"; | ||||
|             blur_passes = 3; | ||||
|             contrast = 0.8916; | ||||
|             brightness = 0.8172; | ||||
|             vibrancy = 0.1696; | ||||
|             vibrancy_darkness = 0.0; | ||||
|             zindex = 1; | ||||
|           } | ||||
|           { | ||||
|             monitor = monitorCenterName; | ||||
|             # path = "/tmp/lockscreen/${monitorCenterHash}.png"; | ||||
|             path = "screenshot"; | ||||
|             color = "rgba(17, 17, 17, 1.0)"; | ||||
|             blur_passes = 3; | ||||
|             contrast = 0.8916; | ||||
|             brightness = 0.8172; | ||||
|             vibrancy = 0.1696; | ||||
|             vibrancy_darkness = 0.0; | ||||
|           } | ||||
|           { | ||||
|             monitor = monitorRightName; | ||||
|             # path = "/tmp/lockscreen/${monitorRightHash}.png"; | ||||
|             path = "screenshot"; | ||||
|             color = "rgba(17, 17, 17, 1.0)"; | ||||
|             blur_passes = 3; | ||||
|             contrast = 0.8916; | ||||
|             brightness = 0.8172; | ||||
|             vibrancy = 0.1696; | ||||
|             vibrancy_darkness = 0.0; | ||||
|           } | ||||
|         ]; | ||||
|  | ||||
|         general = { | ||||
|           grace = 0; | ||||
|         }; | ||||
|  | ||||
|         input-field = [ | ||||
|           { | ||||
|             size = "250, 60"; | ||||
|             outline_thickness = 2; | ||||
|             dots_size = 0.2; | ||||
|             dots_spacing = 0.2; | ||||
|             dots_center = true; | ||||
|             outer_color = "rgba(0, 0, 0, 0)"; | ||||
|             inner_color = "rgba(0, 0, 0, 0.5)"; | ||||
|             font_color = "rgb(200, 200, 200)"; | ||||
|             fade_on_empty = false; | ||||
|             font_family = "JetBrains Mono Nerd Font Mono"; | ||||
|             placeholder_text = "<i><span foreground=\"##cdd6f4\">Input Password...</span></i>"; | ||||
|             hide_input = false; | ||||
|             position = "0, -120"; | ||||
|             halign = "center"; | ||||
|             valign = "center"; | ||||
|           } | ||||
|         ]; | ||||
|  | ||||
|         label = [ | ||||
|           { | ||||
|             text = "cmd[update:2000] echo \"$(date +\"%b %d %H:%M\")\""; | ||||
|             color = "rgba(255, 255, 255, 0.6)"; | ||||
|             font_size = 120; | ||||
|             font_family = "JetBrains Mono Nerd Font Mono ExtraBold"; | ||||
|             position = "0, -300"; | ||||
|             halign = "center"; | ||||
|             valign = "top"; | ||||
|           } | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
|  | ||||
|     # streamcontroller service | ||||
|  | ||||
|     systemd.user.services = { | ||||
|       streamcontroller = { | ||||
|         Unit = { | ||||
|           Description = "Streamcontroller service"; | ||||
|           PartOf = [ "graphical-session.target" ]; | ||||
|           After = [ "graphical-session.target" ]; | ||||
|           Requisite = [ "graphical-session.target" ]; | ||||
|         }; | ||||
|  | ||||
|         Service = { | ||||
|           ExecStart = "${pkgs.streamcontroller}/bin/streamcontroller -b"; | ||||
|           Restart = "on-failure"; | ||||
|         }; | ||||
|  | ||||
|         Install = { | ||||
|           WantedBy = [ "graphical-session.target" ]; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|  | ||||
|     wayland.windowManager.hyprland = { | ||||
|       enable = true; | ||||
|       package = pkgs.hyprland; | ||||
|       systemd.enable = false; | ||||
|       settings = { | ||||
|         "$mainMod" = "SUPER"; | ||||
|         "$shiftMainMod" = "SUPER_SHIFT"; | ||||
|         "$term" = "kitty"; | ||||
|  | ||||
|         # monitors | ||||
|         "$mon_top" = monitorTopName; | ||||
|         "$mon_left" = monitorLeftName; | ||||
|         "$mon_center" = monitorCenterName; | ||||
|         "$mon_right" = monitorRightName; | ||||
|         "$mon_top" = "desc:BNQ G2420HDBL T2B04424SL000"; | ||||
|         "$mon_left" = "desc:Samsung Electric Company LS27A600U HNMT502389"; | ||||
|         "$mon_center" = "desc:Acer Technologies XB271HU #ASPVEKfgZ8Dd"; | ||||
|         "$mon_right" = "desc:Samsung Electric Company LS27A600U HNMT502390"; | ||||
|  | ||||
|         monitor = [ | ||||
|           "$mon_top,1920x1080@60,2560x0,1" # top T2B04424SL000 | ||||
|           # "DP-8,1920x1080@60,2560x0,1" # top T2B04424SL000 60 | ||||
|           "$mon_left,2560x1440@75,0x1080,1" # left | ||||
|           # "DP-6,2560x1440@75,0x1080,1" # left 75hz | ||||
|           "$mon_center,2560x1440@120,2560x1080,1" # main #ASPVEKfgZ8Dd | ||||
|           # "DP-4,2560x1440@144,2560x1080,1" # main #ASPVEKfgZ8Dd 120hz | ||||
|           "$mon_right,2560x1440@75,5120x1080,1" # right | ||||
|           # "DP-7,2560x1440@75,5120x1080,1" # right 75hz | ||||
|           # "$mon_top,1920x1080@60,2560x0,1" # top T2B04424SL000 | ||||
|           "DP-6,1920x1080@60,2560x0,1" # top T2B04424SL000 60 | ||||
|           # "$mon_left,2560x1440@75,0x1080,1" # left | ||||
|           "DP-8,2560x1440@75,0x1080,1" # left 75hz | ||||
|           # "$mon_center,2560x1440@120,2560x1080,1" # main #ASPVEKfgZ8Dd | ||||
|           "DP-5,2560x1440@144,2560x1080,1" # main #ASPVEKfgZ8Dd 120hz | ||||
|           # "$mon_right,2560x1440@75,5120x1080,1" # right | ||||
|           "DP-7,2560x1440@75,5120x1080,1" # right 75hz | ||||
|         ]; | ||||
|         input = { | ||||
|           kb_layout = "no"; | ||||
|           follow_mouse = 1; | ||||
|         }; | ||||
|  | ||||
|         device = [ | ||||
|           { | ||||
|             name = "wacom-one-by-wacom-m-pen"; | ||||
|             output = "$mon_center"; | ||||
|           } | ||||
|         ]; | ||||
|  | ||||
|         cursor = { | ||||
|           no_hardware_cursors = true; | ||||
|         }; | ||||
| @@ -223,6 +71,9 @@ in | ||||
|  | ||||
|         decoration = { | ||||
|           rounding = 10; | ||||
|           drop_shadow = true; | ||||
|           shadow_range = 4; | ||||
|           shadow_render_power = 3; | ||||
|           blur = { | ||||
|             enabled = true; | ||||
|             size = 3; | ||||
| @@ -238,17 +89,12 @@ in | ||||
|           layout = "dwindle"; | ||||
|         }; | ||||
|  | ||||
|         ecosystem = { | ||||
|           no_update_news = true; | ||||
|         }; | ||||
|  | ||||
|         animations = { | ||||
|           enabled = true; | ||||
|           bezier = [ | ||||
|             "myBezier, 0.05, 0.9, 0.1, 1.05" | ||||
|             "easeInB, 0.6, -0.28, 0.735, 0.045" | ||||
|           ]; | ||||
|  | ||||
|           animation = [ | ||||
|             "windows, 1, 7, myBezier" | ||||
|             "windowsOut, 1, 7, default, popin 80%" | ||||
| @@ -259,17 +105,14 @@ in | ||||
|             "specialWorkspace, 1, 4, default, fade" | ||||
|           ]; | ||||
|         }; | ||||
|  | ||||
|         dwindle = { | ||||
|           pseudotile = true; | ||||
|           preserve_split = true; | ||||
|           special_scale_factor = 0.85; | ||||
|         }; | ||||
|  | ||||
|         master = { | ||||
|           new_status = "master"; | ||||
|         }; | ||||
|  | ||||
|         misc = { | ||||
|           force_default_wallpaper = 0; | ||||
|           disable_hyprland_logo = true; | ||||
| @@ -311,7 +154,7 @@ in | ||||
|           "$mainMod,Return,exec,$term" | ||||
|  | ||||
|           # hyprlock | ||||
|           "$shiftMainMod,l,exec,${lockhelper}/bin/lockhelper" | ||||
|           "$shiftMainMod,l,exec,lockhelper" | ||||
|  | ||||
|           # rofi | ||||
|           "$mainMod,D,exec,rofi-launcher" | ||||
| @@ -374,6 +217,12 @@ in | ||||
|         ]; | ||||
|  | ||||
|         exec-once = [ | ||||
|           "waybar" | ||||
|           "hyprpaper & sleep 10 && randomwp" | ||||
|           "easyeffects --gapplication-service" | ||||
|           "hypridle" | ||||
|           "streamcontroller -b" | ||||
|           # "dunst" | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
|   | ||||
| @@ -1,16 +1,22 @@ | ||||
| { | ||||
|   inputs, | ||||
|   pkgs, | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: | ||||
| { | ||||
|   imports = [ | ||||
|     ./hyprlock.nix | ||||
|     ./hypridle.nix | ||||
|   ]; | ||||
|   options.hyprland.enable = lib.mkEnableOption "Hyprland"; | ||||
|   config = { | ||||
|     home.packages = with pkgs; [ | ||||
|       dunst | ||||
|       # hyprlock | ||||
|       hyprpaper | ||||
|       rofi | ||||
|       rofi-wayland | ||||
|       slurp | ||||
|       swww | ||||
|       waybar | ||||
| @@ -22,82 +28,6 @@ | ||||
|       libsForQt5.qt5ct | ||||
|     ]; | ||||
|  | ||||
|     services.hyprpaper = { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         splash = false; | ||||
|       }; | ||||
|     }; | ||||
|  | ||||
|     services.hypridle = { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         general = { | ||||
|           lock_cmd = "${pkgs.hyprlock}/bin/hyprlock"; | ||||
|           before_sleep_cmd = "${pkgs.hyprlock}/bin/hyprlock"; | ||||
|           ignore_dbus_inhibit = false; | ||||
|         }; | ||||
|         listener = { | ||||
|           timeout = 240; | ||||
|           on-timeout = "${pkgs.hyprlock}/bin/hyprlock"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|  | ||||
|     programs.hyprlock = { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         background = [ | ||||
|           { | ||||
|             monitor = ""; | ||||
|             path = "screenshot"; | ||||
|             color = "rgba(17, 17, 17, 1.0)"; | ||||
|             blur_passes = 3; | ||||
|             contrast = 0.8916; | ||||
|             brightness = 0.8172; | ||||
|             vibrancy = 0.1696; | ||||
|             vibrancy_darkness = 0.0; | ||||
|           } | ||||
|         ]; | ||||
|  | ||||
|         general = { | ||||
|           grace = 0; | ||||
|         }; | ||||
|  | ||||
|         input-field = [ | ||||
|           { | ||||
|             size = "250, 60"; | ||||
|             outline_thickness = 2; | ||||
|             dots_size = 0.2; | ||||
|             dots_spacing = 0.2; | ||||
|             dots_center = true; | ||||
|             outer_color = "rgba(0, 0, 0, 0)"; | ||||
|             inner_color = "rgba(0, 0, 0, 0.5)"; | ||||
|             font_color = "rgb(200, 200, 200)"; | ||||
|             fade_on_empty = false; | ||||
|             font_family = "JetBrains Mono Nerd Font Mono"; | ||||
|             placeholder_text = "<i><span foreground=\"##cdd6f4\">Input Password...</span></i>"; | ||||
|             hide_input = false; | ||||
|             position = "0, -120"; | ||||
|             halign = "center"; | ||||
|             valign = "center"; | ||||
|           } | ||||
|         ]; | ||||
|  | ||||
|         label = [ | ||||
|           { | ||||
|             text = "cmd[update:2000] echo \"$(date +\"%b %d %H:%M\")\""; | ||||
|             color = "rgba(255, 255, 255, 0.6)"; | ||||
|             font_size = 120; | ||||
|             font_family = "JetBrains Mono Nerd Font Mono ExtraBold"; | ||||
|             position = "0, -300"; | ||||
|             halign = "center"; | ||||
|             valign = "top"; | ||||
|           } | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
|  | ||||
|     wayland.windowManager.hyprland = { | ||||
|       enable = true; | ||||
|       package = pkgs.hyprland; | ||||
| @@ -116,6 +46,9 @@ | ||||
|  | ||||
|         decoration = { | ||||
|           rounding = 10; | ||||
|           drop_shadow = true; | ||||
|           shadow_range = 4; | ||||
|           shadow_render_power = 3; | ||||
|           blur = { | ||||
|             enabled = true; | ||||
|             size = 3; | ||||
| @@ -157,10 +90,6 @@ | ||||
|           disable_hyprland_logo = true; | ||||
|         }; | ||||
|  | ||||
|         ecosystem = { | ||||
|           no_update_news = true; | ||||
|         }; | ||||
|  | ||||
|         windowrulev2 = [ | ||||
|           "opacity 0.95 override 0.7 override,class:^(Alacritty)$" | ||||
|           "opacity 0.95 override 0.7 override,class:^(kitty)$" | ||||
| @@ -170,12 +99,13 @@ | ||||
|           "special:special, on-created-empty:kitty, rounding:true, decorate:false, border:false" | ||||
|         ]; | ||||
|  | ||||
|         bindm = [ | ||||
|           "$mainMod,mouse:272,movewindow" | ||||
|           "$shiftMainMod,mouse:272,resizewindow" | ||||
|         ]; | ||||
|         bindm = [ "ALT,mouse:272,movewindow" ]; | ||||
|  | ||||
|         bindr = [ | ||||
|           # mumble ptt release | ||||
|           # ",code:202,exec,mumble rpc stoptalking" | ||||
|           # ",code:202,exec,pamixer --source 63 -m" | ||||
|           # ",code:202,exec,sleep 0.5 && pamixer --default-source -m" | ||||
|         ]; | ||||
|  | ||||
|         bind = [ | ||||
| @@ -187,7 +117,7 @@ | ||||
|           "$mainMod,P,exec,rofi-rbw" | ||||
|  | ||||
|           # hyprlock | ||||
|           "$shiftMainMod,l,exec,${pkgs.hyprlock}/bin/hyprlock" | ||||
|           "$shiftMainMod,l,exec,lockhelper" | ||||
|  | ||||
|           # hyprland | ||||
|           "$mainMod,Q,killactive," | ||||
| @@ -210,6 +140,12 @@ | ||||
|           # Force opacity | ||||
|           "$shiftMainMod,o,exec, hl-no-opacity" | ||||
|  | ||||
|           # mumble ptt click | ||||
|           # ",code:202,exec,mumble rpc starttalking" | ||||
|           #",code:202,pass,^(info\.mumble\.Mumble)$" | ||||
|           # ",code:202,exec,pamixer --default-source -u" | ||||
|           # ",code:202,pass,^discord$" | ||||
|  | ||||
|           # worspace switching | ||||
|           "$mainMod,1,workspace,1" | ||||
|           "$mainMod,2,workspace,2" | ||||
| @@ -224,6 +160,10 @@ | ||||
|         ]; | ||||
|  | ||||
|         exec-once = [ | ||||
|           "waybar" | ||||
|           "hyprpaper & sleep 2 && randomwp" | ||||
|           "hypridle" | ||||
|           # "dunst" | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
|   | ||||
| @@ -6,7 +6,6 @@ from datetime import datetime, date, timedelta | ||||
|  | ||||
| SECRET_DIR = "/home/torjus/.config/sops-nix/secrets" | ||||
|  | ||||
|  | ||||
| def sonarr_url(): | ||||
|     xdg_dir = os.environ["XDG_RUNTIME_DIR"] | ||||
|     if not xdg_dir: | ||||
| @@ -14,31 +13,26 @@ def sonarr_url(): | ||||
|     with open(f"{SECRET_DIR}/sonarr_base_url") as f: | ||||
|         return f.read().strip() | ||||
|  | ||||
|  | ||||
| def radarr_url(): | ||||
|     with open(f"{SECRET_DIR}/radarr_base_url") as f: | ||||
|         return f.read().strip() | ||||
|  | ||||
|  | ||||
| def make_header(api_key: str): | ||||
|     return {"X-Api-Key": api_key, "Accept": "application/json"} | ||||
|  | ||||
|  | ||||
| def get_sonarr_key(): | ||||
|     with open(f"{SECRET_DIR}/sonarr_api_key") as f: | ||||
|         return f.read().strip() | ||||
|  | ||||
|  | ||||
| def get_radarr_key(): | ||||
|     with open(f"{SECRET_DIR}/radarr_api_key") as f: | ||||
|         return f.read().strip() | ||||
|  | ||||
|  | ||||
| def get_sonarr_history(since: datetime | None = None): | ||||
| def get_sonarr_history(since: datetime|None=None): | ||||
|     api_key = get_sonarr_key() | ||||
|     if not since: | ||||
|         since = datetime.combine(date.today() - timedelta(days=1), datetime.min.time()) | ||||
|     url = f"{sonarr_url()}/api/v3/history/since" | ||||
|         since = datetime.combine(date.today()-timedelta(days=1),datetime.min.time()) | ||||
|     url = f"{sonarr_url()}/api/history/since" | ||||
|     url += f"?date={since.isoformat()}" | ||||
|     response = requests.get(url, headers=make_header(api_key)) | ||||
|     response.raise_for_status() | ||||
| @@ -50,11 +44,10 @@ def get_sonarr_history(since: datetime | None = None): | ||||
|             items.append(item["sourceTitle"]) | ||||
|     return items | ||||
|  | ||||
|  | ||||
| def get_radarr_history(since: datetime | None = None): | ||||
| def get_radarr_history(since: datetime|None=None): | ||||
|     api_key = get_radarr_key() | ||||
|     if not since: | ||||
|         since = datetime.combine(date.today() - timedelta(days=7), datetime.min.time()) | ||||
|         since = datetime.combine(date.today()-timedelta(days=7),datetime.min.time()) | ||||
|     url = f"{radarr_url()}/api/v3/history/since" | ||||
|     url += f"?date={since.isoformat()}" | ||||
|     response = requests.get(url, headers=make_header(api_key)) | ||||
| @@ -67,17 +60,12 @@ def get_radarr_history(since: datetime | None = None): | ||||
|             items.append(item["sourceTitle"]) | ||||
|     return items | ||||
|  | ||||
|  | ||||
| if __name__ == "__main__": | ||||
|     sonarr_items = get_sonarr_history() | ||||
|     radarr_items = get_radarr_history() | ||||
|  | ||||
|     output = { | ||||
|         "text": f"Son: {len(sonarr_items)}|Rad: {len(radarr_items)}", | ||||
|         "tooltip": "Radarr: \n" | ||||
|         + "\n".join(radarr_items) | ||||
|         + "\n" | ||||
|         + "Sonarr: \n" | ||||
|         + "\n".join(sonarr_items), | ||||
|         "tooltip": "Radarr: \n" + "\n".join(radarr_items) + "\n" + "Sonarr: \n" + "\n".join(sonarr_items) | ||||
|     } | ||||
|     print(json.dumps(output)) | ||||
|   | ||||
| @@ -5,6 +5,14 @@ | ||||
|   ... | ||||
| }: | ||||
| let | ||||
|   flakestat = pkgs.writeShellApplication { | ||||
|     name = "flakestat"; | ||||
|     runtimeInputs = with pkgs; [ | ||||
|       git | ||||
|       jq | ||||
|     ]; | ||||
|     text = builtins.readFile ./flakestat.sh; | ||||
|   }; | ||||
|   arrhist = pkgs.stdenv.mkDerivation { | ||||
|     name = "arrhist"; | ||||
|     propagatedBuildInputs = [ | ||||
| @@ -37,7 +45,7 @@ in | ||||
|   programs.waybar = { | ||||
|     enable = true; | ||||
|     systemd = { | ||||
|       enable = true; # disable it,autostart it in hyprland conf | ||||
|       enable = false; # disable it,autostart it in hyprland conf | ||||
|       target = "graphical-session.target"; | ||||
|     }; | ||||
|     style = '' | ||||
| @@ -137,6 +145,7 @@ in | ||||
|       #network, | ||||
|       #battery, | ||||
|       #custom-powermenu, | ||||
|       #custom-flakestat, | ||||
|       #custom-arrhist { | ||||
|         padding-left: 12px; | ||||
|         padding-right: 12px; | ||||
| @@ -158,6 +167,7 @@ in | ||||
|         { | ||||
|           "layer" = "top"; | ||||
|           "position" = "top"; | ||||
|           modules-left = [ "custom/flakestat" ]; | ||||
|           modules-center = [ "hyprland/workspaces" ]; | ||||
|           modules-right = [ | ||||
|             (lib.mkIf (withArrhist) "custom/arrhist") | ||||
| @@ -235,6 +245,12 @@ in | ||||
|               "" | ||||
|             ]; | ||||
|           }; | ||||
|           "custom/flakestat" = { | ||||
|             "exec" = "${flakestat}/bin/flakestat"; | ||||
|             "format" = "  {}"; | ||||
|             "return-type" = "json"; | ||||
|             "interval" = 600; | ||||
|           }; | ||||
|         } | ||||
|         // lib.optionalAttrs (withArrhist) { | ||||
|           "custom/arrhist" = { | ||||
|   | ||||
							
								
								
									
										55
									
								
								home/hyprland/waybar/flakestat.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								home/hyprland/waybar/flakestat.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| #!/usr/bin/env bash | ||||
| set -eo pipefail | ||||
|  | ||||
| # Args: | ||||
| # $1 text | ||||
| # $2 tooltip | ||||
| # $3 error-code | ||||
| print_output() { | ||||
|     local text="$1" | ||||
|     local tooltip="$2" | ||||
|     local error_code="$3" | ||||
|  | ||||
|     if [ -z "$error_code" ]; then | ||||
|         output=$(jq -n \ | ||||
|             --arg text "$text" \ | ||||
|             --arg tooltip "$tooltip" \ | ||||
|             --unbuffered \ | ||||
|             --compact-output \ | ||||
|             '{text: $text, tooltip: $tooltip}') | ||||
|     else | ||||
|         output=$(jq -n \ | ||||
|             --arg text "$text" \ | ||||
|             --arg tooltip "$tooltip" \ | ||||
|             --unbuffered \ | ||||
|             --compact-output \ | ||||
|             '{text: $text, tooltip: $tooltip}') | ||||
|     fi | ||||
|      | ||||
|     echo "$output" | ||||
| } | ||||
|  | ||||
| FLAKE_DIR="/home/torjus/nixos" | ||||
| NIXPKGS_DIR="/home/torjus/git/nixpkgs" | ||||
|  | ||||
| flake_metadata=$(nix flake metadata --json "$FLAKE_DIR" 2>/dev/null) | ||||
|  | ||||
| unstable_input=$(echo "$flake_metadata" | jq '.locks.nodes.root.inputs.nixpkgs') | ||||
| unstable_rev=$(echo "$flake_metadata" | jq -r ".locks.nodes.$unstable_input.locked.rev") | ||||
| unstable_branch=$(echo "$flake_metadata" | jq -r ".locks.nodes.$unstable_input.original.ref") | ||||
|  | ||||
| cd "$NIXPKGS_DIR" || print_output "?" "Could not find git repo dir" 1 | ||||
| if ! git fetch -q --all; then | ||||
|     print_output "?" "Unable to fetch commits" 1 | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| if ! unstable_commit_count=$(git rev-list --count "$unstable_rev..origin/$unstable_branch"); then | ||||
|     print_output "?" "Unable to list commits" 1 | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| text="$unstable_commit_count" | ||||
| tooltip="${unstable_branch}: ${unstable_commit_count}" | ||||
|  | ||||
| print_output "$text" "$tooltip" 0 | ||||
| @@ -27,6 +27,7 @@ | ||||
|           ./programs/obs-studio | ||||
|           ./programs/vscode | ||||
|           ./programs/pywal | ||||
|           ./programs/zellij | ||||
|           ./scripts | ||||
|           ./scripts/batlvl.nix | ||||
|           ./zsh | ||||
|   | ||||
| @@ -5,14 +5,13 @@ in | ||||
| { | ||||
|   imports = [ | ||||
|     ./zoom.nix | ||||
|     ./tacl.nix | ||||
|   ]; | ||||
|   home.packages = with pkgs; [ | ||||
|     # CLI utils | ||||
|     act | ||||
|     age | ||||
|     bat | ||||
|     bzip2 | ||||
|     chromium | ||||
|     croc | ||||
|     devenv | ||||
|     distrobox | ||||
| @@ -23,8 +22,10 @@ in | ||||
|     ffmpeg | ||||
|     file | ||||
|     fzf | ||||
|     glib | ||||
|     grimblast | ||||
|     ijq | ||||
|     incus | ||||
|     jq | ||||
|     kitty | ||||
|     kubectl | ||||
| @@ -34,22 +35,21 @@ in | ||||
|     nvd | ||||
|     nurl | ||||
|     nwg-look | ||||
|     mosh | ||||
|     most | ||||
|     pinentry | ||||
|     pre-commit | ||||
|     pulseaudio | ||||
|     pulsemixer | ||||
|     rbw | ||||
|     restic | ||||
|     ripgrep | ||||
|     sidequest | ||||
|     sops | ||||
|     sshfs | ||||
|     step-cli | ||||
|     tea | ||||
|     tldr | ||||
|     tokei | ||||
|     unzip | ||||
|     ventoy | ||||
|     wtype | ||||
|  | ||||
|     # Non-CLI stuff | ||||
| @@ -60,27 +60,30 @@ in | ||||
|     mpv | ||||
|     mumble | ||||
|     pamixer | ||||
|     pwvucontrol | ||||
|     (prismlauncher.override { | ||||
|       jdks = [ | ||||
|         jdk21 | ||||
|         jdk17 | ||||
|         jdk8 | ||||
|         temurin-jre-bin-25 | ||||
|         temurin-jre-bin-17 | ||||
|       ]; | ||||
|     }) | ||||
|     rofi-rbw-wayland | ||||
|     spicetify-cli | ||||
|     spotify | ||||
|     tcpdump | ||||
|     virt-manager | ||||
|     # omnissa-horizon-client | ||||
|     vmware-horizon-client | ||||
|     yt-dlp | ||||
|  | ||||
|     # k8s tools | ||||
|     cilium-cli | ||||
|     cmctl | ||||
|     k9s | ||||
|     krew | ||||
|     kubernetes-helm | ||||
|     talosctl | ||||
|  | ||||
|     # Go stuff | ||||
|     go | ||||
|     gopls | ||||
|     delve | ||||
|     gopls | ||||
|  | ||||
|     # js/ts | ||||
|     nodejs | ||||
|     nodePackages.pnpm | ||||
|     typescript | ||||
|  | ||||
|     # Py stuff | ||||
|     (python312.withPackages ( | ||||
| @@ -89,7 +92,7 @@ in | ||||
|         ipython | ||||
|       ] | ||||
|     )) | ||||
|     uv | ||||
|     poetry | ||||
|     ruff | ||||
|  | ||||
|     # rust stuff | ||||
| @@ -103,20 +106,13 @@ in | ||||
|     nixprstatus | ||||
|  | ||||
|     # Stuff with overrides | ||||
|     # Btop | ||||
|     (btop.override { cudaSupport = withCuda; }) | ||||
|     # PrismLauncher | ||||
|     prismlauncher | ||||
|  | ||||
|     # Extract logcli from grafana-loki | ||||
|     (pkgs.linkFarm "logcli" [ | ||||
|       { | ||||
|         name = "bin/logcli"; | ||||
|         path = "${pkgs.grafana-loki}/bin/logcli"; | ||||
|       } | ||||
|     ]) | ||||
|     (lutris.override { | ||||
|       extraLibraries = pkgs: [ | ||||
|         nspr | ||||
|         xorg.libXdamage | ||||
|       ]; | ||||
|     }) | ||||
|     # From nix-packages flake | ||||
|     path-of-building-beta | ||||
|     awakened-poe-trade | ||||
|   ]; | ||||
| } | ||||
|   | ||||
| @@ -1,30 +0,0 @@ | ||||
| { pkgs, ... }: | ||||
| { | ||||
|   home.packages = [ | ||||
|     (pkgs.python3Packages.buildPythonApplication rec { | ||||
|       pname = "tacl"; | ||||
|       version = "3.9.0"; | ||||
|       pyproject = true; | ||||
|  | ||||
|       src = pkgs.fetchFromGitHub { | ||||
|         owner = "unioslo"; | ||||
|         repo = "tsd-api-client"; | ||||
|         rev = "v${version}"; | ||||
|         sha256 = "sha256-R8fSAhpdjspIoLy3m6NnHZBCBTSLQGWOqAiDkBZlWOc="; | ||||
|       }; | ||||
|  | ||||
|       build-system = with pkgs.python3Packages; [ | ||||
|         poetry-core | ||||
|         poetry-dynamic-versioning | ||||
|       ]; | ||||
|       dependencies = with pkgs.python3Packages; [ | ||||
|         pyyaml | ||||
|         click | ||||
|         humanfriendly | ||||
|         libnacl | ||||
|         requests | ||||
|         rich | ||||
|       ]; | ||||
|     }) | ||||
|   ]; | ||||
| } | ||||
| @@ -1,107 +0,0 @@ | ||||
| { | ||||
|   lib, | ||||
|   stdenv, | ||||
|   fetchurl, | ||||
|   makeWrapper, | ||||
|   makeDesktopItem, | ||||
|   copyDesktopItems, | ||||
|   xorg, | ||||
|   gtk2, | ||||
|   sqlite, | ||||
|   openal, | ||||
|   cairo, | ||||
|   libGLU, | ||||
|   SDL2, | ||||
|   freealut, | ||||
|   libglvnd, | ||||
|   pipewire, | ||||
|   libpulseaudio, | ||||
|   dotnet-runtime_8, | ||||
| }: | ||||
|  | ||||
| stdenv.mkDerivation rec { | ||||
|   pname = "vintagestory"; | ||||
|   version = "1.20.0-rc.8"; | ||||
|  | ||||
|   src = fetchurl { | ||||
|     url = "https://cdn.vintagestory.at/gamefiles/unstable/vs_client_linux-x64_${version}.tar.gz"; | ||||
|     hash = "sha256-/MPR6PAkZv93zT6YbJatg67aRYfzp9vFRY82gtVksAs="; | ||||
|   }; | ||||
|  | ||||
|   nativeBuildInputs = [ | ||||
|     makeWrapper | ||||
|     copyDesktopItems | ||||
|   ]; | ||||
|  | ||||
|   buildInputs = [ dotnet-runtime_8 ]; | ||||
|  | ||||
|   runtimeLibs = lib.makeLibraryPath ( | ||||
|     [ | ||||
|       gtk2 | ||||
|       sqlite | ||||
|       openal | ||||
|       cairo | ||||
|       libGLU | ||||
|       SDL2 | ||||
|       freealut | ||||
|       libglvnd | ||||
|       pipewire | ||||
|       libpulseaudio | ||||
|     ] | ||||
|     ++ (with xorg; [ | ||||
|       libX11 | ||||
|       libXi | ||||
|       libXcursor | ||||
|     ]) | ||||
|   ); | ||||
|  | ||||
|   desktopItems = [ | ||||
|     (makeDesktopItem { | ||||
|       name = "vintagestory"; | ||||
|       desktopName = "Vintage Story"; | ||||
|       exec = "vintagestory"; | ||||
|       icon = "vintagestory"; | ||||
|       comment = "Innovate and explore in a sandbox world"; | ||||
|       categories = [ "Game" ]; | ||||
|     }) | ||||
|   ]; | ||||
|  | ||||
|   installPhase = '' | ||||
|     runHook preInstall | ||||
|  | ||||
|     mkdir -p $out/share/vintagestory $out/bin $out/share/pixmaps $out/share/fonts/truetype | ||||
|     cp -r * $out/share/vintagestory | ||||
|     cp $out/share/vintagestory/assets/gameicon.xpm $out/share/pixmaps/vintagestory.xpm | ||||
|     cp $out/share/vintagestory/assets/game/fonts/*.ttf $out/share/fonts/truetype | ||||
|  | ||||
|     runHook postInstall | ||||
|   ''; | ||||
|  | ||||
|   preFixup = '' | ||||
|     sed -i 's/net7.0/net8.0/' $out/share/vintagestory/Vintagestory.runtimeconfig.json | ||||
|     sed -i 's/7.0.0/8.0.11/' $out/share/vintagestory/Vintagestory.runtimeconfig.json | ||||
|  | ||||
|     makeWrapper ${dotnet-runtime_8}/bin/dotnet $out/bin/vintagestory \ | ||||
|       --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \ | ||||
|       --add-flags $out/share/vintagestory/Vintagestory.dll | ||||
|     makeWrapper ${dotnet-runtime_8}/bin/dotnet $out/bin/vintagestory-server \ | ||||
|       --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \ | ||||
|       --add-flags $out/share/vintagestory/VintagestoryServer.dll | ||||
|   '' | ||||
|   + '' | ||||
|     find "$out/share/vintagestory/assets/" -not -path "*/fonts/*" -regex ".*/.*[A-Z].*" | while read -r file; do | ||||
|       local filename="$(basename -- "$file")" | ||||
|       ln -sf "$filename" "''${file%/*}"/"''${filename,,}" | ||||
|     done | ||||
|   ''; | ||||
|  | ||||
|   meta = with lib; { | ||||
|     description = "In-development indie sandbox game about innovation and exploration"; | ||||
|     homepage = "https://www.vintagestory.at/"; | ||||
|     license = licenses.unfree; | ||||
|     maintainers = with maintainers; [ | ||||
|       artturin | ||||
|       gigglesquid | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
| @@ -1,17 +1,16 @@ | ||||
| { pkgs, lib, ... }: | ||||
| # let | ||||
| #   version = "6.2.6.2503"; | ||||
| #   zoom-override = pkgs.zoom-us.overrideAttrs (old: { | ||||
| #     inherit version; | ||||
| #     src = pkgs.fetchurl { | ||||
| #       url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz"; | ||||
| #       hash = "sha256-qhymegXkXSl9fK/5klSi5uRPwFVN88QH/5EVGaBUbfc="; | ||||
| #     }; | ||||
| #   }); | ||||
| # in | ||||
| let | ||||
|   version = "6.2.6.2503"; | ||||
|   zoom-override = pkgs.zoom-us.overrideAttrs (old: { | ||||
|     inherit version; | ||||
|     src = pkgs.fetchurl { | ||||
|       url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz"; | ||||
|       hash = "sha256-qhymegXkXSl9fK/5klSi5uRPwFVN88QH/5EVGaBUbfc="; | ||||
|     }; | ||||
|   }); | ||||
| in | ||||
| { | ||||
|   home.packages = [ | ||||
|     pkgs.zoom-us | ||||
|     #(lib.warn "Using overridden zoom version" zoom-override) | ||||
|     (lib.warn "Using overridden zoom version" zoom-override) | ||||
|   ]; | ||||
| } | ||||
|   | ||||
| @@ -1,4 +1,6 @@ | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| @@ -12,12 +14,13 @@ | ||||
|     }; | ||||
|     settings = { | ||||
|       global = { | ||||
|         rounded = "yes"; | ||||
|         origin = "top-right"; | ||||
|         monitor = "4"; | ||||
|         alignment = "left"; | ||||
|         vertical_alignment = "center"; | ||||
|         width = "(0, 400)"; | ||||
|         height = "(0, 400)"; | ||||
|         width = "400"; | ||||
|         height = "400"; | ||||
|         scale = 0; | ||||
|         gap_size = 0; | ||||
|         progress_bar = true; | ||||
| @@ -41,7 +44,7 @@ | ||||
|         format = "<b>%s</b>\\n%b"; # format = "<span foreground='#f3f4f5'><b>%s %p</b></span>\n%b" | ||||
|         frame_color = "#232323"; | ||||
|         frame_width = 1; | ||||
|         offset = "(15, 15)"; | ||||
|         offset = "15x15"; | ||||
|         horizontal_padding = 10; | ||||
|         icon_position = "left"; | ||||
|         indicate_hidden = "yes"; | ||||
| @@ -51,6 +54,7 @@ | ||||
|         mouse_middle_click = "close_current"; | ||||
|         mouse_right_click = "close_all"; | ||||
|         padding = 10; | ||||
|         plain_text = "no"; | ||||
|         separator_height = 2; | ||||
|         show_indicators = "yes"; | ||||
|         shrink = "no"; | ||||
|   | ||||
| @@ -7,7 +7,11 @@ | ||||
| let | ||||
|   withCuda = osConfig.system.name == "gunter"; | ||||
|  | ||||
|   onnxruntime-gpu = (pkgs.onnxruntime.override { cudaSupport = withCuda; }); | ||||
|   onnxruntime-gpu = (pkgs.onnxruntime.override { cudaSupport = withCuda; }).overrideAttrs (old: { | ||||
|     # TODO: Remove when fixed in nixpkgs | ||||
|     # https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/libraries/onnxruntime/default.nix#L154 | ||||
|     buildInputs = old.buildInputs ++ [ pkgs.cudaPackages.nccl ]; | ||||
|   }); | ||||
|  | ||||
|   obs-backgrounremoval-gpu = ( | ||||
|     (pkgs.obs-studio-plugins.obs-backgroundremoval.override { onnxruntime = onnxruntime-gpu; }) | ||||
| @@ -31,9 +35,6 @@ in | ||||
| { | ||||
|   programs.obs-studio = { | ||||
|     enable = true; | ||||
|     package = pkgs.obs-studio.override { | ||||
|       cudaSupport = withCuda; | ||||
|     }; | ||||
|     plugins = | ||||
|       with pkgs.obs-studio-plugins; | ||||
|       [ | ||||
|   | ||||
| @@ -2,29 +2,19 @@ | ||||
| { | ||||
|   programs.vscode = { | ||||
|     enable = true; | ||||
|     profiles.default = { | ||||
|       enableUpdateCheck = true; | ||||
|       enableExtensionUpdateCheck = true; | ||||
|       userSettings = { | ||||
|         "window.titleBarStyle" = "custom"; | ||||
|         "rust-analyzer.testExplorer" = true; | ||||
|         "rust-analyzer.restartServerOnConfigChange" = true; | ||||
|         "direnv.restart.automatic" = true; | ||||
|       }; | ||||
|       extensions = with pkgs.vscode-extensions; [ | ||||
|         bbenoist.nix | ||||
|         catppuccin.catppuccin-vsc | ||||
|         catppuccin.catppuccin-vsc-icons | ||||
|         github.copilot | ||||
|         github.copilot-chat | ||||
|         golang.go | ||||
|         mkhl.direnv | ||||
|         ms-python.python | ||||
|         ms-vscode-remote.remote-ssh | ||||
|         rooveterinaryinc.roo-cline | ||||
|         rust-lang.rust-analyzer | ||||
|         vscodevim.vim | ||||
|       ]; | ||||
|     enableUpdateCheck = true; | ||||
|     enableExtensionUpdateCheck = true; | ||||
|     extensions = with pkgs.vscode-extensions; [ | ||||
|       catppuccin.catppuccin-vsc | ||||
|       catppuccin.catppuccin-vsc-icons | ||||
|       golang.go | ||||
|       vscodevim.vim | ||||
|       ms-python.python | ||||
|       ms-vscode-remote.remote-ssh | ||||
|       bbenoist.nix | ||||
|     ]; | ||||
|     userSettings = { | ||||
|       "window.titleBarStyle" = "custom"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|   | ||||
| @@ -1,8 +1,6 @@ | ||||
| { pkgs, config, ... }: | ||||
| { | ||||
|   imports = [ | ||||
|     ./noita-helper.nix | ||||
|   ]; | ||||
|   imports = [ ./lockhelper.nix ]; | ||||
|   home.file.".local/bin/hl-no-opacity" = { | ||||
|     source = ./hl-no-opacity.sh; | ||||
|     executable = true; | ||||
|   | ||||
| @@ -1,21 +1,14 @@ | ||||
| { pkgs, ... }: | ||||
| let | ||||
|   lockhelper = pkgs.writeShellApplication { | ||||
|     name = "lockhelper"; | ||||
|     runtimeInputs = with pkgs; [ | ||||
|       grim | ||||
|       jq | ||||
|     ]; | ||||
|     text = (builtins.readFile ./lockhelper.sh); | ||||
|   }; | ||||
| in | ||||
| { | ||||
|   writeShellApplication, | ||||
|   grim, | ||||
|   jq, | ||||
|   gawk, | ||||
|   hyprland, | ||||
|   hyprlock, | ||||
|   procps, | ||||
| }: | ||||
| writeShellApplication { | ||||
|   name = "lockhelper"; | ||||
|   runtimeInputs = [ | ||||
|     grim | ||||
|     jq | ||||
|     gawk | ||||
|     hyprland | ||||
|     hyprlock | ||||
|     procps | ||||
|   ]; | ||||
|   text = (builtins.readFile ./lockhelper.sh); | ||||
|   home.packages = [ lockhelper ]; | ||||
| } | ||||
|   | ||||
| @@ -3,14 +3,11 @@ set -eo pipefail | ||||
|  | ||||
| mkdir -p /tmp/lockscreen || true | ||||
|  | ||||
| monitor_lines=$(hyprctl monitors -j | jq -r '.[] | select (.name | contains ("DP")) | [.name, .description]| @tsv') | ||||
| monitors=$(hyprctl monitors -j | jq -r '.[] | select( .name | contains ("DP")) | .name') | ||||
|  | ||||
| while IFS= read -r m; do | ||||
|     name=$(echo "$m" | awk -F $'\t' '{print $1}') | ||||
|     sum=$(echo "$m" | awk -F $'\t' '{printf $2}' | sha256sum | awk '{print substr($1,1,8)}') | ||||
|  | ||||
|     grim -o "$name" "/tmp/lockscreen/$sum.png" || true | ||||
| done <<< "$monitor_lines" | ||||
|     grim -o "$m" "/tmp/lockscreen/$m.png" || true | ||||
| done <<< "$monitors" | ||||
|  | ||||
| # Only lock if not already running | ||||
| if [ -z "$(pgrep hyprlock)" ]  | ||||
|   | ||||
| @@ -1,14 +0,0 @@ | ||||
| { pkgs, ... }: | ||||
| let | ||||
|   noita-helper = pkgs.writeShellApplication { | ||||
|     name = "noita-helper"; | ||||
|     runtimeInputs = with pkgs; [ | ||||
|       grim | ||||
|       jq | ||||
|     ]; | ||||
|     text = (builtins.readFile ./noita-helper.sh); | ||||
|   }; | ||||
| in | ||||
| { | ||||
|   home.packages = [ noita-helper ]; | ||||
| } | ||||
| @@ -1,50 +0,0 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| SAVE_DIR="/home/torjus/.local/share/Steam/steamapps/compatdata/881100/pfx/drive_c/users/steamuser/AppData/LocalLow/Nolla_Games_Noita" | ||||
|  | ||||
| RESTIC_REPOSITORY="/home/$(whoami)/tmp/noita-backup" | ||||
| export RESTIC_REPOSITORY | ||||
| export RESTIC_PASSWORD="noita" | ||||
|  | ||||
| function start { | ||||
|     echo "Doing initial backup" | ||||
|     restic backup -q "$SAVE_DIR" | ||||
|     echo "Backup done" | ||||
|  | ||||
|     echo "Mounting tmpfs for save folder..." | ||||
|     sudo mount -o size=2G,noswap -t tmpfs none "$SAVE_DIR" | ||||
|  | ||||
|     echo "Restoring initial backup..." | ||||
|     restic restore "latest:$SAVE_DIR" --target "$SAVE_DIR" | ||||
|  | ||||
|     echo "Ready to play Noita!" | ||||
|     echo "Remember to run $0 stop when done." | ||||
|  | ||||
|     while true | ||||
|     do | ||||
|         restic backup -q "$SAVE_DIR" | ||||
|         echo "Periodic backup done..." | ||||
|         sleep 10m | ||||
|     done | ||||
| } | ||||
|  | ||||
| function stop { | ||||
|     restic backup -q $SAVE_DIR | ||||
|     sudo umount $SAVE_DIR | ||||
|     restic restore latest:$SAVE_DIR --target $SAVE_DIR | ||||
|     echo "Backup and unmount done..." | ||||
| } | ||||
|  | ||||
| if [ "$#" -ne 1 ]; then | ||||
|     echo "Usage: $0 {start|stop}" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| if [ "$1" == "start" ]; then | ||||
|     start | ||||
| elif [ "$1" == "stop" ]; then | ||||
|     stop | ||||
| else | ||||
|     echo "Usage: $0 {start|stop}" | ||||
|     exit 1 | ||||
| fi | ||||
| @@ -26,6 +26,11 @@ if [ -z "$wallpaper_path" ]; then | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| if ! command -v hyprpaper &> /dev/null; then | ||||
|     echo "Could not find hyprpaper command" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| echo "setting $wallpaper_path as wallpaper" | ||||
| hyprctl hyprpaper unload all | ||||
| hyprctl hyprpaper preload "$wallpaper_path" | ||||
|   | ||||
| @@ -44,7 +44,6 @@ let | ||||
|           --exclude '/home/torjus/.npm' \ | ||||
|           --exclude '/home/torjus/.factorio/mods' \ | ||||
|           --exclude '/home/torjus/.zoom' \ | ||||
|           --exclude '/home/torjus/Games' \ | ||||
|           --exclude '/home/torjus/git/nixpkgs' | ||||
|       retval=$? | ||||
|       if [ $retval -ne 0 ]; then | ||||
|   | ||||
| @@ -1,21 +0,0 @@ | ||||
| { pkgs, config, ... }: | ||||
| { | ||||
|   sops.secrets."nats_nkey" = { }; | ||||
|   systemd.user.services.natstonotify = { | ||||
|     Unit = { | ||||
|       Description = "Run natstonotify"; | ||||
|       After = [ "sops-nix.service" ]; | ||||
|     }; | ||||
|     Service = { | ||||
|       Environment = [ | ||||
|         "NATS_URL=nats://nats1.home.2rjus.net:4222" | ||||
|         "NATS_NKEY_FILE=${config.sops.secrets.nats_nkey.path}" | ||||
|       ]; | ||||
|       Type = "simple"; | ||||
|       ExecStart = "${pkgs.natstonotify}/bin/natstonotify server"; | ||||
|     }; | ||||
|     Install = { | ||||
|       WantedBy = [ "graphical-session.target" ]; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
| @@ -18,37 +18,27 @@ in | ||||
| { | ||||
|   programs.ssh = { | ||||
|     enable = true; | ||||
|     enableDefaultConfig = false; | ||||
|     controlMaster = "auto"; | ||||
|  | ||||
|     matchBlocks = { | ||||
|       "bmo.uio.no-on-eduroam" = ( | ||||
|         lib.mkIf (osConfig.system.name == "magicman") ( | ||||
|           lib.hm.dag.entryBefore [ "bmo.uio.no" "*" ] { | ||||
|           lib.hm.dag.entryBefore [ "bmo.uio.no" ] { | ||||
|             match = "host bmo.uio.no exec \"nmcli -g GENERAL.STATE c s eduroam|grep -q -E '\\bactiv'\""; | ||||
|             hostname = "bmo.uio.no"; | ||||
|             forwardAgent = false; | ||||
|             serverAliveInterval = 30; | ||||
|             controlMaster = "auto"; | ||||
|             controlPath = "/run/user/%i/ssh-cm-%C"; | ||||
|           } | ||||
|         ) | ||||
|       ); | ||||
|  | ||||
|       "bmo.uio.no" = lib.hm.dag.entryBefore [ "*" ] { | ||||
|       "bmo.uio.no" = { | ||||
|         setEnv = { | ||||
|           # TERM = "xterm-256color"; | ||||
|         }; | ||||
|         hostname = "bmo.uio.no"; | ||||
|         forwardAgent = false; | ||||
|         proxyJump = "torjus@rlogin.uio.no"; | ||||
|         serverAliveInterval = 30; | ||||
|         controlMaster = "auto"; | ||||
|         controlPath = "/run/user/%i/ssh-cm-%C"; | ||||
|       }; | ||||
|  | ||||
|       "*" = { | ||||
|         serverAliveInterval = 30; | ||||
|         controlMaster = "auto"; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
|  | ||||
|   services.ssh-agent.enable = true; | ||||
| } | ||||
|   | ||||
| @@ -24,7 +24,7 @@ | ||||
|       nrebuild = "sudo nixos-rebuild switch --flake /home/${user}/nixos"; | ||||
|       ndiffbuild = "sudo nixos-rebuild build --flake /home/${user}/nixos && nvd diff /run/current-system /home/${user}/nixos/result"; | ||||
|     }; | ||||
|     initContent = '' | ||||
|     initExtra = '' | ||||
|       bindkey -v | ||||
|       bindkey '^R' history-incremental-search-backward | ||||
|  | ||||
| @@ -33,8 +33,6 @@ | ||||
|       promptinit | ||||
|       prompt pure | ||||
|       export PATH="''${KREW_ROOT:-$HOME/.krew}/bin:$PATH" | ||||
|       export MANPAGER="nvim +Man!" | ||||
|       export LOKI_ADDR="http://monitoring01:3100" | ||||
|  | ||||
|       # Aliases | ||||
|       alias ls=eza | ||||
|   | ||||
| @@ -1,4 +0,0 @@ | ||||
| { pkgs, lib, ... }: | ||||
| { | ||||
|   programs.alvr.enable = true; | ||||
| } | ||||
| @@ -9,7 +9,7 @@ | ||||
| { | ||||
|   imports = [ | ||||
|     ./hardware-configuration.nix | ||||
|     ../../system/monitoring | ||||
|     ../../system/monitoring.nix | ||||
|   ]; | ||||
|  | ||||
|   # Sops stuff | ||||
| @@ -23,21 +23,14 @@ | ||||
|  | ||||
|   # Bootloader stuff | ||||
|   boot = { | ||||
|     blacklistedKernelModules = [ | ||||
|       "mt7921e" | ||||
|       "mt7921_common" | ||||
|       "mt792x_lib" | ||||
|       "mt76_connac_lib" | ||||
|       "mt76" | ||||
|     ]; | ||||
|     # Kernel stuff | ||||
|     # kernelPackages = pkgs.linuxPackages_xanmod_latest; | ||||
|     kernelPackages = pkgs.linuxPackages_latest; | ||||
|     # kernelPackages = lib.warn "Pinned to kernel 6.12 due to issues" pkgs.linuxPackages_6_12; | ||||
|     # kernelPackages = lib.warn "Pinned to kernel 6.10 due to nvidia fbdev trouble!" pkgs.linuxPackages_6_10; | ||||
|     kernelParams = [ | ||||
|       "quiet" | ||||
|       "splash" | ||||
|       "rd.systemd.show_status=false" | ||||
|       "module_blacklist=amdgpu" | ||||
|     ]; | ||||
|  | ||||
|     extraModprobeConfig = '' | ||||
| @@ -48,7 +41,6 @@ | ||||
|     loader.systemd-boot = { | ||||
|       enable = true; | ||||
|       configurationLimit = 10; | ||||
|       memtest86.enable = true; | ||||
|     }; | ||||
|     loader.efi = { | ||||
|       canTouchEfiVariables = true; | ||||
| @@ -62,9 +54,6 @@ | ||||
|   networking.nftables.enable = true; | ||||
|   networking.firewall = { | ||||
|     enable = true; | ||||
|     allowedTCPPorts = [ | ||||
|       8989 | ||||
|     ]; | ||||
|   }; | ||||
|  | ||||
|   # Set time stuff | ||||
| @@ -88,17 +77,14 @@ | ||||
|     nvidiaSettings = false; | ||||
|  | ||||
|     package = config.boot.kernelPackages.nvidiaPackages.latest; | ||||
|     # package = | ||||
|     #   lib.warn "nvidia driver override to use 580.82.07" | ||||
|     #     config.boot.kernelPackages.nvidiaPackages.mkDriver | ||||
|     #     { | ||||
|     #       version = "580.82.07"; | ||||
|     #       sha256_64bit = "sha256-Bh5I4R/lUiMglYEdCxzqm3GLolQNYFB0/yJ/zgYoeYw="; | ||||
|     #       sha256_aarch64 = lib.fakeHash; | ||||
|     #       openSha256 = "sha256-8/7ZrcwBMgrBtxebYtCcH5A51u3lAxXTCY00LElZz08="; | ||||
|     #       settingsSha256 = lib.fakeHash; | ||||
|     #       persistencedSha256 = lib.fakeSha256; | ||||
|     #     }; | ||||
|     # package = config.boot.kernelPackages.nvidiaPackages.mkDriver { | ||||
|     #   version = "560.28.03"; | ||||
|     #   sha256_64bit = "sha256-martv18vngYBJw1IFUCAaYr+uc65KtlHAMdLMdtQJ+Y="; | ||||
|     #   sha256_aarch64 = lib.fakeHash; | ||||
|     #   openSha256 = "sha256-asGpqOpU0tIO9QqceA8XRn5L27OiBFuI9RZ1NjSVwaM="; | ||||
|     #   settingsSha256 = lib.fakeHash; | ||||
|     #   persistencedSha256 = lib.fakeSha256; | ||||
|     # }; | ||||
|   }; | ||||
|  | ||||
|   # Setup hyprland | ||||
| @@ -109,13 +95,14 @@ | ||||
|   #     }; | ||||
|   #   }) | ||||
|   # ]; | ||||
|   services.displayManager.gdm.wayland = true; | ||||
|  | ||||
|   services.xserver.enable = true; | ||||
|   services.xserver.videoDrivers = [ "nvidia" ]; | ||||
|   services.xserver.displayManager.gdm.wayland = true; | ||||
|   services.xserver.displayManager.lightdm.enable = false; | ||||
|   services.xserver.displayManager.startx.enable = true; | ||||
|   services.xserver.windowManager.i3.enable = true; | ||||
|   programs.hyprland = { | ||||
|     enable = true; | ||||
|     withUWSM = true; | ||||
|     xwayland.enable = true; | ||||
|     portalPackage = pkgs.xdg-desktop-portal-hyprland; | ||||
|   }; | ||||
| @@ -153,19 +140,8 @@ | ||||
|       "root" | ||||
|       "torjus" | ||||
|     ]; | ||||
|     trusted-substituters = [ | ||||
|       "https://nix-cache.home.2rjus.net" | ||||
|       "https://cache.nixos.org" | ||||
|       "https://cuda-maintainers.cachix.org" | ||||
|     ]; | ||||
|     substituters = [ | ||||
|       "https://nix-cache.home.2rjus.net" | ||||
|       "https://cache.nixos.org" | ||||
|       "https://cuda-maintainers.cachix.org" | ||||
|     ]; | ||||
|     substituters = [ "https://cuda-maintainers.cachix.org" ]; | ||||
|     trusted-public-keys = [ | ||||
|       "nix-cache.home.2rjus.net-1:2kowZOG6pvhoK4AHVO3alBlvcghH20wchzoR0V86UWI=" | ||||
|       "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" | ||||
|       "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" | ||||
|     ]; | ||||
|   }; | ||||
|   | ||||
| @@ -12,8 +12,6 @@ | ||||
|     ./nfs.nix | ||||
|     ./ollama.nix | ||||
|     ./streamdeck.nix | ||||
|     ./alvr.nix | ||||
|     ./ratbagd.nix | ||||
|     ../../system | ||||
|     ../../home/gunter.nix | ||||
|   ]; | ||||
|   | ||||
| @@ -25,9 +25,7 @@ | ||||
|     "kvm-amd" | ||||
|     "v4l2loopback" | ||||
|   ]; | ||||
|   boot.extraModulePackages = with config.boot.kernelPackages; [ | ||||
|     v4l2loopback | ||||
|   ]; | ||||
|   boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; | ||||
|  | ||||
|   fileSystems."/" = { | ||||
|     device = "/dev/disk/by-uuid/a7d4b697-fffa-4bcb-9dd7-cbbd6121a50c"; | ||||
|   | ||||
| @@ -1,20 +0,0 @@ | ||||
| { ... }: | ||||
| { | ||||
|   services.hostapd = { | ||||
|     enable = true; | ||||
|     radios = { | ||||
|       wlp13s0 = { | ||||
|         countryCode = "NO"; | ||||
|         wifi6.enable = true; | ||||
|         networks.wlp13s0 = { | ||||
|           ssid = "TESTLOL"; | ||||
|           band = "5g"; | ||||
|           authentication = { | ||||
|             wpaPassword = "lol passord"; | ||||
|             mode = "wpa2-sha256"; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
| @@ -6,11 +6,7 @@ | ||||
|   }; | ||||
|   services.open-webui = { | ||||
|     enable = true; | ||||
|     package = pkgs.stable.open-webui; | ||||
|     # enable = lib.warn "Open WebUI is disabled" false; | ||||
|     environment = { | ||||
|       VECTOR_DB = "pgvector"; | ||||
|       PGVECTOR_DB_URL = "postgresql://openwebui:openwebui@pgdb1.home.2rjus.net:5432/openwebui"; | ||||
|       DO_NOT_TRACK = "True"; | ||||
|       SCARF_NO_ANALYTICS = "True"; | ||||
|       OLLAMA_API_BASE_URL = "http://127.0.0.1:11434"; | ||||
| @@ -18,8 +14,4 @@ | ||||
|     }; | ||||
|     port = 11444; | ||||
|   }; | ||||
|  | ||||
|   # Ensure networking is ok before starting | ||||
|   systemd.services.open-webui.after = [ "network-online.target" ]; | ||||
|   systemd.services.open-webui.wants = [ "network-online.target" ]; | ||||
| } | ||||
|   | ||||
| @@ -1,5 +0,0 @@ | ||||
| { pkgs, ... }: | ||||
| { | ||||
|   services.ratbagd.enable = true; | ||||
|   environment.systemPackages = with pkgs; [ piper ]; | ||||
| } | ||||
| @@ -1,4 +1,6 @@ | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| @@ -22,7 +24,6 @@ | ||||
|     enable = true; | ||||
|     configurationLimit = 3; | ||||
|   }; | ||||
|  | ||||
|   boot.loader.efi = { | ||||
|     canTouchEfiVariables = true; | ||||
|   }; | ||||
| @@ -48,19 +49,14 @@ | ||||
|   # Set time stuff | ||||
|   time.timeZone = "Europe/Oslo"; | ||||
|  | ||||
|   hardware = { | ||||
|     enableRedistributableFirmware = true; | ||||
|     enableAllFirmware = true; | ||||
|  | ||||
|     # Enable opengl | ||||
|     graphics = { | ||||
|       enable = true; | ||||
|       extraPackages = with pkgs; [ | ||||
|         intel-media-driver | ||||
|         vaapiVdpau | ||||
|         libvdpau-va-gl | ||||
|       ]; | ||||
|     }; | ||||
|   # Enable opengl | ||||
|   hardware.graphics = { | ||||
|     enable = true; | ||||
|     extraPackages = with pkgs; [ | ||||
|       intel-media-driver | ||||
|       vaapiVdpau | ||||
|       libvdpau-va-gl | ||||
|     ]; | ||||
|   }; | ||||
|  | ||||
|   # Bluetooth stuff | ||||
| @@ -82,13 +78,12 @@ | ||||
|  | ||||
|   # Setup hyprland | ||||
|   services.xserver.enable = true; | ||||
|   services.displayManager.gdm.wayland = { | ||||
|   services.xserver.displayManager = { | ||||
|     gdm.wayland = true; | ||||
|     lightdm.enable = false; | ||||
|   }; | ||||
|   programs.hyprland = { | ||||
|     enable = true; | ||||
|     withUWSM = true; | ||||
|     xwayland.enable = true; | ||||
|     portalPackage = pkgs.xdg-desktop-portal-hyprland; | ||||
|   }; | ||||
| @@ -96,6 +91,12 @@ | ||||
|   # TRIM | ||||
|   services.fstrim.enable = true; | ||||
|  | ||||
|   # TLP | ||||
|   services.tlp.enable = true; | ||||
|  | ||||
|   # Brillo | ||||
|   hardware.brillo.enable = true; | ||||
|  | ||||
|   # Setup common XDG env vars | ||||
|   environment.sessionVariables = rec { | ||||
|     XDG_CACHE_HOME = "$HOME/.cache"; | ||||
|   | ||||
| @@ -8,7 +8,6 @@ | ||||
|   imports = [ | ||||
|     ./configuration.nix | ||||
|     ./hardware-configuration.nix | ||||
|     ./laptop.nix | ||||
|     ../../system | ||||
|     ../../home/magicman.nix | ||||
|   ]; | ||||
|   | ||||
| @@ -1,21 +0,0 @@ | ||||
| { ... }: | ||||
| { | ||||
|   hardware.brillo.enable = true; | ||||
|   powerManagement.enable = true; | ||||
|  | ||||
|   services.tlp.enable = true; | ||||
|  | ||||
|   services.auto-cpufreq = { | ||||
|     enable = true; | ||||
|     settings = { | ||||
|       battery = { | ||||
|         governor = "powersave"; | ||||
|         turbo = "never"; | ||||
|       }; | ||||
|       charger = { | ||||
|         governor = "performance"; | ||||
|         turbo = "auto"; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
| @@ -3,7 +3,6 @@ sonarr_api_key: ENC[AES256_GCM,data:mg19hxs+DY6wsLjt4FupjavwmnmMJAP2Us5i1Rt/yyk= | ||||
| sonarr_base_url: ENC[AES256_GCM,data:0HiHIX4KcPEE62Ti1fLH230rC1A7xYg=,iv:mkAnl6t2H5xP9RPjTsbSZkfbrgli/7XKnPE5aGuZpTo=,tag:P2osFM60Jk8qkXJgLaGpjg==,type:str] | ||||
| radarr_api_key: ENC[AES256_GCM,data:Db1ISKTF+m2H1on55/4vdGticfqBdxfIzKHBxC9LAx4=,iv:NhiG4SmsRYIunW1ljFbxeHvRoi9fOVE+9DJn6kmZ6oI=,tag:DoJzo56CW3kJlySYmB8NYQ==,type:str] | ||||
| radarr_base_url: ENC[AES256_GCM,data:3UgOPQMblYhm0ysRB6VVosvZToIM5IA=,iv:o/s0bVBrjrma2Df2LlCCFL5Ks80063/4mABc6vzDrYg=,tag:eHKntLPM9yRRkMfIWSpIdg==,type:str] | ||||
| nats_nkey: ENC[AES256_GCM,data:TcIDFkFXB1+qfTqLylDI46w4/+Cy9XdXyXS26qCbwDaDoQNaRUsC6dw94mbT37352IWOCypTY0hweA==,iv:DC5GQyIXbNSx/mOLAOWTf5AyeFeViLxbKTMgZEfTEXE=,tag:krxk/dnZ58a8dcuWb7zhnA==,type:str] | ||||
| sops: | ||||
|     kms: [] | ||||
|     gcp_kms: [] | ||||
| @@ -13,23 +12,14 @@ sops: | ||||
|         - recipient: age1lznyk4ee7e7x8n92cq2n87kz9920473ks5u9jlhd3dczfzq4wamqept56u | ||||
|           enc: | | ||||
|             -----BEGIN AGE ENCRYPTED FILE----- | ||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnaUlVOWtoRTFvMHljV0Fu | ||||
|             TFp2Ym1jcThqbWRjUjdNSnhxRUsrOWl6S3dBCmh0L0YzaXNlRTFHMXFHTGc1T3I2 | ||||
|             WE03WjJCSlJSV2lmSExTWDBQRnlOcDAKLS0tIFJoeEM5b0IrdWxTRWhvNnd0c3NG | ||||
|             dENGdjJteFFaQTNFaDgvSGV2UEtyT0EKbdg4atS91rB99l7zKKkfPzKk4T5Mq2x5 | ||||
|             bX825DPrxauAhvrT7ca/A2OwA4kaFuxPrQGd3VOPAXTVhlbcFgIAdw== | ||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDdDRDc0UvaWY4U0loZzQ0 | ||||
|             bDZCMitGbGVYaGJyUXNrZGpnZHJlWHRkK3drCnJ2TlovSUI0OEVrV2FBbVdlSm1z | ||||
|             OE9lYXNMSXpCS0NMSkZDcjhtWENOUTAKLS0tIEZFMnVqcktwWkR5VHBGQXdobXlp | ||||
|             Q3gxalhGVjNlS3B3YlFsK0VQMUFITEUKE87+RpOG6ucXHHQ0DMQ9F3yo0n1aXbv7 | ||||
|             OX5ibHU7RroUQwFmDj87u59VUTvpWRQjsBW4c4WrZRk9KcjwinZZZQ== | ||||
|             -----END AGE ENCRYPTED FILE----- | ||||
|         - recipient: age1stlqqspmt5fepyz35udrwr5avf9zuju79f787p26pu2d2j08yqps2q2t2c | ||||
|           enc: | | ||||
|             -----BEGIN AGE ENCRYPTED FILE----- | ||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvSEZJWldRcmJ3c1BjbUpT | ||||
|             bmZXSmlHU0hVRTV3SG91bXpiTXhZd1RkY0Y4ClBxc0RabWJmMi8reHZYWnlmK3pC | ||||
|             bUw5V2FEV0pZdkZEMTJ5ZDZXWDM2NjgKLS0tIGZ6dEZ4dERYQXFRQTVkRHhycndz | ||||
|             dkgwQlRrdEp6b2FIVnowaDlUMEZpeHcK2icvVv+UpbcdVErRjjQhlQb6PuluC/K7 | ||||
|             Vy8Rh7dTn++bSEdGidDNGYeUQBrVy2qooq04lQqbeOOrdmXVhTamdA== | ||||
|             -----END AGE ENCRYPTED FILE----- | ||||
|     lastmodified: "2025-02-11T19:22:47Z" | ||||
|     mac: ENC[AES256_GCM,data:vd8O5y1GNDTDrlundbNZcGRAQzKLDly4qyxTqRO2JrnDYOqD/vQ8TqRQYiUgGY+5AcgjoLMER8keE8OUmcngN16cbGx1zKTpdqyHb7B2KR7ZfWOjW5kTk5KWM1gLDA4hA2GBEjHFBPGKdcrjURek9MrT+iM+qArbizSjWlKuehc=,iv:cicEnvWynZizJqrUzPIzbJWl6O8uL65Vs7fAYsuqSNA=,tag:l5jBXQfFedVE/VccZh+1qQ==,type:str] | ||||
|     lastmodified: "2024-04-25T19:19:54Z" | ||||
|     mac: ENC[AES256_GCM,data:VGBiDi71DHAXLhi7XC0XSTqnSwcJXv1Lj53qriFER7BXXZNPUdbeknlYR+KMdL3hgKGiK+ElWK5foDAy6jpl1H3U7Y9B4d40pVZSzEoN+fCwUgfP+yym1HwKZZoJok2ksXZIL4MZyZSNS+ONjDeFEcyHobIx8pRThxic3CcvptI=,iv:QwnFcYeIWibx5q8C/ur1eE8F9vbyGHg5raInDHBoyVs=,tag:JJWEYAyVhfny4hWrKBAKig==,type:str] | ||||
|     pgp: [] | ||||
|     unencrypted_suffix: _unencrypted | ||||
|     version: 3.9.4 | ||||
|     version: 3.8.1 | ||||
|   | ||||
| @@ -1,12 +1,10 @@ | ||||
| { | ||||
|   imports = [ | ||||
|     ./fonts.nix | ||||
|     ./root-ca.nix | ||||
|     ./fwupd.nix | ||||
|     ./git.nix | ||||
|     ./greetd.nix | ||||
|     ./libvirt.nix | ||||
|     ./locale.nix | ||||
|     ./podman.nix | ||||
|     ./security.nix | ||||
|     ./services.nix | ||||
|   | ||||
| @@ -5,10 +5,14 @@ | ||||
|     fira-code | ||||
|     fira-code-symbols | ||||
|     font-awesome | ||||
|     nerd-fonts.jetbrains-mono | ||||
|     nerd-fonts.fira-code | ||||
|     nerd-fonts.droid-sans-mono | ||||
|     nerd-fonts.dejavu-sans-mono | ||||
|     (nerdfonts.override { | ||||
|       fonts = [ | ||||
|         "JetBrainsMono" | ||||
|         "FiraCode" | ||||
|         "DroidSansMono" | ||||
|         "DejaVuSansMono" | ||||
|       ]; | ||||
|     }) | ||||
|     noto-fonts | ||||
|     noto-fonts-cjk-sans | ||||
|     noto-fonts-emoji | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|     enable = true; | ||||
|     settings = { | ||||
|       default_session = { | ||||
|         command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd \"uwsm start default\""; | ||||
|         command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd \"dbus-run-session Hyprland\""; | ||||
|         user = "greeter"; | ||||
|       }; | ||||
|     }; | ||||
|   | ||||
| @@ -6,6 +6,9 @@ | ||||
|       package = pkgs.qemu_kvm; | ||||
|       runAsRoot = true; | ||||
|       swtpm.enable = true; | ||||
|       ovmf = { | ||||
|         enable = true; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|   | ||||
| @@ -1,12 +0,0 @@ | ||||
| { ... }: | ||||
| { | ||||
|   i18n = { | ||||
|     supportedLocales = [ | ||||
|       "en_US.UTF-8/UTF-8" | ||||
|       "nb_NO.UTF-8/UTF-8" | ||||
|     ]; | ||||
|     extraLocaleSettings = { | ||||
|       LC_TIME = "nb_NO.UTF-8"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										37
									
								
								system/monitoring.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								system/monitoring.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| { pkgs, ... }: | ||||
| { | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     prometheus-node-exporter | ||||
|     prometheus-systemd-exporter | ||||
|   ]; | ||||
|  | ||||
|   systemd.services."node-exporter" = { | ||||
|     enable = true; | ||||
|     unitConfig = { | ||||
|       Description = "Prometheus Node Exporter"; | ||||
|       After = [ "network.target" ]; | ||||
|     }; | ||||
|     serviceConfig = { | ||||
|       ExecStart = "${pkgs.prometheus-node-exporter}/bin/node_exporter"; | ||||
|     }; | ||||
|     wantedBy = [ "multi-user.target" ]; | ||||
|   }; | ||||
|  | ||||
|   systemd.services."systemd-exporter" = { | ||||
|     enable = true; | ||||
|     unitConfig = { | ||||
|       Description = "Prometheus Systemd Exporter"; | ||||
|       After = [ "network.target" ]; | ||||
|     }; | ||||
|     serviceConfig = { | ||||
|       ExecStart = "${pkgs.prometheus-systemd-exporter}/bin/systemd_exporter"; | ||||
|     }; | ||||
|     wantedBy = [ "multi-user.target" ]; | ||||
|   }; | ||||
|  | ||||
|   networking.firewall.allowedTCPPorts = [ | ||||
|     9100 | ||||
|     9558 | ||||
|     8989 | ||||
|   ]; | ||||
| } | ||||
| @@ -1,7 +0,0 @@ | ||||
| { ... }: | ||||
| { | ||||
|   imports = [ | ||||
|     ./metrics.nix | ||||
|     ./logs.nix | ||||
|   ]; | ||||
| } | ||||
| @@ -1,39 +0,0 @@ | ||||
| { ... }: | ||||
| { | ||||
|   services.promtail = { | ||||
|     enable = true; | ||||
|     configuration = { | ||||
|       server = { | ||||
|         http_listen_address = "0.0.0.0"; | ||||
|         http_listen_port = 9099; | ||||
|         grpc_listen_address = "0.0.0.0"; | ||||
|         grpc_listen_port = 9098; | ||||
|       }; | ||||
|  | ||||
|       clients = [ | ||||
|         { | ||||
|           url = "http://monitoring01.home.2rjus.net:3100/loki/api/v1/push"; | ||||
|         } | ||||
|       ]; | ||||
|  | ||||
|       scrape_configs = [ | ||||
|         { | ||||
|           job_name = "journal"; | ||||
|           journal = { | ||||
|             json = true; | ||||
|           }; | ||||
|           relabel_configs = [ | ||||
|             { | ||||
|               source_labels = [ "__journal__systemd_unit" ]; | ||||
|               target_label = "systemd_unit"; | ||||
|             } | ||||
|             { | ||||
|               source_labels = [ "__journal__hostname" ]; | ||||
|               target_label = "host"; | ||||
|             } | ||||
|           ]; | ||||
|         } | ||||
|       ]; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
| @@ -1,18 +0,0 @@ | ||||
| { ... }: | ||||
| { | ||||
|   services.prometheus.exporters = { | ||||
|     node = { | ||||
|       enable = true; | ||||
|       openFirewall = true; | ||||
|       enabledCollectors = [ | ||||
|         "systemd" | ||||
|         "logind" | ||||
|       ]; | ||||
|     }; | ||||
|     smartctl = { | ||||
|       enable = true; | ||||
|       openFirewall = true; | ||||
|       devices = [ "/dev/nvme0n1" ]; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
| @@ -1,12 +0,0 @@ | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIIBxDCCAWmgAwIBAgIQQCSzuOLIKLj1dGbC+NFttjAKBggqhkjOPQQDAjBAMRow | ||||
| GAYDVQQKExFob21lLjJyanVzLm5ldCBDQTEiMCAGA1UEAxMZaG9tZS4ycmp1cy5u | ||||
| ZXQgQ0EgUm9vdCBDQTAeFw0yNDEwMjEwOTEyNDRaFw0zNDEwMTkwOTEyNDRaMEAx | ||||
| GjAYBgNVBAoTEWhvbWUuMnJqdXMubmV0IENBMSIwIAYDVQQDExlob21lLjJyanVz | ||||
| Lm5ldCBDQSBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGDE4ss9y | ||||
| 9msphQ/Sa/tAoEaGoDHQcg5oRcxWL5SZYjUPNl+zbRZzqkvCz2S1XrHJPiPWbyJX | ||||
| cZAlPxbwZrWDyKNFMEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8C | ||||
| AQEwHQYDVR0OBBYEFPZx6AahX5diBMChZbv5N4dh+vCTMAoGCCqGSM49BAMCA0kA | ||||
| MEYCIQC6yqMM9/s1Dct5jlq0NAGsDA68hVTDcO3RP61lxQlfBwIhAL1jlmIwaSJc | ||||
| TjdIMjPQ3ombBRqDJBDvDr8o6oOUjret | ||||
| -----END CERTIFICATE----- | ||||
| @@ -1,9 +0,0 @@ | ||||
| { pkgs, ... }: | ||||
| { | ||||
|   security.pki = { | ||||
|     certificateFiles = [ | ||||
|       "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" | ||||
|       ./root-ca.crt | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
| @@ -12,6 +12,7 @@ | ||||
|     locate = { | ||||
|       enable = true; | ||||
|       package = pkgs.plocate; | ||||
|       localuser = null; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|   | ||||
| @@ -3,7 +3,6 @@ | ||||
| { | ||||
|   programs.zsh.enable = true; | ||||
|   environment.shells = with pkgs; [ zsh ]; | ||||
|   programs.adb.enable = true; | ||||
|  | ||||
|   # Setup torjus user | ||||
|   users.users.torjus = { | ||||
| @@ -21,7 +20,6 @@ | ||||
|       "gamemode" | ||||
|       "libvirtd" | ||||
|       "podman" | ||||
|       "adbusers" | ||||
|     ]; | ||||
|     # Install some user packages | ||||
|     packages = with pkgs; [ ]; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user