diff --git a/flake.lock b/flake.lock index a733d47..655ab28 100644 --- a/flake.lock +++ b/flake.lock @@ -33,6 +33,22 @@ "type": "github" } }, + "argononed": { + "flake": false, + "locked": { + "lastModified": 1729566243, + "narHash": "sha256-DPNI0Dpk5aym3Baf5UbEe5GENDrSmmXVdriRSWE+rgk=", + "owner": "nvmd", + "repo": "argononed", + "rev": "16dbee54d49b66d5654d228d1061246b440ef7cf", + "type": "github" + }, + "original": { + "owner": "nvmd", + "repo": "argononed", + "type": "github" + } + }, "blobs": { "flake": false, "locked": { @@ -87,11 +103,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1762510976, - "narHash": "sha256-KGoSj8qMOOPaNE48RTtuNBbqOvKLTeklnRHWWvE/TXo=", + "lastModified": 1763724081, + "narHash": "sha256-hCgZsbaw21R9uL3iJwG8WT3VCMXVa7xjmxGRf0nwvL4=", "owner": "catppuccin", "repo": "nix", - "rev": "728cb0a667ce37bb0c68557dba819c7fb54ff1c8", + "rev": "e4676e1fd9b09131feadd3df556fd1d3f31fdd2d", "type": "github" }, "original": { @@ -110,11 +126,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1762791812, - "narHash": "sha256-O7Ne62r8hKE3FPqUsukMblxyYCFTh2jV5gHgIsI3rnE=", + "lastModified": 1763748595, + "narHash": "sha256-7vfuJK0cmLOlYCSbq7AL/dJhoz9UaYRrw55OISGWA4I=", "owner": "cachix", "repo": "devenv", - "rev": "1faab0d28c573f2a8dba2cf457b9d383adba252a", + "rev": "575f7c532a6940f0fe55dfb7e527312dcdab8831", "type": "github" }, "original": { @@ -123,24 +139,23 @@ "type": "github" } }, - "fenix": { + "disko": { "inputs": { "nixpkgs": [ "nixpkgs" - ], - "rust-analyzer-src": "rust-analyzer-src" + ] }, "locked": { - "lastModified": 1762757174, - "narHash": "sha256-i2CZAiJNQsC7Wwk8fUZHS130W8HHLbmYqgT6ErYp5Zw=", + "lastModified": 1763651264, + "narHash": "sha256-8vvwZbw0s7YvBMJeyPVpWke6lg6ROgtts5N2/SMCcv4=", "owner": "nix-community", - "repo": "fenix", - "rev": "9ada5aa8ebd5062c8c399ae59c3f77f266216a24", + "repo": "disko", + "rev": "e86a89079587497174ccab6d0d142a65811a4fd9", "type": "github" }, "original": { "owner": "nix-community", - "repo": "fenix", + "repo": "disko", "type": "github" } }, @@ -266,11 +281,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1762810396, - "narHash": "sha256-dxFVgQPG+R72dkhXTtqUm7KpxElw3u6E+YlQ2WaDgt8=", + "lastModified": 1763759067, + "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "0bdadb1b265fb4143a75bd1ec7d8c915898a9923", + "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", "type": "github" }, "original": { @@ -284,11 +299,11 @@ "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1762440070, - "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=", + "lastModified": 1762980239, + "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8", + "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da", "type": "github" }, "original": { @@ -350,11 +365,11 @@ ] }, "locked": { - "lastModified": 1762441963, - "narHash": "sha256-j+rNQ119ffYUkYt2YYS6rnd6Jh/crMZmbqpkGLXaEt0=", + "lastModified": 1763741496, + "narHash": "sha256-uIRqs/H18YEtMOn1OkbnPH+aNTwXKx+iU3qnxEkVUd0=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "8e7576e79b88c16d7ee3bbd112c8d90070832885", + "rev": "20e71a403c5de9ce5bd799031440da9728c1cda1", "type": "github" }, "original": { @@ -376,11 +391,11 @@ ] }, "locked": { - "lastModified": 1762441963, - "narHash": "sha256-j+rNQ119ffYUkYt2YYS6rnd6Jh/crMZmbqpkGLXaEt0=", + "lastModified": 1763319842, + "narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "8e7576e79b88c16d7ee3bbd112c8d90070832885", + "rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761", "type": "github" }, "original": { @@ -484,11 +499,11 @@ ] }, "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "lastModified": 1762808025, + "narHash": "sha256-XmjITeZNMTQXGhhww6ed/Wacy2KzD6svioyCX7pkUu4=", "owner": "hercules-ci", "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "rev": "cb5e3fdca1de58ccbc3ef53de65bd372b48f567c", "type": "github" }, "original": { @@ -521,11 +536,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1762716787, - "narHash": "sha256-YfcY28igFL5ZPCTtVBaVUvnhcWg8tyiBVSlULpXEIeQ=", + "lastModified": 1763430944, + "narHash": "sha256-tL2I302ZrTeo13D99vg4v/VajVCSHdOx5RncpMcjqa0=", "owner": "helix-editor", "repo": "helix", - "rev": "a79292b630ae4a0e6e37814ad21411ab50926c73", + "rev": "68c7e8757f0183adeb01ba1fbbabd1cee2885b70", "type": "github" }, "original": { @@ -541,11 +556,11 @@ ] }, "locked": { - "lastModified": 1762787259, - "narHash": "sha256-t2U/GLLXHa2+kJkwnFNRVc2fEJ/lUfyZXBE5iKzJdcs=", + "lastModified": 1763748372, + "narHash": "sha256-AUc78Qv3sWir0hvbmfXoZ7Jzq9VVL97l+sP9Jgms+JU=", "owner": "nix-community", "repo": "home-manager", - "rev": "37a3d97f2873e0f68711117c34d04b7c7ead8f4e", + "rev": "d10a9b16b2a3ee28433f3d1c603f4e9f1fecb8e1", "type": "github" }, "original": { @@ -563,11 +578,11 @@ ] }, "locked": { - "lastModified": 1762351818, - "narHash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0=", + "lastModified": 1762964643, + "narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=", "owner": "nix-community", "repo": "home-manager", - "rev": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea", + "rev": "827f2a23373a774a8805f84ca5344654c31f354b", "type": "github" }, "original": { @@ -583,11 +598,11 @@ ] }, "locked": { - "lastModified": 1761971414, - "narHash": "sha256-UeMEUlQsil5DEtF/VQ//41vXJF9ff2xjoYVjhR6dqu4=", + "lastModified": 1763692256, + "narHash": "sha256-4C5pavV7Ht4NlXKoqNNu8lCtHwS3SYfnkjHmGbA4TSg=", "owner": "outfoxxed", "repo": "hy3", - "rev": "16dae4d8f853b0d3e8434ee9941f9fc0155b8952", + "rev": "0a41a2ab5f0d5562c4ffae9cef4648c450a248a1", "type": "github" }, "original": { @@ -701,11 +716,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1762755326, - "narHash": "sha256-YYTzQUQDnVdtN3k40sC5kq6yL70riU8bM8cQLz38jzk=", + "lastModified": 1763750925, + "narHash": "sha256-Q5IO8VKW2fFHb6Ix6auy6SEMA6NS6pNeuefBai4+PHY=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "0b1d690676589503f0addece30e936a240733699", + "rev": "abb2f7ee6fc99c31b6fac05568f29c92b59565df", "type": "github" }, "original": { @@ -777,11 +792,11 @@ ] }, "locked": { - "lastModified": 1762115485, - "narHash": "sha256-hr53AWO96ooLCwS1a2v416eT1/aWQZmuQV0ULqhaBTY=", + "lastModified": 1763732618, + "narHash": "sha256-hvElpSNHbYSBsn/GoJV0RgAecpn3vcC5kJso34XqwJw=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "bbb8d2cb0eb667f2911103eadb3d1e8176f4462c", + "rev": "57961d69ad9725986290c8c0f2b0d118b645daee", "type": "github" }, "original": { @@ -831,11 +846,11 @@ ] }, "locked": { - "lastModified": 1758927902, - "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", + "lastModified": 1763254292, + "narHash": "sha256-JNgz3Fz2KMzkT7aR72wsgu/xNeJB//LSmdilh8Z/Zao=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", + "rev": "deea98d5b61d066bdc7a68163edd2c4bd28d3a6b", "type": "github" }, "original": { @@ -962,11 +977,11 @@ ] }, "locked": { - "lastModified": 1762387740, - "narHash": "sha256-gQ9zJ+pUI4o+Gh4Z6jhJll7jjCSwi8ZqJIhCE2oqwhQ=", + "lastModified": 1763323331, + "narHash": "sha256-+Z0OfCo1MS8/aIutSAW5aJR9zTae1wz9kcJYMgpwN6M=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "926689ddb9c0a8787e58c02c765a62e32d63d1f7", + "rev": "0c6411851cc779d551edc89b83966696201611aa", "type": "github" }, "original": { @@ -1052,11 +1067,11 @@ }, "import-tree": { "locked": { - "lastModified": 1762327901, - "narHash": "sha256-AJ96FNj50DU0bTyIzAPkPOjCZTHqjURVjok8qoXvmqM=", + "lastModified": 1763695721, + "narHash": "sha256-tMfN/JkwWJ129cXDW+lK2gUcjklJ+LpTHj9LlneJRXg=", "owner": "vic", "repo": "import-tree", - "rev": "90fa129798be99cde036b78658e89475710966a1", + "rev": "ca69d64711265c68cf71f6c029ab9f1a55a767f8", "type": "github" }, "original": { @@ -1072,11 +1087,11 @@ ] }, "locked": { - "lastModified": 1762341531, - "narHash": "sha256-wlWo/A1lOkzvo6PHMnVMKiXuv+dyX1UBCjFpJJ6tNiY=", + "lastModified": 1763546924, + "narHash": "sha256-2w6q2KjMZyvlUIY2FoHo6KprkUdhACWr+uYzrvo+Iq4=", "owner": "nix-community", "repo": "nh", - "rev": "6c77c9371ed92ac1f93d2b7eaf9fb86ad3433bae", + "rev": "eb1620ceddf955ac63aab59ae0fdec03631af0fa", "type": "github" }, "original": { @@ -1093,11 +1108,11 @@ "rust-overlay": [] }, "locked": { - "lastModified": 1762804232, - "narHash": "sha256-LCddK36/6u73jed1yuqbu6JKWIITsc42qoM883DgwJg=", + "lastModified": 1763729389, + "narHash": "sha256-VcToDv3/lw3q3sVIqQsMUhSGKEVdQM4h6rnr/XhPBwM=", "owner": "YaLTeR", "repo": "niri", - "rev": "978c4e6c8afc0199e2cbd9037bdc7c41fbbab2a3", + "rev": "012700dd549a79c501bcab92839e5dcc46c372b5", "type": "github" }, "original": { @@ -1120,11 +1135,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1762810134, - "narHash": "sha256-eu8Gkb/y/5pRS3Ml/sg3oeUtFFzlJMpDrJRgPgOXz38=", + "lastModified": 1763739228, + "narHash": "sha256-taQ7h8kkyigrdiAHilUXOZiqdT/cCYcpxQentuH+Krc=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "44c5a2c19b7b22d1b2375ef95f656291a0af3a1b", + "rev": "4708ce5f7d7c7aec103e22c87c11a711eeafd1fa", "type": "github" }, "original": { @@ -1136,11 +1151,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1762804232, - "narHash": "sha256-LCddK36/6u73jed1yuqbu6JKWIITsc42qoM883DgwJg=", + "lastModified": 1763729389, + "narHash": "sha256-VcToDv3/lw3q3sVIqQsMUhSGKEVdQM4h6rnr/XhPBwM=", "owner": "YaLTeR", "repo": "niri", - "rev": "978c4e6c8afc0199e2cbd9037bdc7c41fbbab2a3", + "rev": "012700dd549a79c501bcab92839e5dcc46c372b5", "type": "github" }, "original": { @@ -1197,11 +1212,11 @@ ] }, "locked": { - "lastModified": 1762740007, - "narHash": "sha256-CtMgV9vfm16x/0NBQmQQe/Vbv423cPWeNfBtiVYcUBk=", + "lastModified": 1763690104, + "narHash": "sha256-aLVWjGbOYw1stg1Ub+KAbA6BksQk1d+xBXslE233YVc=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "8dce0b23e30b03efbdc94e8db7cb27298446e4cc", + "rev": "db3650381678dd5d4d7d5b3f6ac1b0c69f9c7d06", "type": "github" }, "original": { @@ -1210,33 +1225,13 @@ "type": "github" } }, - "nix-ld": { - "inputs": { - "nixpkgs": [ - "nixpkgs-unstable" - ] - }, - "locked": { - "lastModified": 1762763360, - "narHash": "sha256-sGxV5zfmy/s9V+/QA0q2ihCu0FZcKVraFuVKiUavGg8=", - "owner": "Mic92", - "repo": "nix-ld", - "rev": "b6255fb02dfe52ac5ebb515e99ed12b74163db5a", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "nix-ld", - "type": "github" - } - }, "nixos-hardware": { "locked": { - "lastModified": 1762463231, - "narHash": "sha256-hv1mG5j5PTbnWbtHHomzTus77pIxsc4x8VrMjc7+/YE=", + "lastModified": 1762847253, + "narHash": "sha256-BWWnUUT01lPwCWUvS0p6Px5UOBFeXJ8jR+ZdLX8IbrU=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "52113c4f5cfd1e823001310e56d9c8d0699a6226", + "rev": "899dc449bc6428b9ee6b3b8f771ca2b0ef945ab9", "type": "github" }, "original": { @@ -1245,6 +1240,53 @@ "type": "github" } }, + "nixos-images": { + "inputs": { + "nixos-stable": [ + "nixos-raspberrypi", + "nixpkgs" + ], + "nixos-unstable": [ + "nixos-raspberrypi", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1747747741, + "narHash": "sha256-LUOH27unNWbGTvZFitHonraNx0JF/55h30r9WxqrznM=", + "owner": "nvmd", + "repo": "nixos-images", + "rev": "cbbd6db325775096680b65e2a32fb6187c09bbb4", + "type": "github" + }, + "original": { + "owner": "nvmd", + "ref": "sdimage-installer", + "repo": "nixos-images", + "type": "github" + } + }, + "nixos-raspberrypi": { + "inputs": { + "argononed": "argononed", + "nixos-images": "nixos-images", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1758967172, + "narHash": "sha256-zRASAVS7tX7gPdvCUbi2m7KGX0jNuMlaOFqbkUZhu9k=", + "owner": "nvmd", + "repo": "nixos-raspberrypi", + "rev": "09c214a30e5a27e0fa92a9975b91c82ba05d1f17", + "type": "github" + }, + "original": { + "owner": "nvmd", + "ref": "main", + "repo": "nixos-raspberrypi", + "type": "github" + } + }, "nixos-wsl": { "inputs": { "flake-compat": "flake-compat_4", @@ -1253,11 +1295,11 @@ ] }, "locked": { - "lastModified": 1762251193, - "narHash": "sha256-CmSddz8e2kM+ITbYutluhKZyXXwI9Sg2lf7XXSvc8oY=", + "lastModified": 1763738061, + "narHash": "sha256-VpNRcInaj1MOya8NmcqhFmdO7KGO7SSZelJQmPl6HoQ=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "e001844d4553aef268f97b32d3a825b6370eed91", + "rev": "3bcc267c4e0efa023b98b9c5cfbe11b88ec2dc8f", "type": "github" }, "original": { @@ -1268,11 +1310,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", + "lastModified": 1763421233, + "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", + "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", "type": "github" }, "original": { @@ -1330,11 +1372,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1762815089, - "narHash": "sha256-s4bnfnNMsKvbV4Jk5YCSks690q+MCsjmGjekqXHJsg8=", + "lastModified": 1763759767, + "narHash": "sha256-z0LznuopYN/3XGpixZzgPjknFzmIflUZYr9gUgkLBKs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d119b962754c8bcaf782aee7e83306d44e42c954", + "rev": "8e087d5ea60a39676587983dc5829a3346f18c37", "type": "github" }, "original": { @@ -1344,13 +1386,29 @@ "type": "github" } }, + "nixpkgs-rpi": { + "locked": { + "lastModified": 1761934558, + "narHash": "sha256-0gB7tv25nPv+Vkr9YNi6gOEpX5cuDTnaTZlRNHZfgqA=", + "owner": "nvmd", + "repo": "nixpkgs", + "rev": "791ec2ce5034ba9658e12ee4c33a001a38f5280a", + "type": "github" + }, + "original": { + "owner": "nvmd", + "ref": "modules-with-keys-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-stable": { "locked": { - "lastModified": 1762756533, - "narHash": "sha256-HiRDeUOD1VLklHeOmaKDzf+8Hb7vSWPVFcWwaTrpm+U=", + "lastModified": 1763622513, + "narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c2448301fb856e351aab33e64c33a3fc8bcf637d", + "rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b", "type": "github" }, "original": { @@ -1362,11 +1420,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1762596750, - "narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=", + "lastModified": 1763421233, + "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e", + "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", "type": "github" }, "original": { @@ -1394,11 +1452,27 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1762596750, - "narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=", + "lastModified": 1758583444, + "narHash": "sha256-OnYthHIsVIMrZDWtCEp6Zde8ZtMcEBnpyCIdtTKU7bo=", + "owner": "nvmd", + "repo": "nixpkgs", + "rev": "d8551a2038e21091fce8157e070bdb25dca0a94f", + "type": "github" + }, + "original": { + "owner": "nvmd", + "ref": "modules-with-keys-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1763421233, + "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e", + "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", "type": "github" }, "original": { @@ -1408,13 +1482,13 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { - "lastModified": 1762721782, - "narHash": "sha256-ftv0n3xkKawHQgxZ6FGr2F1GdaYT/79aESm4t1LQ6X4=", + "lastModified": 1763553727, + "narHash": "sha256-4aRqRkYHplWk0mrtoF5i3Uo73E3niOWiUZU8kmPm9hQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e5d07586ec39f74b390308f2e00040c23bdef530", + "rev": "094318ea16502a7a81ce90dd3638697020f030a2", "type": "github" }, "original": { @@ -1424,13 +1498,13 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { - "lastModified": 1762361079, - "narHash": "sha256-lz718rr1BDpZBYk7+G8cE6wee3PiBUpn8aomG/vLLiY=", + "lastModified": 1763191728, + "narHash": "sha256-esRhOS0APE6k40Hs/jjReXg+rx+J5LkWw7cuWFKlwYA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ffcdcf99d65c61956d882df249a9be53e5902ea5", + "rev": "1d4c88323ac36805d09657d13a5273aea1b34f0c", "type": "github" }, "original": { @@ -1440,7 +1514,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1761236834, "narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=", @@ -1456,13 +1530,13 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", + "lastModified": 1762977756, + "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", + "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55", "type": "github" }, "original": { @@ -1482,11 +1556,11 @@ ] }, "locked": { - "lastModified": 1762441963, - "narHash": "sha256-j+rNQ119ffYUkYt2YYS6rnd6Jh/crMZmbqpkGLXaEt0=", + "lastModified": 1763319842, + "narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "8e7576e79b88c16d7ee3bbd112c8d90070832885", + "rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761", "type": "github" }, "original": { @@ -1499,7 +1573,7 @@ "inputs": { "catppuccin": "catppuccin", "devenv": "devenv", - "fenix": "fenix", + "disko": "disko", "flake-parts": "flake-parts_2", "git-hooks": "git-hooks_2", "gpg-base-conf": "gpg-base-conf", @@ -1514,12 +1588,13 @@ "niri": "niri", "niri-flake": "niri-flake", "nix-gaming": "nix-gaming", - "nix-ld": "nix-ld", "nixos-hardware": "nixos-hardware", + "nixos-raspberrypi": "nixos-raspberrypi", "nixos-wsl": "nixos-wsl", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nixpkgs-latest-factorio": "nixpkgs-latest-factorio", "nixpkgs-master": "nixpkgs-master", + "nixpkgs-rpi": "nixpkgs-rpi", "nixpkgs-unstable": "nixpkgs-unstable", "simple-nixos-mailserver": "simple-nixos-mailserver", "sops-nix": "sops-nix", @@ -1530,23 +1605,6 @@ "zls": "zls" } }, - "rust-analyzer-src": { - "flake": false, - "locked": { - "lastModified": 1762722525, - "narHash": "sha256-cM1u88yehAW7S4Y4t7+fDHwmtXSOZUh24ELmAtYH37c=", - "owner": "rust-lang", - "repo": "rust-analyzer", - "rev": "21f8445ea523e83cd4f11b0a67a3a5ced2b1f56f", - "type": "github" - }, - "original": { - "owner": "rust-lang", - "ref": "nightly", - "repo": "rust-analyzer", - "type": "github" - } - }, "rust-overlay": { "inputs": { "nixpkgs": [ @@ -1573,14 +1631,14 @@ "blobs": "blobs", "flake-compat": "flake-compat_5", "git-hooks": "git-hooks_3", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1762740199, - "narHash": "sha256-B8aMgLj5moqKVDlgxo29Ef2jX9SsUkAQhJalpI9MNgA=", + "lastModified": 1763564778, + "narHash": "sha256-HSWMOylEaTtVgzIjpTbjcjVLXHDwNyV081eVUBfAcMs=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "b633223a33f6aa2a81a8f65ed056be4234bd0822", + "rev": "4987d275a90392347f84923cd4cd8efcf0aa7a22", "type": "gitlab" }, "original": { @@ -1591,14 +1649,14 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1762812535, - "narHash": "sha256-A91a+K0Q9wfdPLwL06e/kbHeAWSzPYy2EGdTDsyfb+s=", + "lastModified": 1763607916, + "narHash": "sha256-VefBA1JWRXM929mBAFohFUtQJLUnEwZ2vmYUNkFnSjE=", "owner": "Mic92", "repo": "sops-nix", - "rev": "d75e4f89e58fdda39e4809f8c52013caa22483b7", + "rev": "877bb495a6f8faf0d89fc10bd142c4b7ed2bcc0b", "type": "github" }, "original": { @@ -1669,14 +1727,14 @@ }, "treefmt-nix": { "inputs": { - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1762410071, - "narHash": "sha256-aF5fvoZeoXNPxT0bejFUBXeUjXfHLSL7g+mjR/p5TEg=", + "lastModified": 1762938485, + "narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "97a30861b13c3731a84e09405414398fbf3e109f", + "rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4", "type": "github" }, "original": { @@ -1746,11 +1804,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1762747449, - "narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=", + "lastModified": 1763704521, + "narHash": "sha256-ceYEV6PnvUN8Zixao4gpPuN+VT3B0SlAXKuPNHZhqUY=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "6338574bc5c036487486acde264f38f39ea15fad", + "rev": "f379ff5722a821212eb59ada9cf8e51cb3654aad", "type": "github" }, "original": { @@ -1762,14 +1820,14 @@ "zen-browser": { "inputs": { "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_8" }, "locked": { - "lastModified": 1762748864, - "narHash": "sha256-YgQ80R6TW9GxS0Ozaqe9mTVewuOWqwRmMUhRUpKsoCs=", + "lastModified": 1763663426, + "narHash": "sha256-txr1cH5j+b14jYGvE0BQE/6OgSyHQqGoeeEFlJz7Q8o=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "02bb5919dab81a3fea4d8d4663ea67922a463cd3", + "rev": "34fd0de7cea96cab0307cf07aa5723b60fd775ef", "type": "github" }, "original": { @@ -1787,11 +1845,11 @@ ] }, "locked": { - "lastModified": 1762735003, - "narHash": "sha256-F5mQBMc1fNZnyVzBWTB6RsSglWwpTTBekHxzPeGegD4=", + "lastModified": 1763727223, + "narHash": "sha256-xSg60w84Hd57SQqRjjBBHBxUnoMBgNt9mQDDKGBqQZg=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "b4dc0184e0cff5094d4a746a5cd34ef30f6fdc12", + "rev": "c56cf48522ffa05b64b7cfb4d49ac92b160a3aaa", "type": "github" }, "original": { @@ -1811,11 +1869,11 @@ ] }, "locked": { - "lastModified": 1761894307, - "narHash": "sha256-crrxxlCPzJqEFEHyVHuX2PD1tX+sJBLwpjuXPBFj5TM=", + "lastModified": 1763577583, + "narHash": "sha256-LRe1ctgzXPKpd5GlNoSu82isFj2VysqLI8suK5qy3JI=", "owner": "zigtools", "repo": "zls", - "rev": "24f01e406dc211fbab71cfae25f17456962d4435", + "rev": "1e267a7b422d8815bbfc44f852d23af0a2cb88b6", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 1c10ce2..36ddd47 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "All encompassing flake"; + description = "Infrastructure flake for my machines"; outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules); @@ -25,22 +25,30 @@ nixos-hardware.url = "github:nixos/nixos-hardware"; - nixos-wsl = { - url = "github:nix-community/NixOS-WSL"; + disko = { + url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; - # Run unpatched dynamically compiled binaries - nix-ld = { - url = "github:Mic92/nix-ld"; - inputs.nixpkgs.follows = "nixpkgs-unstable"; - }; + # nix-ld = { + # url = "github:Mic92/nix-ld"; + # inputs.nixpkgs.follows = "nixpkgs-unstable"; + # }; nh-flake = { url = "github:nix-community/nh"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; + # Support for special cases + nixos-wsl = { + url = "github:nix-community/NixOS-WSL"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/main"; + nixpkgs-rpi.url = "github:nvmd/nixpkgs/modules-with-keys-25.05"; + nix-gaming = { url = "github:fufexan/nix-gaming"; inputs.nixpkgs.follows = "nixpkgs-unstable"; @@ -77,7 +85,7 @@ niri-flake = { url = "github:sodiboo/niri-flake"; - # url = "github:Daholli/niri-flake/1067d35dd18f6a55f79873c944f1427a9eb7caa7"; + # url = "github:Daholli/niri-flake/1067d35dd18f6a55f79873c944f1427a9eb7caa7"; # for debugging inputs = { niri-stable.follows = "niri"; nixpkgs.follows = "nixpkgs"; @@ -89,9 +97,8 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - # GPG default configuration gpg-base-conf = { - url = "github:drduh/config"; + url = "github:drduh/config"; # GPG default configuration flake = false; }; @@ -99,8 +106,8 @@ simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver"; - ################ - ## inputs for dev shells + ### + # inputs for dev shells git-hooks = { url = "github:cachix/git-hooks.nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -111,7 +118,7 @@ # inputs.nixpkgs.follows = "nixpkgs"; }; - # zig + # Zig zig-overlay = { url = "github:mitchellh/zig-overlay"; inputs.nixpkgs.follows = "nixpkgs"; @@ -122,11 +129,5 @@ inputs.nixpkgs.follows = "nixpkgs"; inputs.zig-overlay.follows = "zig-overlay"; }; - - # rust - fenix = { - url = "github:nix-community/fenix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; } diff --git a/modules/base/fish.nix b/modules/base/fish.nix index 07424dc..d3c52ad 100644 --- a/modules/base/fish.nix +++ b/modules/base/fish.nix @@ -24,7 +24,12 @@ }; homeManager.base = - { lib, pkgs, ... }: + { + lib, + osConfig, + pkgs, + ... + }: { catppuccin.fish.enable = true; @@ -50,9 +55,9 @@ }; functions = { checkHash = "nix hash to-sri --type sha256 $(nix-prefetch-url --unpack $argv)"; - deployNixberry = "nixos-rebuild switch --flake .#nixberry --target-host nixberry --sudo --ask-sudo-password"; - deployLoptland = "nixos-rebuild switch --flake .#loptland --target-host christophhollizeck.dev --sudo --ask-sudo-password"; - checkPR = ''cd /home/cholli/projects/nixpkgs && ${lib.getExe pkgs.nixpkgs-review} pr $argv --post-result --systems "x86_64-linux aarch64-linux"''; + deployNixberry = "${lib.getExe osConfig.programs.nh.package} os switch --target-host nixberry -H nixberry"; + deployLoptland = "${lib.getExe osConfig.programs.nh.package} os switch --target-host christophhollizeck.dev -H loptland"; + checkPR = ''cd /home/cholli/projects/NixOS/nixpkgs && ${lib.getExe pkgs.nixpkgs-review} pr $argv --post-result --systems "x86_64-linux aarch64-linux"''; }; plugins = with pkgs.fishPlugins; [ { diff --git a/modules/base/git.nix b/modules/base/git.nix index f6f35ed..81d165f 100644 --- a/modules/base/git.nix +++ b/modules/base/git.nix @@ -56,7 +56,7 @@ topLevel: { }; maintenance = { repo = [ - "/home/${username}/projects/nixpkgs" + "/home/${username}/projects/NixOS/nixpkgs" "/home/${username}/projects/config" ]; strategy = "incremental"; diff --git a/modules/base/system/helix.nix b/modules/base/system/helix.nix index c04fa48..e77a9b9 100644 --- a/modules/base/system/helix.nix +++ b/modules/base/system/helix.nix @@ -137,31 +137,51 @@ language-server = { nixd = { command = "${pkgs.nixd}/bin/nixd"; + args = [ "--semantic-tokens=true" ]; + config.nixd = + let + myFlake = "(builtins.getFlake (toString /home/cholli/projects/config))"; + nixosOpts = "${myFlake}.nixosConfigurations.manin.options"; + in + { + nixpkgs.expr = "import ${myFlake}.inputs.nixpkgs { }"; + formatting.command = [ "nixfmt" ]; + options = { + nixos.expr = nixosOpts; + home-manager.expr = "${nixosOpts}.home-manager.users.type.getSubOptions []"; + }; + }; }; + marksman = { command = "${pkgs.marksman}/bin/marksman"; }; + vscode-json-language-server = { command = "${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server"; args = [ "--stdio" ]; config.provideFormatter = true; config.json.validate.enable = true; }; + vscode-html-language-server = { command = "${pkgs.vscode-langservers-extracted}/bin/vscode-html-language-server"; args = [ "--stdio" ]; config.provideFormatter = true; }; + vscode-css-language-server = { command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server"; args = [ "--stdio" ]; config.provideFormatter = true; }; + vscode-eslint-language-server = { command = "${pkgs.vscode-langservers-extracted}/bin/vscode-eslint-language-server"; args = [ "--stdio" ]; config.provideFormatter = true; }; + harper-ls = { command = "${lib.getExe pkgs.harper}"; args = [ "--stdio" ]; diff --git a/modules/base/system/nixdaemon.nix b/modules/base/system/nixdaemon.nix index da0bffe..60626fe 100644 --- a/modules/base/system/nixdaemon.nix +++ b/modules/base/system/nixdaemon.nix @@ -11,7 +11,7 @@ username = "cholli"; in { - imports = [ inputs.nix-ld.nixosModules.nix-ld ]; + # imports = [ inputs.nix-ld.nixosModules.nix-ld ]; environment.systemPackages = with pkgs; [ nixfmt-rfc-style @@ -40,7 +40,7 @@ "root" username ] - ++ lib.optional (builtins.hasAttr "native" config.services.gitea-actions-runner) "gitea-runner" + ++ lib.optional (builtins.hasAttr "native" config.services.gitea-actions-runner.instances) "gitea-runner" ++ lib.optional config.services.hydra.enable "hydra hydra-www hydra-evaluator hydra-queue-runner"; in { @@ -57,16 +57,20 @@ substituters = [ "https://cache.lix.systems" "https://nix-community.cachix.org" - "https://nixcache.christophhollizeck.dev" + "https://helix.cachix.org" "https://hyprland.cachix.org" "https://nix-gaming.cachix.org" + "https://nixos-raspberrypi.cachix.org" + "https://nixcache.christophhollizeck.dev" ]; trusted-public-keys = [ "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - "christophhollizeck.dev:7pPAvm9xqFQB8FDApVNL6Tii1Jsv+Sj/LjEIkdeGhbA=" + "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" + "nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI=" + "christophhollizeck.dev:7pPAvm9xqFQB8FDApVNL6Tii1Jsv+Sj/LjEIkdeGhbA=" ]; } // (lib.optionalAttrs config.programs.direnv.enable { diff --git a/modules/desktop/niri.nix b/modules/desktop/niri.nix index a8f4362..e526671 100644 --- a/modules/desktop/niri.nix +++ b/modules/desktop/niri.nix @@ -276,6 +276,9 @@ { app-id = "factorio"; } + { + app-id = "dota2"; + } ]; open-on-workspace = "04-games"; diff --git a/modules/dev/gh.nix b/modules/dev/gh.nix index a6dcb1e..f1bd6a1 100644 --- a/modules/dev/gh.nix +++ b/modules/dev/gh.nix @@ -8,22 +8,6 @@ enable = true; settings = { prSections = [ - { - title = "To review"; - filters = "repo:NixOS/nixpkgs is:open draft:false status:success"; - } - { - title = "1st contribution"; - filters = ''repo:NixOS/nixpkgs is:open draft:false label:"12. first-time contribution"''; - } - { - title = "1st approval"; - filters = ''repo:NixOS/nixpkgs is:open draft:false status:success label:"12.approvals: 1"''; - } - { - title = "From r-ryantm only"; - filters = ''repo:NixOS/nixpkgs is:open draft:false status:success base:master -label:"1.severity: mass-rebuild" -label:"1.severity: mass-darwin-rebuild" author:r-ryantm''; - } { title = "My PRs"; filters = "is:open author:@me"; @@ -32,6 +16,14 @@ title = "Needs my review"; filters = "is:open review-requested:@me"; } + { + title = "To review"; + filters = "repo:NixOS/nixpkgs is:open draft:false status:success"; + } + { + title = "1st contribution"; + filters = ''repo:NixOS/nixpkgs is:open draft:false label:"12. first-time contribution"''; + } { title = "Involved"; filters = "is:open involves:@me -author:@me"; @@ -47,6 +39,11 @@ }; refetchIntervalMinutes = 10; }; + repoPaths = { + "NixOS/*" = "~/projects/NixOS/*"; + "nix-community/*" = "~/projects/nix-community/*"; + "sodiboo/niri-flake" = "~/projects/niri/niri-flake/"; + }; theme.ui.table.showSeparator = false; }; }; diff --git a/modules/flake-parts/host-machines.nix b/modules/flake-parts/host-machines.nix index 30fd259..ee63975 100644 --- a/modules/flake-parts/host-machines.nix +++ b/modules/flake-parts/host-machines.nix @@ -13,24 +13,42 @@ in (lib.mapAttrs' ( name: module: let + raspberrypis = [ "nixberry" ]; + + stripped_name = lib.removePrefix prefix name; + specialArgs = { inherit inputs; hostConfig = module // { - name = lib.removePrefix prefix name; + name = stripped_name; }; + + nixos-raspberrypi = lib.mkIf (builtins.elem stripped_name raspberrypis) inputs.nixos-raspberrypi; }; in { - name = lib.removePrefix prefix name; - value = inputs.nixpkgs.lib.nixosSystem { - inherit specialArgs; - modules = module.imports ++ [ - inputs.home-manager.nixosModules.home-manager - { - home-manager.extraSpecialArgs = specialArgs; + name = stripped_name; + value = + if builtins.elem stripped_name raspberrypis then + inputs.nixos-raspberrypi.lib.nixosSystem { + inherit specialArgs; + modules = module.imports ++ [ + inputs.home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = specialArgs; + } + ]; } - ]; - }; + else + inputs.nixpkgs.lib.nixosSystem { + inherit specialArgs; + modules = module.imports ++ [ + inputs.home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = specialArgs; + } + ]; + }; } )) ]; diff --git a/modules/games/various-games.nix b/modules/games/various-games.nix index ab97c78..9149a6f 100644 --- a/modules/games/various-games.nix +++ b/modules/games/various-games.nix @@ -7,7 +7,7 @@ starsector # gaming tools - pyfa + inputs.nixpkgs-master.legacyPackages.${pkgs.stdenv.hostPlatform.system}.pyfa inputs.nixpkgs-master.legacyPackages.${pkgs.stdenv.hostPlatform.system}.rusty-path-of-building ]; }; diff --git a/modules/hosts/loptland/default.nix b/modules/hosts/loptland/default.nix index 8b15dd0..985e0e7 100644 --- a/modules/hosts/loptland/default.nix +++ b/modules/hosts/loptland/default.nix @@ -33,6 +33,7 @@ in # System modules base server + loptland-acme hydra forgejo forgejo-runner diff --git a/modules/hosts/nixberry/default.nix b/modules/hosts/nixberry/default.nix index 57dc1a5..47ff3e5 100644 --- a/modules/hosts/nixberry/default.nix +++ b/modules/hosts/nixberry/default.nix @@ -5,7 +5,277 @@ let in { - flake.modules.nixos."hosts/nixberry" = { + flake.modules.nixos."hosts/nixberry" = + { + inputs, + lib, + pkgs, + ... + }: + let - }; + ipAddress = "192.168.178.2"; + sopsFile = ../../../secrets/secrets-nixberry.yaml; + in + { + nixpkgs = { + config.allowUnfree = true; + crossSystem = lib.mkIf (pkgs.stdenv.buildPlatform.system != "aarch64-linux") ( + lib.systems.elaborate "aarch64-linux" + ); + }; + + # hack, homemanager needs it + environment.systemPackages = [ pkgs.dconf ]; + + # build failure + programs.nix-ld.enable = false; + + imports = + with config.flake.modules.nixos; + with inputs.nixos-raspberrypi.nixosModules; + [ + inputs.catppuccin.nixosModules.catppuccin + raspberry-pi-5.base + raspberry-pi-5.page-size-16k + raspberry-pi-5.display-vc4 + + # System modules + base + server + + cholli + ] + ++ [ + { + home-manager.users.cholli = { + imports = with config.flake.modules.homeManager; [ + inputs.catppuccin.homeModules.catppuccin + + # components + base + + # Activate all user based config + cholli + ]; + }; + } + ]; + + services.tailscale = { + enable = true; + useRoutingFeatures = "server"; + }; + + networking = { + interfaces.end0 = { + ipv4.addresses = [ + { + address = ipAddress; + prefixLength = 24; + } + ]; + useDHCP = true; + }; + interfaces.wlan0 = { + ipv4.addresses = [ + { + address = "192.168.178.3"; + prefixLength = 24; + } + ]; + useDHCP = true; + }; + defaultGateway = { + address = "192.168.178.1"; + interface = "wlan0"; + }; + + firewall = { + allowedTCPPorts = [ + 443 + 53 + 80 + ]; + allowedUDPPorts = [ + 53 + ]; + }; + }; + + services.adguardhome = { + enable = true; + host = ipAddress; + port = 80; + + settings = { + http = { + address = "0.0.0.0:80"; + }; + dns = { + ratelimit = 0; + bind_hosts = [ "0.0.0.0" ]; + upstream_dns = [ + "tls://unfiltered.adguard-dns.com" + "https://unfiltered.adguard-dns.com/dns-query" + "tls://dns.quad9.net" + "https://dns.quad9.net/dns-query" + "tls://security.cloudflare-dns.com" + "https://security.cloudflare-dns.com/dns-query" + ]; + upstream_mode = "parallel"; + }; + filtering = { + protection_enabled = true; + filtering_enabled = true; + rewrites = [ + { + domain = "nixberry.fritz.box"; + answer = "192.168.178.2"; + } + ]; + }; + + user_rules = [ + "||qognify.sysaidit.com^$important" + "||*.live.darktracesensor.com^$important" + ]; + + filters = + map + (url: { + enabled = true; + url = url; + }) + [ + "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt" # AdGuard Dns filter + "https://adguardteam.github.io/HostlistsRegistry/assets/filter_59.txt" # AdGuard Dns PopupHosts filter + "https://adguardteam.github.io/HostlistsRegistry/assets/filter_9.txt" # The Big List of Hacked Malware Web Sites + "https://adguardteam.github.io/HostlistsRegistry/assets/filter_11.txt" # malicious url blocklist + "https://adguardteam.github.io/HostlistsRegistry/assets/filter_18.txt" # Phishing + "https://adguardteam.github.io/HostlistsRegistry/assets/filter_24.txt" + "https://adguardteam.github.io/HostlistsRegistry/assets/filter_47.txt" + ]; + + statistics = { + enabled = true; + interval = "8760h"; + }; + clients = { + persistent = [ + { + name = "yggdrasil"; + ids = [ "192.168.178.51" ]; + tags = [ + "device_pc" + "os_linux" + ]; + uid = "019aac26-684c-7c2c-a43d-2253f4407d45"; + use_global_settings = true; + } + { + name = "nixberry"; + ids = [ "192.168.178.2" ]; + tags = [ + "device_pc" + "os_linux" + ]; + uid = "019aac5a-760e-73f9-a246-3470dae6219d"; + use_global_settings = true; + } + { + name = "work-laptop"; + ids = [ "192.168.178.48" ]; + tags = [ + "device_pc" + "os_windows" + ]; + uid = "019aac55-ae29-7c5e-aac0-baadd7157f92"; + use_global_settings = true; + } + ]; + }; + + }; + }; + + services.home-assistant = { + enable = false; + configWritable = true; + extraComponents = [ + "default_config" + "analytics" + "shopping_list" + "fritzbox" + "met" + "esphome" + "rpi_power" + "tuya" + ]; + + customComponents = with pkgs.home-assistant-custom-components; [ + smartthinq-sensors + sleep_as_android + ]; + + extraPackages = + python3Packages: with python3Packages; [ + ical + ]; + + customLovelaceModules = with pkgs.home-assistant-custom-lovelace-modules; [ + mushroom + bubble-card + clock-weather-card + vacuum-card + ]; + + config = { + homeassistant = { + latitude = 49.4; + longitude = 8.6; + temperature_unit = "C"; + unit_system = "metric"; + + external_url = "https://ha.christophhollizeck.dev"; + internal_url = "http://192.168.178.2:8123"; + }; + + default_config = ""; + + mobile_app = ""; + recorder = ""; + + lovelace = { + # mode = "yaml"; + resources = [ + { + url = "/local/nixos-lovelace-modules/vacuum-card.js"; + type = "module"; + } + { + url = "/local/nixos-lovelace-modules/bubble-card.js"; + type = "module"; + } + { + url = "/local/nixos-lovelace-modules/clock-weather-card.js"; + type = "module"; + } + { + url = "/local/nixos-lovelace-modules/mushroom.js"; + type = "module"; + } + ]; + }; + + http = { + use_x_forwarded_for = true; + trusted_proxies = [ + "100.86.250.97" # loptland tailscale + ]; + }; + }; + openFirewall = true; + }; + }; } diff --git a/modules/hosts/nixberry/disko.nix b/modules/hosts/nixberry/disko.nix new file mode 100644 index 0000000..e6b4640 --- /dev/null +++ b/modules/hosts/nixberry/disko.nix @@ -0,0 +1,224 @@ +{ + flake.modules.nixos."hosts/nixberry" = + { + inputs, + lib, + ... + }: + let + firmwarePartition = lib.recursiveUpdate { + # label = "FIRMWARE"; + priority = 1; + + type = "0700"; # Microsoft basic data + attributes = [ + 0 # Required Partition + ]; + + size = "1024M"; + content = { + type = "filesystem"; + format = "vfat"; + # mountpoint = "/boot/firmware"; + mountOptions = [ + "noatime" + "noauto" + "x-systemd.automount" + "x-systemd.idle-timeout=1min" + ]; + }; + }; + + espPartition = lib.recursiveUpdate { + # label = "ESP"; + + type = "EF00"; # EFI System Partition (ESP) + attributes = [ + 2 # Legacy BIOS Bootable, for U-Boot to find extlinux config + ]; + + size = "1024M"; + content = { + type = "filesystem"; + format = "vfat"; + # mountpoint = "/boot"; + mountOptions = [ + "noatime" + "noauto" + "x-systemd.automount" + "x-systemd.idle-timeout=1min" + "umask=0077" + ]; + }; + }; + + in + { + imports = [ inputs.disko.nixosModules.disko ]; + + boot.supportedFilesystems = [ "zfs" ]; + networking.hostId = "8425e349"; + + services.zfs.autoScrub.enable = true; + services.zfs.trim.enable = true; + + disko.devices = { + disk = { + ssd = { + device = "/dev/sda"; + content = { + type = "gpt"; + partitions = { + zfs = { + size = "100%"; + content = { + type = "zfs"; + pool = "rpool"; + }; + }; + }; + + }; + }; + + main = { + device = "/dev/mmcblk0"; + content = { + type = "gpt"; + partitions = { + FIRMWARE = firmwarePartition { + label = "FIRMWARE"; + content.mountpoint = "/boot/firmware"; + }; + ESP = espPartition { + label = "ESP"; + content.mountpoint = "/boot"; + }; + # Swap Partition + swap = { + size = "8G"; + label = "swap"; + content = { + type = "swap"; + discardPolicy = "both"; + resumeDevice = true; + }; + }; + + zfs = { + size = "100%"; + content = { + type = "zfs"; + pool = "rpool"; # zroot + }; + }; + + }; + }; + }; + }; + + zpool = { + rpool = { + type = "zpool"; + options = { + ashift = "12"; + autotrim = "on"; # see also services.zfs.trim.enable + }; + + rootFsOptions = { + "com.sun:auto-snapshot" = "false"; + # https://jrs-s.net/2018/08/17/zfs-tuning-cheat-sheet/ + compression = "lz4"; + atime = "off"; + xattr = "sa"; + acltype = "posixacl"; + # https://rubenerd.com/forgetting-to-set-utf-normalisation-on-a-zfs-pool/ + normalization = "formD"; + dnodesize = "auto"; + mountpoint = "none"; + canmount = "off"; + }; + + postCreateHook = + let + poolName = "rpool"; + in + "zfs list -t snapshot -H -o name | grep -E '^${poolName}@blank$' || zfs snapshot ${poolName}@blank"; + + datasets = { + + # stuff which can be recomputed/easily redownloaded, e.g. nix store + local = { + type = "zfs_fs"; + options.mountpoint = "none"; + }; + "local/nix" = { + type = "zfs_fs"; + options = { + reservation = "128M"; + mountpoint = "legacy"; # to manage "with traditional tools" + }; + mountpoint = "/nix"; # nixos configuration mountpoint + }; + + # _system_ data + system = { + type = "zfs_fs"; + options = { + mountpoint = "none"; + }; + }; + "system/root" = { + type = "zfs_fs"; + options = { + mountpoint = "legacy"; + }; + mountpoint = "/"; + }; + "system/var" = { + type = "zfs_fs"; + options = { + mountpoint = "legacy"; + }; + mountpoint = "/var"; + }; + + # _user_ and _user service_ data. safest, long retention policy + safe = { + type = "zfs_fs"; + options = { + copies = "2"; + mountpoint = "none"; + }; + }; + "safe/home" = { + type = "zfs_fs"; + options = { + mountpoint = "legacy"; + }; + mountpoint = "/home"; + }; + "safe/storage" = { + type = "zfs_fs"; + options = { + mountpoint = "legacy"; + "com.sun:auto-snapshot" = "true"; + }; + mountpoint = "/storage"; + }; + "safe/var/lib" = { + type = "zfs_fs"; + options = { + mountpoint = "legacy"; + }; + mountpoint = "/var/lib"; + }; + + }; + }; + }; + }; + + }; +} diff --git a/modules/hosts/yggdrasil/default.nix b/modules/hosts/yggdrasil/default.nix index d06773a..aa26ff0 100644 --- a/modules/hosts/yggdrasil/default.nix +++ b/modules/hosts/yggdrasil/default.nix @@ -13,13 +13,19 @@ in ... }: { - nixpkgs.config.allowUnfree = true; + nixpkgs = { + config.allowUnfree = true; + }; + + # Enable binfmt emulation. + boot.binfmt.emulatedSystems = [ + "aarch64-linux" + ]; environment.systemPackages = with pkgs; [ teamviewer teams-for-linux - pyfa obsidian diebahn diff --git a/modules/server/acme.nix b/modules/server/acme.nix index 2c63600..81d509f 100644 --- a/modules/server/acme.nix +++ b/modules/server/acme.nix @@ -1,5 +1,5 @@ topLevel: { - flake.modules.nixos.server = + flake.modules.nixos.loptland-acme = { config, lib, diff --git a/modules/users/cholli/default.nix b/modules/users/cholli/default.nix index e6abbf2..323184b 100644 --- a/modules/users/cholli/default.nix +++ b/modules/users/cholli/default.nix @@ -50,7 +50,12 @@ }; homeManager.cholli = - { pkgs, ... }: + { + lib, + osConfig, + pkgs, + ... + }: let defaultIconFileName = "profile.png"; in @@ -63,9 +68,15 @@ "Music/.keep".text = ""; "Pictures/.keep".text = ""; "Videos/.keep".text = ""; - "projects/.keep".text = ""; ".face".source = ./${defaultIconFileName}; "Pictures/${defaultIconFileName}".source = ./${defaultIconFileName}; + } + // lib.optionalAttrs (osConfig.networking.hostName == "yggdrasil") { + # Some Paths for my main machine + "projects/NixOS/.keep".text = ""; + "projects/nix-community/.keep".text = ""; + "projects/niri/.keep".text = ""; + "work/.keep".text = ""; }; packages = with pkgs; [ graphviz ];