Merge branch 'rewrite' into main-merge

This commit is contained in:
Christoph Hollizeck 2025-11-22 20:15:02 +01:00
commit e45c3e09d0
Signed by: Daholli
GPG key ID: 249300664F2AF2C7
16 changed files with 854 additions and 236 deletions

404
flake.lock generated
View file

@ -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": {

View file

@ -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";
};
};
}

View file

@ -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; [
{

View file

@ -56,7 +56,7 @@ topLevel: {
};
maintenance = {
repo = [
"/home/${username}/projects/nixpkgs"
"/home/${username}/projects/NixOS/nixpkgs"
"/home/${username}/projects/config"
];
strategy = "incremental";

View file

@ -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" ];

View file

@ -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 {

View file

@ -276,6 +276,9 @@
{
app-id = "factorio";
}
{
app-id = "dota2";
}
];
open-on-workspace = "04-games";

View file

@ -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;
};
};

View file

@ -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;
}
];
};
}
))
];

View file

@ -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
];
};

View file

@ -33,6 +33,7 @@ in
# System modules
base
server
loptland-acme
hydra
forgejo
forgejo-runner

View file

@ -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;
};
};
}

View file

@ -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";
};
};
};
};
};
};
}

View file

@ -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

View file

@ -1,5 +1,5 @@
topLevel: {
flake.modules.nixos.server =
flake.modules.nixos.loptland-acme =
{
config,
lib,

View file

@ -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 ];