From dbe87c7babebd6899f6be93e23e2cf0f5fa09b91 Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Mon, 17 Nov 2025 23:54:36 +0100 Subject: [PATCH 01/18] git: update paths for projects --- flake.lock | 138 +++++++++++++++---------------- modules/base/fish.nix | 2 +- modules/base/git.nix | 2 +- modules/dev/gh.nix | 29 +++---- modules/users/cholli/default.nix | 15 +++- 5 files changed, 97 insertions(+), 89 deletions(-) diff --git a/flake.lock b/flake.lock index a733d47..f39d2c9 100644 --- a/flake.lock +++ b/flake.lock @@ -110,11 +110,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1762791812, - "narHash": "sha256-O7Ne62r8hKE3FPqUsukMblxyYCFTh2jV5gHgIsI3rnE=", + "lastModified": 1762889687, + "narHash": "sha256-oKvHfeYDZ0LfuHSaFLA0w/dfZ9R6C5W8pCGUjUWawGI=", "owner": "cachix", "repo": "devenv", - "rev": "1faab0d28c573f2a8dba2cf457b9d383adba252a", + "rev": "3b4fb549962342c928aae1bbea3a13f0eeed2703", "type": "github" }, "original": { @@ -131,11 +131,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1762757174, - "narHash": "sha256-i2CZAiJNQsC7Wwk8fUZHS130W8HHLbmYqgT6ErYp5Zw=", + "lastModified": 1763016383, + "narHash": "sha256-eYmo7FNvm3q08iROzwIi8i9dWuUbJJl3uLR3OLnSmdI=", "owner": "nix-community", "repo": "fenix", - "rev": "9ada5aa8ebd5062c8c399ae59c3f77f266216a24", + "rev": "0fad5c0e5c531358e7174cd666af4608f08bc3ba", "type": "github" }, "original": { @@ -266,11 +266,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1762810396, - "narHash": "sha256-dxFVgQPG+R72dkhXTtqUm7KpxElw3u6E+YlQ2WaDgt8=", + "lastModified": 1762980239, + "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "0bdadb1b265fb4143a75bd1ec7d8c915898a9923", + "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da", "type": "github" }, "original": { @@ -350,11 +350,11 @@ ] }, "locked": { - "lastModified": 1762441963, - "narHash": "sha256-j+rNQ119ffYUkYt2YYS6rnd6Jh/crMZmbqpkGLXaEt0=", + "lastModified": 1763032142, + "narHash": "sha256-M+2QBQoC0lzkCdUQRXylR2RkcT6BCRfW3KDs+c/IGLw=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "8e7576e79b88c16d7ee3bbd112c8d90070832885", + "rev": "84255025dee4c8701a99fbff65ac3c9095952f99", "type": "github" }, "original": { @@ -521,11 +521,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1762716787, - "narHash": "sha256-YfcY28igFL5ZPCTtVBaVUvnhcWg8tyiBVSlULpXEIeQ=", + "lastModified": 1762973522, + "narHash": "sha256-CFyvvZvKDkTFF7niIQp5hhks5OR1u10H3e89chURCkg=", "owner": "helix-editor", "repo": "helix", - "rev": "a79292b630ae4a0e6e37814ad21411ab50926c73", + "rev": "948ac05aa0db64e0e5d00710db36eb244076e988", "type": "github" }, "original": { @@ -541,11 +541,11 @@ ] }, "locked": { - "lastModified": 1762787259, - "narHash": "sha256-t2U/GLLXHa2+kJkwnFNRVc2fEJ/lUfyZXBE5iKzJdcs=", + "lastModified": 1762964643, + "narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=", "owner": "nix-community", "repo": "home-manager", - "rev": "37a3d97f2873e0f68711117c34d04b7c7ead8f4e", + "rev": "827f2a23373a774a8805f84ca5344654c31f354b", "type": "github" }, "original": { @@ -701,11 +701,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1762755326, - "narHash": "sha256-YYTzQUQDnVdtN3k40sC5kq6yL70riU8bM8cQLz38jzk=", + "lastModified": 1762992484, + "narHash": "sha256-KsMb0niSk2zxZcSWjIkgcDIGwoKZXDYXdw9lVKdgga8=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "0b1d690676589503f0addece30e936a240733699", + "rev": "64ee8f8a72d62069a6bef45ca05bef1d0d412e1f", "type": "github" }, "original": { @@ -777,11 +777,11 @@ ] }, "locked": { - "lastModified": 1762115485, - "narHash": "sha256-hr53AWO96ooLCwS1a2v416eT1/aWQZmuQV0ULqhaBTY=", + "lastModified": 1762989208, + "narHash": "sha256-NBTbKW0MVIMFCjAqeoJWkg5iUucAZ9jS4Lbyax6rIBE=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "bbb8d2cb0eb667f2911103eadb3d1e8176f4462c", + "rev": "befb2670803cf7c1b9f0323449c8d9ccdaa485e2", "type": "github" }, "original": { @@ -1072,11 +1072,11 @@ ] }, "locked": { - "lastModified": 1762341531, - "narHash": "sha256-wlWo/A1lOkzvo6PHMnVMKiXuv+dyX1UBCjFpJJ6tNiY=", + "lastModified": 1762969037, + "narHash": "sha256-TUZRnrg5ZRGx0VNS+YY2OT0AS5i6+jGHUXqJEHepe20=", "owner": "nix-community", "repo": "nh", - "rev": "6c77c9371ed92ac1f93d2b7eaf9fb86ad3433bae", + "rev": "c81b763f6bb5c22d77617150ea96606cd6ddcd5e", "type": "github" }, "original": { @@ -1093,11 +1093,11 @@ "rust-overlay": [] }, "locked": { - "lastModified": 1762804232, - "narHash": "sha256-LCddK36/6u73jed1yuqbu6JKWIITsc42qoM883DgwJg=", + "lastModified": 1763014447, + "narHash": "sha256-nmu7S8J9IJKLQyIkSU8QWYHygrfw76NHGTkcr+bXMX0=", "owner": "YaLTeR", "repo": "niri", - "rev": "978c4e6c8afc0199e2cbd9037bdc7c41fbbab2a3", + "rev": "a52df533c4694b5ed0a04140af60fd26146df911", "type": "github" }, "original": { @@ -1120,11 +1120,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1762810134, - "narHash": "sha256-eu8Gkb/y/5pRS3Ml/sg3oeUtFFzlJMpDrJRgPgOXz38=", + "lastModified": 1763030490, + "narHash": "sha256-U1xBvM3vbh7GZyc2ahziMVhi4qQyQ8pRwb9l8jD4ShI=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "44c5a2c19b7b22d1b2375ef95f656291a0af3a1b", + "rev": "7920a7b0553e0bebce825b0d9deb575e26f6f6ac", "type": "github" }, "original": { @@ -1136,11 +1136,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1762804232, - "narHash": "sha256-LCddK36/6u73jed1yuqbu6JKWIITsc42qoM883DgwJg=", + "lastModified": 1763014447, + "narHash": "sha256-nmu7S8J9IJKLQyIkSU8QWYHygrfw76NHGTkcr+bXMX0=", "owner": "YaLTeR", "repo": "niri", - "rev": "978c4e6c8afc0199e2cbd9037bdc7c41fbbab2a3", + "rev": "a52df533c4694b5ed0a04140af60fd26146df911", "type": "github" }, "original": { @@ -1197,11 +1197,11 @@ ] }, "locked": { - "lastModified": 1762740007, - "narHash": "sha256-CtMgV9vfm16x/0NBQmQQe/Vbv423cPWeNfBtiVYcUBk=", + "lastModified": 1762999310, + "narHash": "sha256-G1GAqeJPD3ILR2ahmU++r1RscTTpjba/uURYITi6x5c=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "8dce0b23e30b03efbdc94e8db7cb27298446e4cc", + "rev": "4e7b35681a36b19f8dd40b15993869a479da17e4", "type": "github" }, "original": { @@ -1232,11 +1232,11 @@ }, "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": { @@ -1253,11 +1253,11 @@ ] }, "locked": { - "lastModified": 1762251193, - "narHash": "sha256-CmSddz8e2kM+ITbYutluhKZyXXwI9Sg2lf7XXSvc8oY=", + "lastModified": 1762908663, + "narHash": "sha256-HqdYfzBaidYX+EYAcXDFCggXJPZBv2fusMwhc7/4+cI=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "e001844d4553aef268f97b32d3a825b6370eed91", + "rev": "debc562c48c445f9f08778ecb9fc6b35197623ad", "type": "github" }, "original": { @@ -1330,11 +1330,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1762815089, - "narHash": "sha256-s4bnfnNMsKvbV4Jk5YCSks690q+MCsjmGjekqXHJsg8=", + "lastModified": 1763036381, + "narHash": "sha256-BmcyaNCmvT+3LzHjIA463YJGa0/XSjys8WHPPShi9pQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d119b962754c8bcaf782aee7e83306d44e42c954", + "rev": "b58839b04498171c0d143d72dd72f79f9012fe9a", "type": "github" }, "original": { @@ -1362,11 +1362,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1762596750, - "narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=", + "lastModified": 1762844143, + "narHash": "sha256-SlybxLZ1/e4T2lb1czEtWVzDCVSTvk9WLwGhmxFmBxI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e", + "rev": "9da7f1cf7f8a6e2a7cb3001b048546c92a8258b4", "type": "github" }, "original": { @@ -1394,11 +1394,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1762596750, - "narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=", + "lastModified": 1762844143, + "narHash": "sha256-SlybxLZ1/e4T2lb1czEtWVzDCVSTvk9WLwGhmxFmBxI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e", + "rev": "9da7f1cf7f8a6e2a7cb3001b048546c92a8258b4", "type": "github" }, "original": { @@ -1533,11 +1533,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1762722525, - "narHash": "sha256-cM1u88yehAW7S4Y4t7+fDHwmtXSOZUh24ELmAtYH37c=", + "lastModified": 1762860488, + "narHash": "sha256-rMfWMCOo/pPefM2We0iMBLi2kLBAnYoB9thi4qS7uk4=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "21f8445ea523e83cd4f11b0a67a3a5ced2b1f56f", + "rev": "2efc80078029894eec0699f62ec8d5c1a56af763", "type": "github" }, "original": { @@ -1594,11 +1594,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1762812535, - "narHash": "sha256-A91a+K0Q9wfdPLwL06e/kbHeAWSzPYy2EGdTDsyfb+s=", + "lastModified": 1763023272, + "narHash": "sha256-TCVNCn/GcKhwm+WlSJEZEPW4ISQdU9ICIU3lTiOLBYc=", "owner": "Mic92", "repo": "sops-nix", - "rev": "d75e4f89e58fdda39e4809f8c52013caa22483b7", + "rev": "b80c966e70fa0615352c9596315678df1de75801", "type": "github" }, "original": { @@ -1672,11 +1672,11 @@ "nixpkgs": "nixpkgs_6" }, "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": { @@ -1765,11 +1765,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1762748864, - "narHash": "sha256-YgQ80R6TW9GxS0Ozaqe9mTVewuOWqwRmMUhRUpKsoCs=", + "lastModified": 1763007974, + "narHash": "sha256-XMgjrDIHonLqIjc1eMQkLeemGcNqqYU0Dq+zNmeMYOI=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "02bb5919dab81a3fea4d8d4663ea67922a463cd3", + "rev": "eff1c79c78950ebb4ce70c3d51513e294cf30b52", "type": "github" }, "original": { @@ -1787,11 +1787,11 @@ ] }, "locked": { - "lastModified": 1762735003, - "narHash": "sha256-F5mQBMc1fNZnyVzBWTB6RsSglWwpTTBekHxzPeGegD4=", + "lastModified": 1762907712, + "narHash": "sha256-VNW/+VYIg6N4b9Iq+F0YZmm22n74IdFS7hsPLblWuOY=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "b4dc0184e0cff5094d4a746a5cd34ef30f6fdc12", + "rev": "d16453ee78765e49527c56d23386cead799b6b53", "type": "github" }, "original": { diff --git a/modules/base/fish.nix b/modules/base/fish.nix index 07424dc..f4a91c6 100644 --- a/modules/base/fish.nix +++ b/modules/base/fish.nix @@ -52,7 +52,7 @@ 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"''; + 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/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/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 ]; From f4142a971104c116cb0c49923aa9d6ce6409b29e Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Tue, 18 Nov 2025 15:43:07 +0100 Subject: [PATCH 02/18] chore: update flake --- flake.lock | 180 ++++++++++++++++++++++++++--------------------------- 1 file changed, 90 insertions(+), 90 deletions(-) diff --git a/flake.lock b/flake.lock index f39d2c9..1a946e1 100644 --- a/flake.lock +++ b/flake.lock @@ -87,11 +87,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1762510976, - "narHash": "sha256-KGoSj8qMOOPaNE48RTtuNBbqOvKLTeklnRHWWvE/TXo=", + "lastModified": 1763110997, + "narHash": "sha256-S2vF+3D/9vna3/vBV7LHiGUbp+ltPsQhvccIyim6VQg=", "owner": "catppuccin", "repo": "nix", - "rev": "728cb0a667ce37bb0c68557dba819c7fb54ff1c8", + "rev": "e6928cdd3dd20636326c2756d2bc8fd1cd825768", "type": "github" }, "original": { @@ -110,11 +110,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1762889687, - "narHash": "sha256-oKvHfeYDZ0LfuHSaFLA0w/dfZ9R6C5W8pCGUjUWawGI=", + "lastModified": 1763136231, + "narHash": "sha256-QVtIjPSQ/xVhuXSSENYOYZPfrjjc/W/djuxcJyKxGTw=", "owner": "cachix", "repo": "devenv", - "rev": "3b4fb549962342c928aae1bbea3a13f0eeed2703", + "rev": "4b8c2bbdb4e01ef8c4093ee1224fe21ed5ea1a5e", "type": "github" }, "original": { @@ -131,11 +131,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1763016383, - "narHash": "sha256-eYmo7FNvm3q08iROzwIi8i9dWuUbJJl3uLR3OLnSmdI=", + "lastModified": 1763361733, + "narHash": "sha256-ka7dpwH3HIXCyD2wl5F7cPLeRbqZoY2ullALsvxdPt8=", "owner": "nix-community", "repo": "fenix", - "rev": "0fad5c0e5c531358e7174cd666af4608f08bc3ba", + "rev": "6c8d48e3b0ae371b19ac1485744687b788e80193", "type": "github" }, "original": { @@ -284,11 +284,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 +350,11 @@ ] }, "locked": { - "lastModified": 1763032142, - "narHash": "sha256-M+2QBQoC0lzkCdUQRXylR2RkcT6BCRfW3KDs+c/IGLw=", + "lastModified": 1763319842, + "narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "84255025dee4c8701a99fbff65ac3c9095952f99", + "rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761", "type": "github" }, "original": { @@ -484,11 +484,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 +521,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1762973522, - "narHash": "sha256-CFyvvZvKDkTFF7niIQp5hhks5OR1u10H3e89chURCkg=", + "lastModified": 1763309322, + "narHash": "sha256-2M6D/i0Poh529SovRSsM+m9sYqfl9GNMmDW4efKvh/4=", "owner": "helix-editor", "repo": "helix", - "rev": "948ac05aa0db64e0e5d00710db36eb244076e988", + "rev": "d966e12930d4ea0093708457bde0951aa77660ec", "type": "github" }, "original": { @@ -541,11 +541,11 @@ ] }, "locked": { - "lastModified": 1762964643, - "narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=", + "lastModified": 1763313531, + "narHash": "sha256-yvdCYUL85zEDp2NzPUBmaNBXP6KnWEOhAk3j7PTfsKw=", "owner": "nix-community", "repo": "home-manager", - "rev": "827f2a23373a774a8805f84ca5344654c31f354b", + "rev": "3670a78eee49deebe4825fc8ecc46b172d1a8391", "type": "github" }, "original": { @@ -563,11 +563,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": { @@ -701,11 +701,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1762992484, - "narHash": "sha256-KsMb0niSk2zxZcSWjIkgcDIGwoKZXDYXdw9lVKdgga8=", + "lastModified": 1763366374, + "narHash": "sha256-gY0xTSVor/ELKmDg8mSAo/9NgFM0BReND0nXFMMz1uQ=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "64ee8f8a72d62069a6bef45ca05bef1d0d412e1f", + "rev": "2b14f27ca87aab7e05dac00dd8534cb878236536", "type": "github" }, "original": { @@ -777,11 +777,11 @@ ] }, "locked": { - "lastModified": 1762989208, - "narHash": "sha256-NBTbKW0MVIMFCjAqeoJWkg5iUucAZ9jS4Lbyax6rIBE=", + "lastModified": 1763254333, + "narHash": "sha256-u1pRjMwSxb9Cj434lomk9r4NjTZxP7X1Xb5oIX70yZ8=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "befb2670803cf7c1b9f0323449c8d9ccdaa485e2", + "rev": "a2bf2df93467d11918068d19372ed42ea6bdba61", "type": "github" }, "original": { @@ -831,11 +831,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 +962,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 +1052,11 @@ }, "import-tree": { "locked": { - "lastModified": 1762327901, - "narHash": "sha256-AJ96FNj50DU0bTyIzAPkPOjCZTHqjURVjok8qoXvmqM=", + "lastModified": 1763263999, + "narHash": "sha256-AZ4UkBJQKfaL9sX+/mzc1xBtcJk8hDQGkhjWX0Py5hU=", "owner": "vic", "repo": "import-tree", - "rev": "90fa129798be99cde036b78658e89475710966a1", + "rev": "058bd03ac818ea349946323ae3c2837b4cab7f22", "type": "github" }, "original": { @@ -1093,11 +1093,11 @@ "rust-overlay": [] }, "locked": { - "lastModified": 1763014447, - "narHash": "sha256-nmu7S8J9IJKLQyIkSU8QWYHygrfw76NHGTkcr+bXMX0=", + "lastModified": 1763370666, + "narHash": "sha256-Y4IYBfaTxffpm6UIbhY1Xfpij+aVh/C+tF9Tdg6nYig=", "owner": "YaLTeR", "repo": "niri", - "rev": "a52df533c4694b5ed0a04140af60fd26146df911", + "rev": "7f19d268b3563e3683eaca02d9665fed66ce862e", "type": "github" }, "original": { @@ -1120,11 +1120,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1763030490, - "narHash": "sha256-U1xBvM3vbh7GZyc2ahziMVhi4qQyQ8pRwb9l8jD4ShI=", + "lastModified": 1763367422, + "narHash": "sha256-ilyoR1GrMdZAv1TcLdJKeJ9JAdf97f6ldlWLwoiUWsA=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "7920a7b0553e0bebce825b0d9deb575e26f6f6ac", + "rev": "799fc36e07fc78a444803562c4ec6fe477945b4e", "type": "github" }, "original": { @@ -1136,11 +1136,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1763014447, - "narHash": "sha256-nmu7S8J9IJKLQyIkSU8QWYHygrfw76NHGTkcr+bXMX0=", + "lastModified": 1763359500, + "narHash": "sha256-FCI98SnBKggWDBHKOUh5r5Z68tHzbcNHT4qhABjAMu8=", "owner": "YaLTeR", "repo": "niri", - "rev": "a52df533c4694b5ed0a04140af60fd26146df911", + "rev": "3eef19dc7dde989e27dc61f251a611d7f9d513de", "type": "github" }, "original": { @@ -1197,11 +1197,11 @@ ] }, "locked": { - "lastModified": 1762999310, - "narHash": "sha256-G1GAqeJPD3ILR2ahmU++r1RscTTpjba/uURYITi6x5c=", + "lastModified": 1763374345, + "narHash": "sha256-CNL7TTO4MJP8Nm6hX9pUSoirnmQDH7a3ohw5u/xHy/w=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "4e7b35681a36b19f8dd40b15993869a479da17e4", + "rev": "faa8b1fd869418ea37dafe7d20000c1f660d3664", "type": "github" }, "original": { @@ -1330,11 +1330,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1763036381, - "narHash": "sha256-BmcyaNCmvT+3LzHjIA463YJGa0/XSjys8WHPPShi9pQ=", + "lastModified": 1763374130, + "narHash": "sha256-Y6nWQQFZ/OcfjDrTOpHb+2ZOG9uP9pUtOcpccIaQbRM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b58839b04498171c0d143d72dd72f79f9012fe9a", + "rev": "155fbcafbe3ee1b9fdef13e8b75e542766616aa9", "type": "github" }, "original": { @@ -1346,11 +1346,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1762756533, - "narHash": "sha256-HiRDeUOD1VLklHeOmaKDzf+8Hb7vSWPVFcWwaTrpm+U=", + "lastModified": 1763049705, + "narHash": "sha256-A5LS0AJZ1yDPTa2fHxufZN++n8MCmtgrJDtxFxrH4S8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c2448301fb856e351aab33e64c33a3fc8bcf637d", + "rev": "3acb677ea67d4c6218f33de0db0955f116b7588c", "type": "github" }, "original": { @@ -1362,11 +1362,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1762844143, - "narHash": "sha256-SlybxLZ1/e4T2lb1czEtWVzDCVSTvk9WLwGhmxFmBxI=", + "lastModified": 1763283776, + "narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9da7f1cf7f8a6e2a7cb3001b048546c92a8258b4", + "rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a", "type": "github" }, "original": { @@ -1394,11 +1394,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1762844143, - "narHash": "sha256-SlybxLZ1/e4T2lb1czEtWVzDCVSTvk9WLwGhmxFmBxI=", + "lastModified": 1763283776, + "narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9da7f1cf7f8a6e2a7cb3001b048546c92a8258b4", + "rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a", "type": "github" }, "original": { @@ -1426,11 +1426,11 @@ }, "nixpkgs_5": { "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": { @@ -1458,11 +1458,11 @@ }, "nixpkgs_7": { "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 +1482,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": { @@ -1576,11 +1576,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1762740199, - "narHash": "sha256-B8aMgLj5moqKVDlgxo29Ef2jX9SsUkAQhJalpI9MNgA=", + "lastModified": 1763317756, + "narHash": "sha256-7CD7BQR3RVKllDWfqIwAicgs2j4jzpaugxvkLU8cGgI=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "b633223a33f6aa2a81a8f65ed056be4234bd0822", + "rev": "cbdf90f639660981a55bbf6af86e6cc5f13d2752", "type": "gitlab" }, "original": { @@ -1594,11 +1594,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1763023272, - "narHash": "sha256-TCVNCn/GcKhwm+WlSJEZEPW4ISQdU9ICIU3lTiOLBYc=", + "lastModified": 1763264763, + "narHash": "sha256-N0BEoJIlJ+M6sWZJ8nnfAjGY9VLvM6MXMitRenmhBkY=", "owner": "Mic92", "repo": "sops-nix", - "rev": "b80c966e70fa0615352c9596315678df1de75801", + "rev": "882e56c8293e44d57d882b800a82f8b2ee7a858f", "type": "github" }, "original": { @@ -1765,11 +1765,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1763007974, - "narHash": "sha256-XMgjrDIHonLqIjc1eMQkLeemGcNqqYU0Dq+zNmeMYOI=", + "lastModified": 1763353619, + "narHash": "sha256-y30wSzjr7QiO4OVB/Tt7dnLRLIuK2EpaftpKeMMLGu0=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "eff1c79c78950ebb4ce70c3d51513e294cf30b52", + "rev": "7463345c68cfdd9e92e2d40e390b1a802b0f2add", "type": "github" }, "original": { @@ -1787,11 +1787,11 @@ ] }, "locked": { - "lastModified": 1762907712, - "narHash": "sha256-VNW/+VYIg6N4b9Iq+F0YZmm22n74IdFS7hsPLblWuOY=", + "lastModified": 1763339794, + "narHash": "sha256-nPkFqnwB647vQXxGx/+NvIh5Sem3vcO7cY2tNs4dzp0=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "d16453ee78765e49527c56d23386cead799b6b53", + "rev": "b683fbe756962b661922fb445c1e0d817f10db36", "type": "github" }, "original": { @@ -1811,11 +1811,11 @@ ] }, "locked": { - "lastModified": 1761894307, - "narHash": "sha256-crrxxlCPzJqEFEHyVHuX2PD1tX+sJBLwpjuXPBFj5TM=", + "lastModified": 1763315969, + "narHash": "sha256-Eyag6dfHU1WKDObd9v42iQSoeAXmMTdt9OnAOQtfBis=", "owner": "zigtools", "repo": "zls", - "rev": "24f01e406dc211fbab71cfae25f17456962d4435", + "rev": "9e8904869a0ebb40aec53eae727ec52d8d40a375", "type": "github" }, "original": { From cfc034cff2a3bee258448cad0da26421185ca0fd Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Tue, 18 Nov 2025 17:47:49 +0100 Subject: [PATCH 03/18] niri: make dota open on the proper monitor --- modules/desktop/niri.nix | 3 +++ 1 file changed, 3 insertions(+) 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"; From 7139d729e6b8cdadc6d51a38bf010fb2bab561c6 Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Fri, 21 Nov 2025 12:31:54 +0100 Subject: [PATCH 04/18] chore: update flake --- flake.lock | 174 ++++++++++++++++++++++++++--------------------------- 1 file changed, 87 insertions(+), 87 deletions(-) diff --git a/flake.lock b/flake.lock index 1a946e1..8302382 100644 --- a/flake.lock +++ b/flake.lock @@ -87,11 +87,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1763110997, - "narHash": "sha256-S2vF+3D/9vna3/vBV7LHiGUbp+ltPsQhvccIyim6VQg=", + "lastModified": 1763722042, + "narHash": "sha256-/Yc3D3Cx5buzgqxSY0CCwrnISTkJm6fxjsLx+Iwpsdk=", "owner": "catppuccin", "repo": "nix", - "rev": "e6928cdd3dd20636326c2756d2bc8fd1cd825768", + "rev": "0585eeeac6a265a688837e7d0323699f2a9ac078", "type": "github" }, "original": { @@ -110,11 +110,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1763136231, - "narHash": "sha256-QVtIjPSQ/xVhuXSSENYOYZPfrjjc/W/djuxcJyKxGTw=", + "lastModified": 1763659964, + "narHash": "sha256-rSHf01ileP1lOfeAkLrnNK1v4Wx4Yx7A2NwzfDhZD8w=", "owner": "cachix", "repo": "devenv", - "rev": "4b8c2bbdb4e01ef8c4093ee1224fe21ed5ea1a5e", + "rev": "a79cc5b53ef8639c74c48d95eae703e2c0c2ec27", "type": "github" }, "original": { @@ -131,11 +131,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1763361733, - "narHash": "sha256-ka7dpwH3HIXCyD2wl5F7cPLeRbqZoY2ullALsvxdPt8=", + "lastModified": 1763707297, + "narHash": "sha256-Bd9VGavwFBLpyU4pjiWfv73gUibNj8dc3xmOW8ff3bI=", "owner": "nix-community", "repo": "fenix", - "rev": "6c8d48e3b0ae371b19ac1485744687b788e80193", + "rev": "7c2d3a165a4a080fdcb6c191d8f9768281c99f75", "type": "github" }, "original": { @@ -376,11 +376,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": { @@ -521,11 +521,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1763309322, - "narHash": "sha256-2M6D/i0Poh529SovRSsM+m9sYqfl9GNMmDW4efKvh/4=", + "lastModified": 1763430944, + "narHash": "sha256-tL2I302ZrTeo13D99vg4v/VajVCSHdOx5RncpMcjqa0=", "owner": "helix-editor", "repo": "helix", - "rev": "d966e12930d4ea0093708457bde0951aa77660ec", + "rev": "68c7e8757f0183adeb01ba1fbbabd1cee2885b70", "type": "github" }, "original": { @@ -541,11 +541,11 @@ ] }, "locked": { - "lastModified": 1763313531, - "narHash": "sha256-yvdCYUL85zEDp2NzPUBmaNBXP6KnWEOhAk3j7PTfsKw=", + "lastModified": 1763416652, + "narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=", "owner": "nix-community", "repo": "home-manager", - "rev": "3670a78eee49deebe4825fc8ecc46b172d1a8391", + "rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312", "type": "github" }, "original": { @@ -583,11 +583,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 +701,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1763366374, - "narHash": "sha256-gY0xTSVor/ELKmDg8mSAo/9NgFM0BReND0nXFMMz1uQ=", + "lastModified": 1763681820, + "narHash": "sha256-VCkWwhftdupNWo+kncOij63uJzeFYRcrhC9+0iksW/s=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "2b14f27ca87aab7e05dac00dd8534cb878236536", + "rev": "b5a2ef77b7876798d33502f8de006f9c478c12db", "type": "github" }, "original": { @@ -777,11 +777,11 @@ ] }, "locked": { - "lastModified": 1763254333, - "narHash": "sha256-u1pRjMwSxb9Cj434lomk9r4NjTZxP7X1Xb5oIX70yZ8=", + "lastModified": 1763647792, + "narHash": "sha256-a/qTiJSwId5BzWwewT3gBVOXMptg/YSckf8DNuf5Cm0=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "a2bf2df93467d11918068d19372ed42ea6bdba61", + "rev": "a70775789ccca28d4065632c160ffcb5bcf52a5e", "type": "github" }, "original": { @@ -1052,11 +1052,11 @@ }, "import-tree": { "locked": { - "lastModified": 1763263999, - "narHash": "sha256-AZ4UkBJQKfaL9sX+/mzc1xBtcJk8hDQGkhjWX0Py5hU=", + "lastModified": 1763695721, + "narHash": "sha256-tMfN/JkwWJ129cXDW+lK2gUcjklJ+LpTHj9LlneJRXg=", "owner": "vic", "repo": "import-tree", - "rev": "058bd03ac818ea349946323ae3c2837b4cab7f22", + "rev": "ca69d64711265c68cf71f6c029ab9f1a55a767f8", "type": "github" }, "original": { @@ -1072,11 +1072,11 @@ ] }, "locked": { - "lastModified": 1762969037, - "narHash": "sha256-TUZRnrg5ZRGx0VNS+YY2OT0AS5i6+jGHUXqJEHepe20=", + "lastModified": 1763546924, + "narHash": "sha256-2w6q2KjMZyvlUIY2FoHo6KprkUdhACWr+uYzrvo+Iq4=", "owner": "nix-community", "repo": "nh", - "rev": "c81b763f6bb5c22d77617150ea96606cd6ddcd5e", + "rev": "eb1620ceddf955ac63aab59ae0fdec03631af0fa", "type": "github" }, "original": { @@ -1093,11 +1093,11 @@ "rust-overlay": [] }, "locked": { - "lastModified": 1763370666, - "narHash": "sha256-Y4IYBfaTxffpm6UIbhY1Xfpij+aVh/C+tF9Tdg6nYig=", + "lastModified": 1763709671, + "narHash": "sha256-5G/zAXHf89w9Rr5yYjNybp/+P7pGHAamD8w5XIAPVKA=", "owner": "YaLTeR", "repo": "niri", - "rev": "7f19d268b3563e3683eaca02d9665fed66ce862e", + "rev": "98006a8dbae3ffc629891c463651968c01370c97", "type": "github" }, "original": { @@ -1120,11 +1120,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1763367422, - "narHash": "sha256-ilyoR1GrMdZAv1TcLdJKeJ9JAdf97f6ldlWLwoiUWsA=", + "lastModified": 1763714659, + "narHash": "sha256-80Szc176ZqtcH5OM4CWwdB8r0IygHwkfgxeJR9LVyrQ=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "799fc36e07fc78a444803562c4ec6fe477945b4e", + "rev": "92176961412336bc5ea6344c492c485c527f78a8", "type": "github" }, "original": { @@ -1136,11 +1136,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1763359500, - "narHash": "sha256-FCI98SnBKggWDBHKOUh5r5Z68tHzbcNHT4qhABjAMu8=", + "lastModified": 1763709671, + "narHash": "sha256-5G/zAXHf89w9Rr5yYjNybp/+P7pGHAamD8w5XIAPVKA=", "owner": "YaLTeR", "repo": "niri", - "rev": "3eef19dc7dde989e27dc61f251a611d7f9d513de", + "rev": "98006a8dbae3ffc629891c463651968c01370c97", "type": "github" }, "original": { @@ -1197,11 +1197,11 @@ ] }, "locked": { - "lastModified": 1763374345, - "narHash": "sha256-CNL7TTO4MJP8Nm6hX9pUSoirnmQDH7a3ohw5u/xHy/w=", + "lastModified": 1763690104, + "narHash": "sha256-aLVWjGbOYw1stg1Ub+KAbA6BksQk1d+xBXslE233YVc=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "faa8b1fd869418ea37dafe7d20000c1f660d3664", + "rev": "db3650381678dd5d4d7d5b3f6ac1b0c69f9c7d06", "type": "github" }, "original": { @@ -1253,11 +1253,11 @@ ] }, "locked": { - "lastModified": 1762908663, - "narHash": "sha256-HqdYfzBaidYX+EYAcXDFCggXJPZBv2fusMwhc7/4+cI=", + "lastModified": 1763587902, + "narHash": "sha256-kYhcVG34C5MThK6JQp2UeGTooFgi3XEElGk2TNFcTWg=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "debc562c48c445f9f08778ecb9fc6b35197623ad", + "rev": "cce7a45e8fb3398f669bfd54aaa15047e70c81a8", "type": "github" }, "original": { @@ -1268,11 +1268,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 +1330,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1763374130, - "narHash": "sha256-Y6nWQQFZ/OcfjDrTOpHb+2ZOG9uP9pUtOcpccIaQbRM=", + "lastModified": 1763722325, + "narHash": "sha256-rGbZ5SIIz53zBbiHw3ufP4ojpJCsNgF7LhbP4IyjEnE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "155fbcafbe3ee1b9fdef13e8b75e542766616aa9", + "rev": "bc9f9ed9ceb41728dfa81d45d104598600609398", "type": "github" }, "original": { @@ -1346,11 +1346,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1763049705, - "narHash": "sha256-A5LS0AJZ1yDPTa2fHxufZN++n8MCmtgrJDtxFxrH4S8=", + "lastModified": 1763622513, + "narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3acb677ea67d4c6218f33de0db0955f116b7588c", + "rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b", "type": "github" }, "original": { @@ -1362,11 +1362,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1763283776, - "narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=", + "lastModified": 1763421233, + "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a", + "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", "type": "github" }, "original": { @@ -1394,11 +1394,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1763283776, - "narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=", + "lastModified": 1763421233, + "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a", + "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", "type": "github" }, "original": { @@ -1410,11 +1410,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1762721782, - "narHash": "sha256-ftv0n3xkKawHQgxZ6FGr2F1GdaYT/79aESm4t1LQ6X4=", + "lastModified": 1763553727, + "narHash": "sha256-4aRqRkYHplWk0mrtoF5i3Uo73E3niOWiUZU8kmPm9hQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e5d07586ec39f74b390308f2e00040c23bdef530", + "rev": "094318ea16502a7a81ce90dd3638697020f030a2", "type": "github" }, "original": { @@ -1533,11 +1533,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1762860488, - "narHash": "sha256-rMfWMCOo/pPefM2We0iMBLi2kLBAnYoB9thi4qS7uk4=", + "lastModified": 1763648203, + "narHash": "sha256-/WJdebbRD+m5vr2xy/bJdCpqd7YHSMapjuXAM/0lvtA=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "2efc80078029894eec0699f62ec8d5c1a56af763", + "rev": "eaaa2da9fbbfd7a79ff501e0563351cb2004574a", "type": "github" }, "original": { @@ -1576,11 +1576,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1763317756, - "narHash": "sha256-7CD7BQR3RVKllDWfqIwAicgs2j4jzpaugxvkLU8cGgI=", + "lastModified": 1763564778, + "narHash": "sha256-HSWMOylEaTtVgzIjpTbjcjVLXHDwNyV081eVUBfAcMs=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "cbdf90f639660981a55bbf6af86e6cc5f13d2752", + "rev": "4987d275a90392347f84923cd4cd8efcf0aa7a22", "type": "gitlab" }, "original": { @@ -1594,11 +1594,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1763264763, - "narHash": "sha256-N0BEoJIlJ+M6sWZJ8nnfAjGY9VLvM6MXMitRenmhBkY=", + "lastModified": 1763607916, + "narHash": "sha256-VefBA1JWRXM929mBAFohFUtQJLUnEwZ2vmYUNkFnSjE=", "owner": "Mic92", "repo": "sops-nix", - "rev": "882e56c8293e44d57d882b800a82f8b2ee7a858f", + "rev": "877bb495a6f8faf0d89fc10bd142c4b7ed2bcc0b", "type": "github" }, "original": { @@ -1746,11 +1746,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": { @@ -1765,11 +1765,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1763353619, - "narHash": "sha256-y30wSzjr7QiO4OVB/Tt7dnLRLIuK2EpaftpKeMMLGu0=", + "lastModified": 1763663426, + "narHash": "sha256-txr1cH5j+b14jYGvE0BQE/6OgSyHQqGoeeEFlJz7Q8o=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "7463345c68cfdd9e92e2d40e390b1a802b0f2add", + "rev": "34fd0de7cea96cab0307cf07aa5723b60fd775ef", "type": "github" }, "original": { @@ -1787,11 +1787,11 @@ ] }, "locked": { - "lastModified": 1763339794, - "narHash": "sha256-nPkFqnwB647vQXxGx/+NvIh5Sem3vcO7cY2tNs4dzp0=", + "lastModified": 1763598860, + "narHash": "sha256-XWr2PCMb5PVjowteaoDaj/npkA9i3AgCFfSwAWfLYOQ=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "b683fbe756962b661922fb445c1e0d817f10db36", + "rev": "af655d7d9bf9c1592797d1b76c346af4614b847a", "type": "github" }, "original": { @@ -1811,11 +1811,11 @@ ] }, "locked": { - "lastModified": 1763315969, - "narHash": "sha256-Eyag6dfHU1WKDObd9v42iQSoeAXmMTdt9OnAOQtfBis=", + "lastModified": 1763577583, + "narHash": "sha256-LRe1ctgzXPKpd5GlNoSu82isFj2VysqLI8suK5qy3JI=", "owner": "zigtools", "repo": "zls", - "rev": "9e8904869a0ebb40aec53eae727ec52d8d40a375", + "rev": "1e267a7b422d8815bbfc44f852d23af0a2cb88b6", "type": "github" }, "original": { From 0322c74f99cd36ef8f941b424addd3aad6c1264f Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Fri, 21 Nov 2025 14:51:19 +0100 Subject: [PATCH 05/18] nixberry: first steps towards new config --- flake.lock | 137 +++++++++----- flake.nix | 34 ++-- modules/flake-parts/host-machines.nix | 30 +++- modules/hosts/loptland/default.nix | 1 + modules/hosts/nixberry/default.nix | 248 +++++++++++++++++++++++++- modules/server/acme.nix | 2 +- 6 files changed, 374 insertions(+), 78 deletions(-) diff --git a/flake.lock b/flake.lock index 8302382..d39dce2 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": { @@ -123,27 +139,6 @@ "type": "github" } }, - "fenix": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "rust-analyzer-src": "rust-analyzer-src" - }, - "locked": { - "lastModified": 1763707297, - "narHash": "sha256-Bd9VGavwFBLpyU4pjiWfv73gUibNj8dc3xmOW8ff3bI=", - "owner": "nix-community", - "repo": "fenix", - "rev": "7c2d3a165a4a080fdcb6c191d8f9768281c99f75", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "fenix", - "type": "github" - } - }, "flake-compat": { "flake": false, "locked": { @@ -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", @@ -1393,6 +1435,22 @@ } }, "nixpkgs_3": { + "locked": { + "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=", @@ -1408,7 +1466,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1763553727, "narHash": "sha256-4aRqRkYHplWk0mrtoF5i3Uo73E3niOWiUZU8kmPm9hQ=", @@ -1424,7 +1482,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1763191728, "narHash": "sha256-esRhOS0APE6k40Hs/jjReXg+rx+J5LkWw7cuWFKlwYA=", @@ -1440,7 +1498,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1761236834, "narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=", @@ -1456,7 +1514,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { "lastModified": 1762977756, "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=", @@ -1499,7 +1557,6 @@ "inputs": { "catppuccin": "catppuccin", "devenv": "devenv", - "fenix": "fenix", "flake-parts": "flake-parts_2", "git-hooks": "git-hooks_2", "gpg-base-conf": "gpg-base-conf", @@ -1516,8 +1573,9 @@ "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-unstable": "nixpkgs-unstable", @@ -1530,23 +1588,6 @@ "zls": "zls" } }, - "rust-analyzer-src": { - "flake": false, - "locked": { - "lastModified": 1763648203, - "narHash": "sha256-/WJdebbRD+m5vr2xy/bJdCpqd7YHSMapjuXAM/0lvtA=", - "owner": "rust-lang", - "repo": "rust-analyzer", - "rev": "eaaa2da9fbbfd7a79ff501e0563351cb2004574a", - "type": "github" - }, - "original": { - "owner": "rust-lang", - "ref": "nightly", - "repo": "rust-analyzer", - "type": "github" - } - }, "rust-overlay": { "inputs": { "nixpkgs": [ @@ -1573,7 +1614,7 @@ "blobs": "blobs", "flake-compat": "flake-compat_5", "git-hooks": "git-hooks_3", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1763564778, @@ -1591,7 +1632,7 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1763607916, @@ -1669,7 +1710,7 @@ }, "treefmt-nix": { "inputs": { - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1762938485, @@ -1762,7 +1803,7 @@ "zen-browser": { "inputs": { "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_8" }, "locked": { "lastModified": 1763663426, diff --git a/flake.nix b/flake.nix index 07b0c5e..db1cc36 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,12 +25,6 @@ nixos-hardware.url = "github:nixos/nixos-hardware"; - nixos-wsl = { - url = "github:nix-community/NixOS-WSL"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - # Run unpatched dynamically compiled binaries nix-ld = { url = "github:Mic92/nix-ld"; inputs.nixpkgs.follows = "nixpkgs-unstable"; @@ -41,6 +35,15 @@ 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"; + ############ + nix-gaming = { url = "github:fufexan/nix-gaming"; inputs.nixpkgs.follows = "nixpkgs-unstable"; @@ -77,7 +80,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 +92,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 +101,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 +113,7 @@ # inputs.nixpkgs.follows = "nixpkgs"; }; - # zig + # Zig zig-overlay = { url = "github:mitchellh/zig-overlay"; inputs.nixpkgs.follows = "nixpkgs"; @@ -122,12 +124,6 @@ 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/flake-parts/host-machines.nix b/modules/flake-parts/host-machines.nix index 30fd259..8f83504 100644 --- a/modules/flake-parts/host-machines.nix +++ b/modules/flake-parts/host-machines.nix @@ -19,18 +19,32 @@ in name = lib.removePrefix prefix name; }; }; + + raspberrypis = [ "nixberry" ]; 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; + value = + if builtins.elem 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/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..9fb4340 100644 --- a/modules/hosts/nixberry/default.nix +++ b/modules/hosts/nixberry/default.nix @@ -5,7 +5,251 @@ let in { - flake.modules.nixos."hosts/nixberry" = { + flake.modules.nixos."hosts/nixberry" = + { inputs, pkgs, ... }: + let - }; + ipAddress = "192.168.178.2"; + sopsFile = ../../../secrets/secrets-nixberry.yaml; + kernelBundle = pkgs.linuxAndFirmware.v6_6_31; + in + { + nixpkgs = { + config.allowUnfree = true; + hostPlatform = { + system = "aarch64-linux"; + }; + + overlays = [ + (self: super: { + inherit (kernelBundle) raspberrypiWirelessFirmware; + inherit (kernelBundle) raspberrypifw; + }) + ]; + }; + + boot = { + loader.raspberryPi.firmwarePackage = kernelBundle.raspberrypifw; + loader.raspberryPi.bootloader = "kernel"; + kernelPackages = kernelBundle.linuxPackages_rpi5; + }; + + system.nixos.tags = + let + cfg = config.boot.loader.raspberryPi; + in + [ + "raspberry-pi-${cfg.variant}" + cfg.bootloader + config.boot.kernelPackages.kernel.version + ]; + + 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 # Recommended: optimizations and fixes for issues arising from 16k memory page size (only for systems running default rpi5 (bcm2712) kernel) + raspberry-pi-5.bluetooth + raspberry-pi-5.display-vc4 # display + + # 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"; + }; + + wireless = { + enable = true; + networks = { + "Slow Internet" = { + pskRaw = "521b6d766b27276c29c7b6bec5b495b1c52bf88b0682277e65b37dc649b630de"; + }; + }; + }; + 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 = [ + "1.1.1.1" + "1.0.0.1" + "8.8.8.8" + "8.8.4.4" + ]; + }; + filtering = { + protection_enabled = true; + filtering_enabled = true; + }; + + 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"; + }; + }; + }; + + services.home-assistant = { + enable = true; + 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/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, From d8cf6893e7342ccaa7573500103b4d77a87eb5d0 Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Fri, 21 Nov 2025 19:24:39 +0100 Subject: [PATCH 06/18] nixberry: first viable build --- flake.lock | 17 ++++++++ flake.nix | 2 +- modules/base/system/nixdaemon.nix | 2 + modules/flake-parts/host-machines.nix | 14 ++++--- modules/hosts/nixberry/default.nix | 58 +++++++++------------------ 5 files changed, 48 insertions(+), 45 deletions(-) diff --git a/flake.lock b/flake.lock index d39dce2..7c74acb 100644 --- a/flake.lock +++ b/flake.lock @@ -1386,6 +1386,22 @@ "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": 1763622513, @@ -1578,6 +1594,7 @@ "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", diff --git a/flake.nix b/flake.nix index db1cc36..b46e078 100644 --- a/flake.nix +++ b/flake.nix @@ -42,7 +42,7 @@ }; 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"; diff --git a/modules/base/system/nixdaemon.nix b/modules/base/system/nixdaemon.nix index da0bffe..9c7ca99 100644 --- a/modules/base/system/nixdaemon.nix +++ b/modules/base/system/nixdaemon.nix @@ -60,6 +60,7 @@ "https://nixcache.christophhollizeck.dev" "https://hyprland.cachix.org" "https://nix-gaming.cachix.org" + "https://nixos-raspberrypi.cachix.org" ]; trusted-public-keys = [ "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" @@ -67,6 +68,7 @@ "christophhollizeck.dev:7pPAvm9xqFQB8FDApVNL6Tii1Jsv+Sj/LjEIkdeGhbA=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" + "nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI=" ]; } // (lib.optionalAttrs config.programs.direnv.enable { diff --git a/modules/flake-parts/host-machines.nix b/modules/flake-parts/host-machines.nix index 8f83504..ee63975 100644 --- a/modules/flake-parts/host-machines.nix +++ b/modules/flake-parts/host-machines.nix @@ -13,19 +13,23 @@ 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; }; - }; - raspberrypis = [ "nixberry" ]; + nixos-raspberrypi = lib.mkIf (builtins.elem stripped_name raspberrypis) inputs.nixos-raspberrypi; + }; in { - name = lib.removePrefix prefix name; + name = stripped_name; value = - if builtins.elem name raspberrypis then + if builtins.elem stripped_name raspberrypis then inputs.nixos-raspberrypi.lib.nixosSystem { inherit specialArgs; modules = module.imports ++ [ diff --git a/modules/hosts/nixberry/default.nix b/modules/hosts/nixberry/default.nix index 9fb4340..27234cf 100644 --- a/modules/hosts/nixberry/default.nix +++ b/modules/hosts/nixberry/default.nix @@ -6,53 +6,27 @@ let in { flake.modules.nixos."hosts/nixberry" = - { inputs, pkgs, ... }: + { + inputs, + pkgs, + ... + }: let ipAddress = "192.168.178.2"; sopsFile = ../../../secrets/secrets-nixberry.yaml; - kernelBundle = pkgs.linuxAndFirmware.v6_6_31; in { nixpkgs = { config.allowUnfree = true; - hostPlatform = { - system = "aarch64-linux"; - }; - - overlays = [ - (self: super: { - inherit (kernelBundle) raspberrypiWirelessFirmware; - inherit (kernelBundle) raspberrypifw; - }) - ]; }; - boot = { - loader.raspberryPi.firmwarePackage = kernelBundle.raspberrypifw; - loader.raspberryPi.bootloader = "kernel"; - kernelPackages = kernelBundle.linuxPackages_rpi5; - }; - - system.nixos.tags = - let - cfg = config.boot.loader.raspberryPi; - in - [ - "raspberry-pi-${cfg.variant}" - cfg.bootloader - config.boot.kernelPackages.kernel.version - ]; - 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 # Recommended: optimizations and fixes for issues arising from 16k memory page size (only for systems running default rpi5 (bcm2712) kernel) - raspberry-pi-5.bluetooth - raspberry-pi-5.display-vc4 # display # System modules base @@ -105,14 +79,6 @@ in interface = "wlan0"; }; - wireless = { - enable = true; - networks = { - "Slow Internet" = { - pskRaw = "521b6d766b27276c29c7b6bec5b495b1c52bf88b0682277e65b37dc649b630de"; - }; - }; - }; firewall = { allowedTCPPorts = [ 443 @@ -251,5 +217,19 @@ in openFirewall = true; }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; + fsType = "ext4"; + }; + + fileSystems."/boot/firmware" = { + device = "/dev/disk/by-uuid/2178-694E"; + fsType = "vfat"; + options = [ + "fmask=0022" + "dmask=0022" + ]; + }; + }; } From ba7f7b88cc27b292e22757f590c6dd281a21b1f3 Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Fri, 21 Nov 2025 19:34:34 +0100 Subject: [PATCH 07/18] helix: add cache --- modules/base/system/nixdaemon.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/base/system/nixdaemon.nix b/modules/base/system/nixdaemon.nix index 9c7ca99..eeeba29 100644 --- a/modules/base/system/nixdaemon.nix +++ b/modules/base/system/nixdaemon.nix @@ -57,18 +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 { From 0155281d38af109566d998c7557f2396eb81297a Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Fri, 21 Nov 2025 19:47:53 +0100 Subject: [PATCH 08/18] helix: expand nixd --- modules/base/system/helix.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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" ]; From 1edc049e07d32cf87524fd1c3afb577c1e3e04ab Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Fri, 21 Nov 2025 20:35:34 +0100 Subject: [PATCH 09/18] nixberry: hack it to build --- modules/hosts/nixberry/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/hosts/nixberry/default.nix b/modules/hosts/nixberry/default.nix index 27234cf..947721a 100644 --- a/modules/hosts/nixberry/default.nix +++ b/modules/hosts/nixberry/default.nix @@ -21,6 +21,11 @@ in config.allowUnfree = true; }; + # hack + environment.systemPackages = [ pkgs.dconf ]; + + programs.nix-ld.enable = false; + imports = with config.flake.modules.nixos; with inputs.nixos-raspberrypi.nixosModules; From 9521f7f7fd12dd76f8099c7c43150977e172767f Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Fri, 21 Nov 2025 21:45:56 +0100 Subject: [PATCH 10/18] nixberry: more modules --- modules/hosts/nixberry/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/hosts/nixberry/default.nix b/modules/hosts/nixberry/default.nix index 947721a..b2327fa 100644 --- a/modules/hosts/nixberry/default.nix +++ b/modules/hosts/nixberry/default.nix @@ -8,6 +8,7 @@ in flake.modules.nixos."hosts/nixberry" = { inputs, + lib, pkgs, ... }: @@ -32,6 +33,8 @@ in [ inputs.catppuccin.nixosModules.catppuccin raspberry-pi-5.base + raspberry-pi-5.page-size-16k + raspberry-pi-5.display-vc4 # System modules base From 87dab6d253c2b1f208f27a9711c19ffad2b71d6f Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Sat, 22 Nov 2025 14:32:34 +0100 Subject: [PATCH 11/18] nixberry: disko --- flake.lock | 120 +++++++-------- flake.nix | 11 +- modules/base/system/nixdaemon.nix | 2 +- modules/hosts/nixberry/default.nix | 23 +-- modules/hosts/nixberry/disko.nix | 224 ++++++++++++++++++++++++++++ modules/hosts/yggdrasil/default.nix | 10 +- 6 files changed, 307 insertions(+), 83 deletions(-) create mode 100644 modules/hosts/nixberry/disko.nix diff --git a/flake.lock b/flake.lock index 7c74acb..655ab28 100644 --- a/flake.lock +++ b/flake.lock @@ -103,11 +103,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1763722042, - "narHash": "sha256-/Yc3D3Cx5buzgqxSY0CCwrnISTkJm6fxjsLx+Iwpsdk=", + "lastModified": 1763724081, + "narHash": "sha256-hCgZsbaw21R9uL3iJwG8WT3VCMXVa7xjmxGRf0nwvL4=", "owner": "catppuccin", "repo": "nix", - "rev": "0585eeeac6a265a688837e7d0323699f2a9ac078", + "rev": "e4676e1fd9b09131feadd3df556fd1d3f31fdd2d", "type": "github" }, "original": { @@ -126,11 +126,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1763659964, - "narHash": "sha256-rSHf01ileP1lOfeAkLrnNK1v4Wx4Yx7A2NwzfDhZD8w=", + "lastModified": 1763748595, + "narHash": "sha256-7vfuJK0cmLOlYCSbq7AL/dJhoz9UaYRrw55OISGWA4I=", "owner": "cachix", "repo": "devenv", - "rev": "a79cc5b53ef8639c74c48d95eae703e2c0c2ec27", + "rev": "575f7c532a6940f0fe55dfb7e527312dcdab8831", "type": "github" }, "original": { @@ -139,6 +139,26 @@ "type": "github" } }, + "disko": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1763651264, + "narHash": "sha256-8vvwZbw0s7YvBMJeyPVpWke6lg6ROgtts5N2/SMCcv4=", + "owner": "nix-community", + "repo": "disko", + "rev": "e86a89079587497174ccab6d0d142a65811a4fd9", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "disko", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -261,11 +281,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1762980239, - "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=", + "lastModified": 1763759067, + "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da", + "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", "type": "github" }, "original": { @@ -345,11 +365,11 @@ ] }, "locked": { - "lastModified": 1763319842, - "narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=", + "lastModified": 1763741496, + "narHash": "sha256-uIRqs/H18YEtMOn1OkbnPH+aNTwXKx+iU3qnxEkVUd0=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761", + "rev": "20e71a403c5de9ce5bd799031440da9728c1cda1", "type": "github" }, "original": { @@ -536,11 +556,11 @@ ] }, "locked": { - "lastModified": 1763416652, - "narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=", + "lastModified": 1763748372, + "narHash": "sha256-AUc78Qv3sWir0hvbmfXoZ7Jzq9VVL97l+sP9Jgms+JU=", "owner": "nix-community", "repo": "home-manager", - "rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312", + "rev": "d10a9b16b2a3ee28433f3d1c603f4e9f1fecb8e1", "type": "github" }, "original": { @@ -696,11 +716,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1763681820, - "narHash": "sha256-VCkWwhftdupNWo+kncOij63uJzeFYRcrhC9+0iksW/s=", + "lastModified": 1763750925, + "narHash": "sha256-Q5IO8VKW2fFHb6Ix6auy6SEMA6NS6pNeuefBai4+PHY=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "b5a2ef77b7876798d33502f8de006f9c478c12db", + "rev": "abb2f7ee6fc99c31b6fac05568f29c92b59565df", "type": "github" }, "original": { @@ -772,11 +792,11 @@ ] }, "locked": { - "lastModified": 1763647792, - "narHash": "sha256-a/qTiJSwId5BzWwewT3gBVOXMptg/YSckf8DNuf5Cm0=", + "lastModified": 1763732618, + "narHash": "sha256-hvElpSNHbYSBsn/GoJV0RgAecpn3vcC5kJso34XqwJw=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "a70775789ccca28d4065632c160ffcb5bcf52a5e", + "rev": "57961d69ad9725986290c8c0f2b0d118b645daee", "type": "github" }, "original": { @@ -1088,11 +1108,11 @@ "rust-overlay": [] }, "locked": { - "lastModified": 1763709671, - "narHash": "sha256-5G/zAXHf89w9Rr5yYjNybp/+P7pGHAamD8w5XIAPVKA=", + "lastModified": 1763729389, + "narHash": "sha256-VcToDv3/lw3q3sVIqQsMUhSGKEVdQM4h6rnr/XhPBwM=", "owner": "YaLTeR", "repo": "niri", - "rev": "98006a8dbae3ffc629891c463651968c01370c97", + "rev": "012700dd549a79c501bcab92839e5dcc46c372b5", "type": "github" }, "original": { @@ -1115,11 +1135,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1763714659, - "narHash": "sha256-80Szc176ZqtcH5OM4CWwdB8r0IygHwkfgxeJR9LVyrQ=", + "lastModified": 1763739228, + "narHash": "sha256-taQ7h8kkyigrdiAHilUXOZiqdT/cCYcpxQentuH+Krc=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "92176961412336bc5ea6344c492c485c527f78a8", + "rev": "4708ce5f7d7c7aec103e22c87c11a711eeafd1fa", "type": "github" }, "original": { @@ -1131,11 +1151,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1763709671, - "narHash": "sha256-5G/zAXHf89w9Rr5yYjNybp/+P7pGHAamD8w5XIAPVKA=", + "lastModified": 1763729389, + "narHash": "sha256-VcToDv3/lw3q3sVIqQsMUhSGKEVdQM4h6rnr/XhPBwM=", "owner": "YaLTeR", "repo": "niri", - "rev": "98006a8dbae3ffc629891c463651968c01370c97", + "rev": "012700dd549a79c501bcab92839e5dcc46c372b5", "type": "github" }, "original": { @@ -1205,26 +1225,6 @@ "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": 1762847253, @@ -1295,11 +1295,11 @@ ] }, "locked": { - "lastModified": 1763587902, - "narHash": "sha256-kYhcVG34C5MThK6JQp2UeGTooFgi3XEElGk2TNFcTWg=", + "lastModified": 1763738061, + "narHash": "sha256-VpNRcInaj1MOya8NmcqhFmdO7KGO7SSZelJQmPl6HoQ=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "cce7a45e8fb3398f669bfd54aaa15047e70c81a8", + "rev": "3bcc267c4e0efa023b98b9c5cfbe11b88ec2dc8f", "type": "github" }, "original": { @@ -1372,11 +1372,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1763722325, - "narHash": "sha256-rGbZ5SIIz53zBbiHw3ufP4ojpJCsNgF7LhbP4IyjEnE=", + "lastModified": 1763759767, + "narHash": "sha256-z0LznuopYN/3XGpixZzgPjknFzmIflUZYr9gUgkLBKs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "bc9f9ed9ceb41728dfa81d45d104598600609398", + "rev": "8e087d5ea60a39676587983dc5829a3346f18c37", "type": "github" }, "original": { @@ -1573,6 +1573,7 @@ "inputs": { "catppuccin": "catppuccin", "devenv": "devenv", + "disko": "disko", "flake-parts": "flake-parts_2", "git-hooks": "git-hooks_2", "gpg-base-conf": "gpg-base-conf", @@ -1587,7 +1588,6 @@ "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", @@ -1845,11 +1845,11 @@ ] }, "locked": { - "lastModified": 1763598860, - "narHash": "sha256-XWr2PCMb5PVjowteaoDaj/npkA9i3AgCFfSwAWfLYOQ=", + "lastModified": 1763727223, + "narHash": "sha256-xSg60w84Hd57SQqRjjBBHBxUnoMBgNt9mQDDKGBqQZg=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "af655d7d9bf9c1592797d1b76c346af4614b847a", + "rev": "c56cf48522ffa05b64b7cfb4d49ac92b160a3aaa", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index b46e078..490194b 100644 --- a/flake.nix +++ b/flake.nix @@ -25,11 +25,16 @@ nixos-hardware.url = "github:nixos/nixos-hardware"; - nix-ld = { - url = "github:Mic92/nix-ld"; - inputs.nixpkgs.follows = "nixpkgs-unstable"; + disko = { + url = "github:nix-community/disko"; + inputs.nixpkgs.follows = "nixpkgs"; }; + # nix-ld = { + # url = "github:Mic92/nix-ld"; + # inputs.nixpkgs.follows = "nixpkgs-unstable"; + # }; + nh-flake = { url = "github:nix-community/nh"; inputs.nixpkgs.follows = "nixpkgs-unstable"; diff --git a/modules/base/system/nixdaemon.nix b/modules/base/system/nixdaemon.nix index eeeba29..7d5c74a 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 diff --git a/modules/hosts/nixberry/default.nix b/modules/hosts/nixberry/default.nix index b2327fa..7199c24 100644 --- a/modules/hosts/nixberry/default.nix +++ b/modules/hosts/nixberry/default.nix @@ -20,11 +20,15 @@ in { nixpkgs = { config.allowUnfree = true; + crossSystem = lib.mkIf (pkgs.stdenv.buildPlatform.system != "aarch64-linux") ( + lib.systems.elaborate "aarch64-linux" + ); }; - # hack + # hack, homemanager needs it environment.systemPackages = [ pkgs.dconf ]; + # build failure programs.nix-ld.enable = false; imports = @@ -147,7 +151,7 @@ in }; services.home-assistant = { - enable = true; + enable = false; configWritable = true; extraComponents = [ "default_config" @@ -224,20 +228,5 @@ in }; openFirewall = true; }; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; - fsType = "ext4"; - }; - - fileSystems."/boot/firmware" = { - device = "/dev/disk/by-uuid/2178-694E"; - fsType = "vfat"; - options = [ - "fmask=0022" - "dmask=0022" - ]; - }; - }; } 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 From 4bc28ee13d1e9435399d0f883424dd2470b60039 Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Sat, 22 Nov 2025 16:32:57 +0100 Subject: [PATCH 12/18] nixberry: adjust adguardhome --- modules/hosts/nixberry/default.nix | 31 ++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/modules/hosts/nixberry/default.nix b/modules/hosts/nixberry/default.nix index 7199c24..350dc3f 100644 --- a/modules/hosts/nixberry/default.nix +++ b/modules/hosts/nixberry/default.nix @@ -116,15 +116,24 @@ in ratelimit = 0; bind_hosts = [ "0.0.0.0" ]; upstream_dns = [ - "1.1.1.1" - "1.0.0.1" - "8.8.8.8" - "8.8.4.4" + "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"; + answer = "192.168.178.2"; + } + ]; }; filters = @@ -147,6 +156,20 @@ in enabled = true; interval = "8760h"; }; + clients = { + persistent = [ + { + name = "yggdrasil"; + ids = [ "192.168.178.51" ]; + tags = [ + "device_pc" + "os_linux" + ]; + uid = "019aac26-684c-7c2c-a43d-2253f4407d45"; + } + ]; + }; + }; }; From 9822e42ea5518c2537540752a2f8dea73c805a8f Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Sat, 22 Nov 2025 16:53:00 +0100 Subject: [PATCH 13/18] adguardhome: more data persistance --- modules/hosts/nixberry/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/hosts/nixberry/default.nix b/modules/hosts/nixberry/default.nix index 350dc3f..c2548d1 100644 --- a/modules/hosts/nixberry/default.nix +++ b/modules/hosts/nixberry/default.nix @@ -130,12 +130,17 @@ in filtering_enabled = true; rewrites = [ { - domain = "nixberry"; + domain = "nixberry.fritz.box"; answer = "192.168.178.2"; } ]; }; + user_rules = [ + "||qognify.sysaidit.com^$important" + "||*.live.darktracesensor.com^$important" + ]; + filters = map (url: { @@ -166,6 +171,7 @@ in "os_linux" ]; uid = "019aac26-684c-7c2c-a43d-2253f4407d45"; + use_global_settings = true; } ]; }; From b3aa2bc9ca4f5a164984495d26e08e50fb15d3a4 Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Sat, 22 Nov 2025 17:13:41 +0100 Subject: [PATCH 14/18] adguardhome: add persistent client --- modules/hosts/nixberry/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/hosts/nixberry/default.nix b/modules/hosts/nixberry/default.nix index c2548d1..ad0bc99 100644 --- a/modules/hosts/nixberry/default.nix +++ b/modules/hosts/nixberry/default.nix @@ -173,6 +173,16 @@ in uid = "019aac26-684c-7c2c-a43d-2253f4407d45"; 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; + } ]; }; From 0647ff2d7abd455be9fa81c689bc992023487b8c Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Sat, 22 Nov 2025 17:14:02 +0100 Subject: [PATCH 15/18] fish: adjust deploy commands --- modules/base/fish.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/base/fish.nix b/modules/base/fish.nix index f4a91c6..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,8 +55,8 @@ }; 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"; + 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; [ From eb7f04f337051947dc4c8a08e778a8de6074a9cc Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Sat, 22 Nov 2025 17:14:25 +0100 Subject: [PATCH 16/18] pyfa: use master branch --- modules/games/various-games.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ]; }; From 27d05bde75f7cd540c7c2b7e97440dacbba75d31 Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Sat, 22 Nov 2025 17:18:21 +0100 Subject: [PATCH 17/18] adguardhome: add presistent client nixberry --- modules/hosts/nixberry/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/hosts/nixberry/default.nix b/modules/hosts/nixberry/default.nix index ad0bc99..47ff3e5 100644 --- a/modules/hosts/nixberry/default.nix +++ b/modules/hosts/nixberry/default.nix @@ -173,6 +173,16 @@ in 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" ]; From 97206c33560d4155d3c5eeae3ef8495462300bb4 Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Sat, 22 Nov 2025 17:35:47 +0100 Subject: [PATCH 18/18] loptland: fix runner issues --- modules/base/system/nixdaemon.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/base/system/nixdaemon.nix b/modules/base/system/nixdaemon.nix index 7d5c74a..60626fe 100644 --- a/modules/base/system/nixdaemon.nix +++ b/modules/base/system/nixdaemon.nix @@ -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 {