From e475dba094f2c2c6c4c2bc14a7dc30235a56c31e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Jun 2024 00:57:37 +0000
Subject: [PATCH 001/124] build(deps): bump
 DeterminateSystems/nix-installer-action from 10 to 12

Bumps [DeterminateSystems/nix-installer-action](https://github.com/determinatesystems/nix-installer-action) from 10 to 12.
- [Release notes](https://github.com/determinatesystems/nix-installer-action/releases)
- [Commits](https://github.com/determinatesystems/nix-installer-action/compare/v10...v12)

---
updated-dependencies:
- dependency-name: DeterminateSystems/nix-installer-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .github/workflows/nix-flake-update.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/nix-flake-update.yml b/.github/workflows/nix-flake-update.yml
index 9045f91..e267d3d 100644
--- a/.github/workflows/nix-flake-update.yml
+++ b/.github/workflows/nix-flake-update.yml
@@ -11,7 +11,7 @@ jobs:
       - name: Checkout repository
         uses: actions/checkout@v4
       - name: Install Nix
-        uses: DeterminateSystems/nix-installer-action@v10
+        uses: DeterminateSystems/nix-installer-action@v12
       - name: Update flake.lock
         uses: DeterminateSystems/update-flake-lock@v21
         with:

From 5b4cc979a9c05d08def6afe39b3b5191ab19c383 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Wed, 12 Jun 2024 16:35:00 +0200
Subject: [PATCH 002/124] flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/d14b286322c7f4f897ca4b1726ce38cb68596c94' (2024-05-20)
  → 'github:nix-community/nixos-generators/35c20ba421dfa5059e20e0ef2343c875372bdcf3' (2024-06-10)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/d6c6cf6f5fead4057d8fb2d5f30aa8ac1727f177' (2024-06-05)
  → 'github:NixOS/nixos-hardware/58b52b0dd191af70f538c707c66c682331cfdffc' (2024-06-10)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/0b8e7a1ae5a94da2e1ee3f3030a32020f6254105' (2024-06-05)
  → 'github:NixOS/nixpkgs/47b604b07d1e8146d5398b42d3306fdebd343986' (2024-06-11)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/3eb96ca1ae9edf792a8e0963cc92fddfa5a87706' (2024-06-01)
  → 'github:numtide/treefmt-nix/1cb529bffa880746a1d0ec4e0f5076876af931f1' (2024-06-11)
---
 flake.lock | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/flake.lock b/flake.lock
index d09dc7e..94e1fb2 100644
--- a/flake.lock
+++ b/flake.lock
@@ -201,11 +201,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1716210724,
-        "narHash": "sha256-iqQa3omRcHGpWb1ds75jS9ruA5R39FTmAkeR3J+ve1w=",
+        "lastModified": 1718025593,
+        "narHash": "sha256-WZ1gdKq/9u1Ns/oXuNsDm+W0salonVA0VY1amw8urJ4=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "d14b286322c7f4f897ca4b1726ce38cb68596c94",
+        "rev": "35c20ba421dfa5059e20e0ef2343c875372bdcf3",
         "type": "github"
       },
       "original": {
@@ -216,11 +216,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1717574423,
-        "narHash": "sha256-cz3P5MZffAHwL2IQaNzsqUBsJS+u0J/AAwArHMAcCa0=",
+        "lastModified": 1717995329,
+        "narHash": "sha256-lQJXEFHHVsFdFLx0bvoRbZH3IXUBsle6EWj9JroTJ/s=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "d6c6cf6f5fead4057d8fb2d5f30aa8ac1727f177",
+        "rev": "58b52b0dd191af70f538c707c66c682331cfdffc",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1717555607,
-        "narHash": "sha256-WZ1s48OODmRJ3DHC+I/DtM3tDRuRJlNqMvxvAPTD7ec=",
+        "lastModified": 1718086528,
+        "narHash": "sha256-hoB7B7oPgypePz16cKWawPfhVvMSXj4G/qLsfFuhFjw=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "0b8e7a1ae5a94da2e1ee3f3030a32020f6254105",
+        "rev": "47b604b07d1e8146d5398b42d3306fdebd343986",
         "type": "github"
       },
       "original": {
@@ -298,11 +298,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1717278143,
-        "narHash": "sha256-u10aDdYrpiGOLoxzY/mJ9llST9yO8Q7K/UlROoNxzDw=",
+        "lastModified": 1718139168,
+        "narHash": "sha256-1TZQcdETNdJMcfwwoshVeCjwWfrPtkSQ8y8wFX3it7k=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "3eb96ca1ae9edf792a8e0963cc92fddfa5a87706",
+        "rev": "1cb529bffa880746a1d0ec4e0f5076876af931f1",
         "type": "github"
       },
       "original": {

From 0d36fec85de5aa2b7beeb4b1e5d5fef1a2ac0c44 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 22 Jun 2024 11:34:42 +0200
Subject: [PATCH 003/124] fix Rust toolchain not working

---
 home/modules/helix/config/languages.toml | 2 +-
 home/pkgs.nix                            | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/home/modules/helix/config/languages.toml b/home/modules/helix/config/languages.toml
index 772a9f8..070bf61 100644
--- a/home/modules/helix/config/languages.toml
+++ b/home/modules/helix/config/languages.toml
@@ -1,5 +1,5 @@
 [language-server.rust-analyzer]
-config = { rust-analyzer = { checkOnSave = { command = "clippy" } } }
+config = { rust-analyzer = { checkOnSave = { command = "clippy" }, procMacro.enable = true } }
 
 [language-server.nixd]
 command = "nixd"
diff --git a/home/pkgs.nix b/home/pkgs.nix
index 4d69b7e..67bf482 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -109,7 +109,6 @@ with pkgs; [
   reptyr
   ripgrep
   ripgrep
-  rustup
   saleae-logic-2
   sd # search and displace like sed but with better syntax
   sieveshell

From 3d489f8cad794fa5f599ec3d19540796d6d7cd9a Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 22 Jun 2024 11:43:46 +0200
Subject: [PATCH 004/124] Added additional backup for password database

---
 home/default.nix                | 16 ++++++++++++++++
 nixos/ninurta/configuration.nix | 10 ++++++++++
 2 files changed, 26 insertions(+)

diff --git a/home/default.nix b/home/default.nix
index a523270..23ec96b 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -111,6 +111,22 @@ in
     Install.WantedBy = [ "multi-user.target" ];
   };
 
+  systemd.user.timers."backup-keepassxc-ninurta" = {
+    Unit.Description = "Backup password DB to ninurta";
+    Timer = {
+      OnBootSec = "15min";
+      OnUnitActiveSec = "1d";
+    };
+    Install.WantedBy = [ "timers.target" ];
+  };
+
+  systemd.user.services."backup-keepassxc-ninurta" = {
+    Unit.Description = "Backup password DB to ninurta";
+    Unit.Type = "oneshot";
+    Service.ExecStart = "${pkgs.openssh}/bin/scp -P 22 -i /home/dadada/.ssh/keepassxc-backup /home/dadada/lib/sync/Personal.kdbx backup-keepassxc@ninurta.bs.dadada.li:/mnt/share/backups/backup-keepassxc/Personal.kdbx";
+    Install.WantedBy = [ "multi-user.target" ];
+  };
+
   # Let Home Manager install and manage itself.
   programs.home-manager.enable = true;
 
diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index 16b629f..8bf36de 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -459,6 +459,16 @@ in
     password = "media";
   };
 
+  users.users."backup-keepassxc" = {
+    home = "/mnt/storage/backups/backup-keepassxc";
+    isNormalUser = true;
+    description = "Backup KeepassXC database";
+    extraGroups = [ ];
+    openssh.authorizedKeys.keys = [
+      "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIirODQlcTJ8e9OcFuMlYlGekrUMtDpD5HhbTmuQ+jDW KeepassXC DB backup <dadada@dadada.li>"
+    ];
+  };
+
   virtualisation.libvirtd.enable = true;
 
   documentation.enable = true;

From d6ef9e06858ad727642ad0df6482ef9bd3a31a47 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 22 Jun 2024 12:23:07 +0200
Subject: [PATCH 005/124] Fix typo

---
 home/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/home/default.nix b/home/default.nix
index 23ec96b..35bd006 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -123,7 +123,7 @@ in
   systemd.user.services."backup-keepassxc-ninurta" = {
     Unit.Description = "Backup password DB to ninurta";
     Unit.Type = "oneshot";
-    Service.ExecStart = "${pkgs.openssh}/bin/scp -P 22 -i /home/dadada/.ssh/keepassxc-backup /home/dadada/lib/sync/Personal.kdbx backup-keepassxc@ninurta.bs.dadada.li:/mnt/share/backups/backup-keepassxc/Personal.kdbx";
+    Service.ExecStart = "${pkgs.openssh}/bin/scp -P 22 -i /home/dadada/.ssh/keepassxc-backup /home/dadada/lib/sync/Personal.kdbx backup-keepassxc@ninurta.bs.dadada.li:/mnt/storage/backups/backup-keepassxc/Personal.kdbx";
     Install.WantedBy = [ "multi-user.target" ];
   };
 

From 82655a38a7231c0bcad598caf06526538abd569e Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 1 Jul 2024 13:26:45 +0200
Subject: [PATCH 006/124] fix: mitigation for CVE-2024-6387

---
 nixos/modules/profiles/base.nix | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix
index 56e17cd..eaf55e5 100644
--- a/nixos/modules/profiles/base.nix
+++ b/nixos/modules/profiles/base.nix
@@ -49,5 +49,10 @@ in
   };
 
   programs.zsh.enable = mkDefault true;
+
+  # Mitigation for CVE-2024-6387
+  # Might be vulnerable to DOS, but better than RCE ...
+  # https://github.com/NixOS/nixpkgs/pull/323753#issuecomment-2199762128
+  services.openssh.settings.LoginGraceTime = 0;
 }
 

From 116468e4af7c04d9a832a3b1466b1371899b3469 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 1 Jul 2024 14:32:28 +0200
Subject: [PATCH 007/124] fix: remove mitigation after update

---
 nixos/modules/profiles/base.nix | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix
index eaf55e5..9c78ed7 100644
--- a/nixos/modules/profiles/base.nix
+++ b/nixos/modules/profiles/base.nix
@@ -50,9 +50,5 @@ in
 
   programs.zsh.enable = mkDefault true;
 
-  # Mitigation for CVE-2024-6387
-  # Might be vulnerable to DOS, but better than RCE ...
-  # https://github.com/NixOS/nixpkgs/pull/323753#issuecomment-2199762128
-  services.openssh.settings.LoginGraceTime = 0;
 }
 

From 3c7d6111975cc46089731b45361fcd2e7534eed7 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 1 Jul 2024 14:31:02 +0200
Subject: [PATCH 008/124] flake: use nixos-*-small by default

---
 flake.lock               | 23 ++++++++++++++++++++---
 flake.nix                |  3 ++-
 nixos/configurations.nix | 10 +++++++---
 outputs.nix              |  1 +
 4 files changed, 30 insertions(+), 7 deletions(-)

diff --git a/flake.lock b/flake.lock
index 94e1fb2..05a5355 100644
--- a/flake.lock
+++ b/flake.lock
@@ -232,11 +232,27 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1718086528,
-        "narHash": "sha256-hoB7B7oPgypePz16cKWawPfhVvMSXj4G/qLsfFuhFjw=",
+        "lastModified": 1719792669,
+        "narHash": "sha256-VtQjQGdRt6MzowlxEeub86i9Z/M7DNTNwFgZqLiZQVA=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "47b604b07d1e8146d5398b42d3306fdebd343986",
+        "rev": "e980b1051c444c81afcf2fee7e4a4c78489f1863",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "nixos-24.05-small",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "nixpkgs-full": {
+      "locked": {
+        "lastModified": 1719707984,
+        "narHash": "sha256-RoxIr/fbndtuKqulGvNCcuzC6KdAib85Q8gXnjzA1dw=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "7dca15289a1c2990efbe4680f0923ce14139b042",
         "type": "github"
       },
       "original": {
@@ -257,6 +273,7 @@
         "nixos-generators": "nixos-generators",
         "nixos-hardware": "nixos-hardware",
         "nixpkgs": "nixpkgs",
+        "nixpkgs-full": "nixpkgs-full",
         "systems": "systems_2",
         "treefmt-nix": "treefmt-nix"
       }
diff --git a/flake.nix b/flake.nix
index fb8c468..ccc986c 100644
--- a/flake.nix
+++ b/flake.nix
@@ -2,7 +2,8 @@
   description = "dadada's nix flake";
 
   inputs = {
-    nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
+    nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05-small";
+    nixpkgs-full.url = "github:NixOS/nixpkgs/nixos-24.05";
     flake-utils = {
       url = "github:numtide/flake-utils";
       inputs.systems.follows = "systems";
diff --git a/nixos/configurations.nix b/nixos/configurations.nix
index d587829..41aabe8 100644
--- a/nixos/configurations.nix
+++ b/nixos/configurations.nix
@@ -1,6 +1,7 @@
 { self
 , agenix
 , nixpkgs
+, nixpkgs-full
 , home-manager
 , homepage
 , nixos-hardware
@@ -8,17 +9,19 @@
 , ...
 }@inputs:
 let
-  nixosSystem = { system ? "x86_64-linux", extraModules ? [ ] }: nixpkgs.lib.nixosSystem {
+  nixosSystem = { n_nixpkgs ? nixpkgs, system ? "x86_64-linux", extraModules ? [ ] }: n_nixpkgs.lib.nixosSystem {
     inherit system;
 
     modules = [{
 
-      nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays;
-    }] ++ (nixpkgs.lib.attrValues self.nixosModules) ++ [ agenix.nixosModules.age ] ++ extraModules;
+      nixpkgs.overlays = n_nixpkgs.lib.attrValues self.overlays;
+    }] ++ (n_nixpkgs.lib.attrValues self.nixosModules) ++ [ agenix.nixosModules.age ] ++ extraModules;
   };
 in
 {
   gorgon = nixosSystem rec {
+    n_nixpkgs = nixpkgs-full;
+
     system = "x86_64-linux";
 
     extraModules = [
@@ -83,6 +86,7 @@ in
   };
 
   ninurta = nixosSystem {
+    n_nixpkgs = nixpkgs-full;
     extraModules = [
       ./ninurta/configuration.nix
     ];
diff --git a/outputs.nix b/outputs.nix
index 8199211..b96b7bb 100644
--- a/outputs.nix
+++ b/outputs.nix
@@ -6,6 +6,7 @@
 , nixpkgs
 , home-manager
 , nixos-hardware
+, nixpkgs-full
 , agenix
 , devshell
 , ...

From b66b445553c127afaafecad45518ad7306efc195 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 1 Jul 2024 14:32:48 +0200
Subject: [PATCH 009/124] feat: move SSH to non-default port

---
 nixos/modules/gitea.nix         | 5 +++++
 nixos/modules/profiles/base.nix | 2 ++
 2 files changed, 7 insertions(+)

diff --git a/nixos/modules/gitea.nix b/nixos/modules/gitea.nix
index f73ddc0..0c808bc 100644
--- a/nixos/modules/gitea.nix
+++ b/nixos/modules/gitea.nix
@@ -37,6 +37,11 @@ in
           LANDING_PAGE = "explore";
           OFFLINE_MODE = true;
           DISABLE_SSH = false;
+
+          # Use built-in SSH server
+          START_SSH_SERVER = true;
+          SSH_PORT = 22;
+
           DOMAIN = "git.dadada.li";
         };
         picture = {
diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix
index 9c78ed7..fdeb0ee 100644
--- a/nixos/modules/profiles/base.nix
+++ b/nixos/modules/profiles/base.nix
@@ -50,5 +50,7 @@ in
 
   programs.zsh.enable = mkDefault true;
 
+  # Avoid some bots
+  services.openssh.ports = [ 2222 ];
 }
 

From 0015d9d8e13030d214ff8929fefd12dba803d851 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 1 Jul 2024 14:33:55 +0200
Subject: [PATCH 010/124] flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/845a5c4c073f74105022533907703441e0464bc3' (2024-06-04)
  → 'github:nix-community/home-manager/391ca6e950c2525b4f853cbe29922452c14eda82' (2024-07-01)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/35c20ba421dfa5059e20e0ef2343c875372bdcf3' (2024-06-10)
  → 'github:nix-community/nixos-generators/f7a029d41e49ff0747888105e1ed4314dca8436f' (2024-07-01)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/3c62b6a12571c9a7f65ab037173ee153d539905f' (2024-04-07)
  → 'github:nix-community/nixpkgs.lib/1bba8a624b3b9d4f68db94fb63aaeb46039ce9e6' (2024-06-30)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/58b52b0dd191af70f538c707c66c682331cfdffc' (2024-06-10)
  → 'github:NixOS/nixos-hardware/a59f00f5ac65b19382617ba00f360f8bc07ed3ac' (2024-06-29)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e980b1051c444c81afcf2fee7e4a4c78489f1863' (2024-07-01)
  → 'github:NixOS/nixpkgs/10c832d0548e9e3a6df7eb51e68c2783212a303e' (2024-07-01)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/1cb529bffa880746a1d0ec4e0f5076876af931f1' (2024-06-11)
  → 'github:numtide/treefmt-nix/8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd' (2024-06-30)
---
 flake.lock | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/flake.lock b/flake.lock
index 05a5355..8bea2a7 100644
--- a/flake.lock
+++ b/flake.lock
@@ -148,11 +148,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1717527182,
-        "narHash": "sha256-vWSkg6AMok1UUQiSYVdGMOXKD2cDFnajITiSi0Zjd1A=",
+        "lastModified": 1719827385,
+        "narHash": "sha256-qs+nU20Sm8czHg3bhGCqiH+8e13BJyRrKONW34g3i50=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "845a5c4c073f74105022533907703441e0464bc3",
+        "rev": "391ca6e950c2525b4f853cbe29922452c14eda82",
         "type": "github"
       },
       "original": {
@@ -180,11 +180,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1712450863,
-        "narHash": "sha256-K6IkdtMtq9xktmYPj0uaYc8NsIqHuaAoRBaMgu9Fvrw=",
+        "lastModified": 1719708727,
+        "narHash": "sha256-XFNKtyirrGNdehpg7lMNm1skEcBApjqGhaHc/OI95HY=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "3c62b6a12571c9a7f65ab037173ee153d539905f",
+        "rev": "1bba8a624b3b9d4f68db94fb63aaeb46039ce9e6",
         "type": "github"
       },
       "original": {
@@ -201,11 +201,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1718025593,
-        "narHash": "sha256-WZ1gdKq/9u1Ns/oXuNsDm+W0salonVA0VY1amw8urJ4=",
+        "lastModified": 1719796208,
+        "narHash": "sha256-8lsuMR3rnX4yUPPjz04opgb30Z47sCgZu4TIszWBW9A=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "35c20ba421dfa5059e20e0ef2343c875372bdcf3",
+        "rev": "f7a029d41e49ff0747888105e1ed4314dca8436f",
         "type": "github"
       },
       "original": {
@@ -216,11 +216,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1717995329,
-        "narHash": "sha256-lQJXEFHHVsFdFLx0bvoRbZH3IXUBsle6EWj9JroTJ/s=",
+        "lastModified": 1719681865,
+        "narHash": "sha256-Lp+l1IsREVbz8WM35OJYZz8sAH0XOjrZWUXVB5bJ2qg=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "58b52b0dd191af70f538c707c66c682331cfdffc",
+        "rev": "a59f00f5ac65b19382617ba00f360f8bc07ed3ac",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1719792669,
-        "narHash": "sha256-VtQjQGdRt6MzowlxEeub86i9Z/M7DNTNwFgZqLiZQVA=",
+        "lastModified": 1719825363,
+        "narHash": "sha256-2ASBatUTQWNIiTeBZRuxROu27MyOavVnzeCv7h40QNw=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "e980b1051c444c81afcf2fee7e4a4c78489f1863",
+        "rev": "10c832d0548e9e3a6df7eb51e68c2783212a303e",
         "type": "github"
       },
       "original": {
@@ -315,11 +315,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1718139168,
-        "narHash": "sha256-1TZQcdETNdJMcfwwoshVeCjwWfrPtkSQ8y8wFX3it7k=",
+        "lastModified": 1719749022,
+        "narHash": "sha256-ddPKHcqaKCIFSFc/cvxS14goUhCOAwsM1PbMr0ZtHMg=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "1cb529bffa880746a1d0ec4e0f5076876af931f1",
+        "rev": "8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd",
         "type": "github"
       },
       "original": {

From 25f782e2fa2a696013e7103b0ddcd354614d3546 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 1 Jul 2024 15:12:47 +0200
Subject: [PATCH 011/124] fix: snapperd config

---
 nixos/ninurta/configuration.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index 8bf36de..003cdbc 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -225,10 +225,10 @@ in
       SUBVOLUME = "/home";
       TIMELINE_CREATE = true;
       TIMELINE_CLEANUP = true;
-      TIMELINE_LIMIT_HOURLY = 24;
-      TIMELINE_LIMIT_DAILY = 13;
-      TIMELINE_LIMIT_WEEKLY = 6;
-      TIMELINE_LIMIT_MONTHLY = 3;
+      TIMELINE_LIMIT_HOURLY = "24";
+      TIMELINE_LIMIT_DAILY = "13";
+      TIMELINE_LIMIT_WEEKLY = "6";
+      TIMELINE_LIMIT_MONTHLY = "3";
     };
     configs.var = {
       SUBVOLUME = "/var";

From c25ecee64a3e7422a8191df8944c39cbad52e4e5 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 1 Jul 2024 15:14:28 +0200
Subject: [PATCH 012/124] fix: all snapperd configs

---
 nixos/ninurta/configuration.nix | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index 003cdbc..1023d5f 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -234,19 +234,19 @@ in
       SUBVOLUME = "/var";
       TIMELINE_CREATE = true;
       TIMELINE_CLEANUP = true;
-      TIMELINE_LIMIT_HOURLY = 24;
-      TIMELINE_LIMIT_DAILY = 13;
-      TIMELINE_LIMIT_WEEKLY = 6;
-      TIMELINE_LIMIT_MONTHLY = 3;
+      TIMELINE_LIMIT_HOURLY = "24";
+      TIMELINE_LIMIT_DAILY = "13";
+      TIMELINE_LIMIT_WEEKLY = "6";
+      TIMELINE_LIMIT_MONTHLY = "3";
     };
     configs.storage = {
       SUBVOLUME = "/mnt/storage";
       TIMELINE_CREATE = true;
       TIMELINE_CLEANUP = true;
-      TIMELINE_LIMIT_HOURLY = 24;
-      TIMELINE_LIMIT_DAILY = 13;
-      TIMELINE_LIMIT_WEEKLY = 6;
-      TIMELINE_LIMIT_MONTHLY = 3;
+      TIMELINE_LIMIT_HOURLY = "24";
+      TIMELINE_LIMIT_DAILY = "13";
+      TIMELINE_LIMIT_WEEKLY = "6";
+      TIMELINE_LIMIT_MONTHLY = "3";
     };
   };
 

From 04ed7401af03557c9622e0928b201a5c227c167b Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 2 Jul 2024 12:07:19 +0200
Subject: [PATCH 013/124] flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/f7a029d41e49ff0747888105e1ed4314dca8436f' (2024-07-01)
  → 'github:nix-community/nixos-generators/140dcc2b9a0eb87ba5e9011076a1a7af19179ab1' (2024-07-01)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/a59f00f5ac65b19382617ba00f360f8bc07ed3ac' (2024-06-29)
  → 'github:NixOS/nixos-hardware/6e253f12b1009053eff5344be5e835f604bb64cd' (2024-07-02)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/7dca15289a1c2990efbe4680f0923ce14139b042' (2024-06-30)
  → 'github:NixOS/nixpkgs/d032c1a6dfad4eedec7e35e91986becc699d7d69' (2024-07-01)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd' (2024-06-30)
  → 'github:numtide/treefmt-nix/bdb6355009562d8f9313d9460c0d3860f525bc6c' (2024-07-02)
---
 flake.lock | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/flake.lock b/flake.lock
index 8bea2a7..37e8d2e 100644
--- a/flake.lock
+++ b/flake.lock
@@ -201,11 +201,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1719796208,
-        "narHash": "sha256-8lsuMR3rnX4yUPPjz04opgb30Z47sCgZu4TIszWBW9A=",
+        "lastModified": 1719841141,
+        "narHash": "sha256-WOyohxFJJdfDvEB7N3eTcX44lNU2rZes1inHsyHL7mM=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "f7a029d41e49ff0747888105e1ed4314dca8436f",
+        "rev": "140dcc2b9a0eb87ba5e9011076a1a7af19179ab1",
         "type": "github"
       },
       "original": {
@@ -216,11 +216,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1719681865,
-        "narHash": "sha256-Lp+l1IsREVbz8WM35OJYZz8sAH0XOjrZWUXVB5bJ2qg=",
+        "lastModified": 1719895800,
+        "narHash": "sha256-xNbjISJTFailxass4LmdWeV4jNhAlmJPwj46a/GxE6M=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "a59f00f5ac65b19382617ba00f360f8bc07ed3ac",
+        "rev": "6e253f12b1009053eff5344be5e835f604bb64cd",
         "type": "github"
       },
       "original": {
@@ -248,11 +248,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1719707984,
-        "narHash": "sha256-RoxIr/fbndtuKqulGvNCcuzC6KdAib85Q8gXnjzA1dw=",
+        "lastModified": 1719838683,
+        "narHash": "sha256-Zw9rQjHz1ilNIimEXFeVa1ERNRBF8DoXDhLAZq5B4pE=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "7dca15289a1c2990efbe4680f0923ce14139b042",
+        "rev": "d032c1a6dfad4eedec7e35e91986becc699d7d69",
         "type": "github"
       },
       "original": {
@@ -315,11 +315,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1719749022,
-        "narHash": "sha256-ddPKHcqaKCIFSFc/cvxS14goUhCOAwsM1PbMr0ZtHMg=",
+        "lastModified": 1719887753,
+        "narHash": "sha256-p0B2r98UtZzRDM5miGRafL4h7TwGRC4DII+XXHDHqek=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd",
+        "rev": "bdb6355009562d8f9313d9460c0d3860f525bc6c",
         "type": "github"
       },
       "original": {

From 7e464a5f2693beb45f6f3a4307f975595da9de9b Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 2 Jul 2024 12:12:21 +0200
Subject: [PATCH 014/124] fix: overwrite flake registry set by NixOS

---
 nixos/modules/profiles/laptop.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/nixos/modules/profiles/laptop.nix b/nixos/modules/profiles/laptop.nix
index cc36988..85e8e86 100644
--- a/nixos/modules/profiles/laptop.nix
+++ b/nixos/modules/profiles/laptop.nix
@@ -20,8 +20,8 @@ with lib; {
   programs.ssh.enableAskPassword = true;
   programs.nix-ld.enable = true;
 
-  nix.nixPath = lib.mapAttrsToList (name: value: "${name}=${value}") inputs;
-  nix.registry = lib.mapAttrs' (name: value: lib.nameValuePair name { flake = value; }) inputs;
+  nix.nixPath = mapAttrsToList (name: value: "${name}=${value}") inputs;
+  nix.registry = mkForce (mapAttrs' (name: value: nameValuePair name { flake = value; }) inputs);
   nix.settings.flake-registry = "${config.dadada.inputs.flake-registry}/flake-registry.json";
 
   age.identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];

From 149a4313013631a7d55e6c4c7a91430da1c856ca Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Thu, 4 Jul 2024 23:12:12 +0200
Subject: [PATCH 015/124] fix: allow forgejo to bind to tcp port 22

---
 nixos/modules/gitea.nix | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/nixos/modules/gitea.nix b/nixos/modules/gitea.nix
index 0c808bc..259815a 100644
--- a/nixos/modules/gitea.nix
+++ b/nixos/modules/gitea.nix
@@ -74,6 +74,12 @@ in
       vmOverCommit = true;
     };
 
+    systemd.services.forgejo.serviceConfig = {
+      AmbientCapabilities = lib.mkForce "CAP_NET_BIND_SERVICE";
+      CapabilityBoundingSet = lib.mkForce "CAP_NET_BIND_SERVICE";
+      PrivateUsers = lib.mkForce false;
+    };
+
     services.nginx.virtualHosts."git.${config.networking.domain}" = {
       enableACME = true;
       forceSSL = true;

From b104e57b4d94877aedc22f6270e13cafd5a42bc0 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 5 Jul 2024 00:23:42 +0200
Subject: [PATCH 016/124] feat: change remote to git.dadada.li

---
 flake.lock                        | 14 +++++---------
 flake.nix                         |  2 +-
 nixos/modules/profiles/server.nix |  2 +-
 3 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/flake.lock b/flake.lock
index 37e8d2e..0e5392c 100644
--- a/flake.lock
+++ b/flake.lock
@@ -165,17 +165,13 @@
     "homepage": {
       "flake": false,
       "locked": {
-        "lastModified": 1714328013,
-        "narHash": "sha256-nA/7hKv8qz2+ru84rXiMa52+gyvyIhLWP9tJB6Q/DLQ=",
-        "owner": "dadada",
-        "repo": "dadada.li",
-        "rev": "b971b5905b38be19b4fa4e7d99a70df0aebfba28",
-        "type": "github"
+        "narHash": "sha256-3uMz0OG3OopSIilqI9Gx2fyQZe76YEOhRUx0qJM2kP4=",
+        "type": "file",
+        "url": "https://git.dadada.li/dadada/dadada.li.git"
       },
       "original": {
-        "owner": "dadada",
-        "repo": "dadada.li",
-        "type": "github"
+        "type": "file",
+        "url": "https://git.dadada.li/dadada/dadada.li.git"
       }
     },
     "nixlib": {
diff --git a/flake.nix b/flake.nix
index ccc986c..b2d98be 100644
--- a/flake.nix
+++ b/flake.nix
@@ -14,7 +14,7 @@
     };
     nixos-hardware.url = "github:NixOS/nixos-hardware/master";
     homepage = {
-      url = "github:dadada/dadada.li";
+      url = "https://git.dadada.li/dadada/dadada.li.git";
       flake = false;
     };
     agenix = {
diff --git a/nixos/modules/profiles/server.nix b/nixos/modules/profiles/server.nix
index c10979a..925f20e 100644
--- a/nixos/modules/profiles/server.nix
+++ b/nixos/modules/profiles/server.nix
@@ -24,7 +24,7 @@ with lib; {
 
   system.autoUpgrade = {
     enable = true;
-    flake = "github:dadada/nix-config#${config.networking.hostName}";
+    flake = "https://git.dadada.li/dadada/nix-config.git#${config.networking.hostName}";
     allowReboot = mkDefault false;
     randomizedDelaySec = "45min";
   };

From 4678969432208232cf3b9587fc75a1e3019b9408 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 5 Jul 2024 00:24:26 +0200
Subject: [PATCH 017/124] feat: add more supported locals

To enable more units.
---
 nixos/modules/profiles/base.nix | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix
index fdeb0ee..e375cc9 100644
--- a/nixos/modules/profiles/base.nix
+++ b/nixos/modules/profiles/base.nix
@@ -14,6 +14,12 @@ in
     keyMap = "us";
   };
 
+  i18n.supportedLocales = mkDefault [
+    "C.UTF-8/UTF-8"
+    "en_US.UTF-8/UTF-8"
+    "de_DE.UTF-8/UTF-8"
+  ];
+
   time.timeZone = mkDefault "Europe/Berlin";
 
   nix.settings.substituters = [ https://cache.nixos.org/ ];

From cae05647661195f9588952aeb0123d52c6d72b12 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Wed, 17 Jul 2024 20:40:29 +0200
Subject: [PATCH 018/124] flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/391ca6e950c2525b4f853cbe29922452c14eda82' (2024-07-01)
  → 'github:nix-community/home-manager/e1391fb22e18a36f57e6999c7a9f966dc80ac073' (2024-07-03)
• Updated input 'homepage':
    'https://git.dadada.li/dadada/dadada.li.git?narHash=sha256-3uMz0OG3OopSIilqI9Gx2fyQZe76YEOhRUx0qJM2kP4%3D'
  → 'https://git.dadada.li/dadada/dadada.li.git?narHash=sha256-Q6hzrC9mtLnk1EA%2Bh262S09CGliVL1HsLnh8f3dqAn4%3D'
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/140dcc2b9a0eb87ba5e9011076a1a7af19179ab1' (2024-07-01)
  → 'github:nix-community/nixos-generators/076ea5b672bb1ea535ee84cfdabd0c2f0b7f20c7' (2024-07-13)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/6e253f12b1009053eff5344be5e835f604bb64cd' (2024-07-02)
  → 'github:NixOS/nixos-hardware/c5013aa7ce2c7ec90acee5d965d950c8348db751' (2024-07-11)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/10c832d0548e9e3a6df7eb51e68c2783212a303e' (2024-07-01)
  → 'github:NixOS/nixpkgs/732b4f3a3afdfe6a6c4fcb2511e529588d4e5ccd' (2024-07-15)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/d032c1a6dfad4eedec7e35e91986becc699d7d69' (2024-07-01)
  → 'github:NixOS/nixpkgs/53e81e790209e41f0c1efa9ff26ff2fd7ab35e27' (2024-07-14)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/bdb6355009562d8f9313d9460c0d3860f525bc6c' (2024-07-02)
  → 'github:numtide/treefmt-nix/0fb28f237f83295b4dd05e342f333b447c097398' (2024-07-15)
---
 flake.lock | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/flake.lock b/flake.lock
index 0e5392c..bc928d6 100644
--- a/flake.lock
+++ b/flake.lock
@@ -148,11 +148,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1719827385,
-        "narHash": "sha256-qs+nU20Sm8czHg3bhGCqiH+8e13BJyRrKONW34g3i50=",
+        "lastModified": 1720042825,
+        "narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "391ca6e950c2525b4f853cbe29922452c14eda82",
+        "rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073",
         "type": "github"
       },
       "original": {
@@ -165,7 +165,7 @@
     "homepage": {
       "flake": false,
       "locked": {
-        "narHash": "sha256-3uMz0OG3OopSIilqI9Gx2fyQZe76YEOhRUx0qJM2kP4=",
+        "narHash": "sha256-Q6hzrC9mtLnk1EA+h262S09CGliVL1HsLnh8f3dqAn4=",
         "type": "file",
         "url": "https://git.dadada.li/dadada/dadada.li.git"
       },
@@ -197,11 +197,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1719841141,
-        "narHash": "sha256-WOyohxFJJdfDvEB7N3eTcX44lNU2rZes1inHsyHL7mM=",
+        "lastModified": 1720859326,
+        "narHash": "sha256-i8BiZj5faQS6gsupE0S9xtiyZmWinGpVLwxXWV342aQ=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "140dcc2b9a0eb87ba5e9011076a1a7af19179ab1",
+        "rev": "076ea5b672bb1ea535ee84cfdabd0c2f0b7f20c7",
         "type": "github"
       },
       "original": {
@@ -212,11 +212,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1719895800,
-        "narHash": "sha256-xNbjISJTFailxass4LmdWeV4jNhAlmJPwj46a/GxE6M=",
+        "lastModified": 1720737798,
+        "narHash": "sha256-G/OtEAts7ZUvW5lrGMXSb8HqRp2Jr9I7reBuvCOL54w=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "6e253f12b1009053eff5344be5e835f604bb64cd",
+        "rev": "c5013aa7ce2c7ec90acee5d965d950c8348db751",
         "type": "github"
       },
       "original": {
@@ -228,11 +228,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1719825363,
-        "narHash": "sha256-2ASBatUTQWNIiTeBZRuxROu27MyOavVnzeCv7h40QNw=",
+        "lastModified": 1721079475,
+        "narHash": "sha256-wZ62hFCMTUG68u3hSUSJOCP/ltuE32Yb4dy7FfPCpso=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "10c832d0548e9e3a6df7eb51e68c2783212a303e",
+        "rev": "732b4f3a3afdfe6a6c4fcb2511e529588d4e5ccd",
         "type": "github"
       },
       "original": {
@@ -244,11 +244,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1719838683,
-        "narHash": "sha256-Zw9rQjHz1ilNIimEXFeVa1ERNRBF8DoXDhLAZq5B4pE=",
+        "lastModified": 1720954236,
+        "narHash": "sha256-1mEKHp4m9brvfQ0rjCca8P1WHpymK3TOr3v34ydv9bs=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "d032c1a6dfad4eedec7e35e91986becc699d7d69",
+        "rev": "53e81e790209e41f0c1efa9ff26ff2fd7ab35e27",
         "type": "github"
       },
       "original": {
@@ -311,11 +311,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1719887753,
-        "narHash": "sha256-p0B2r98UtZzRDM5miGRafL4h7TwGRC4DII+XXHDHqek=",
+        "lastModified": 1721059077,
+        "narHash": "sha256-gCICMMX7VMSKKt99giDDtRLkHJ0cwSgBtDijJAqTlto=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "bdb6355009562d8f9313d9460c0d3860f525bc6c",
+        "rev": "0fb28f237f83295b4dd05e342f333b447c097398",
         "type": "github"
       },
       "original": {

From 0a5fe27bac5201876a573ba63fb8591159692609 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Wed, 17 Jul 2024 21:17:45 +0200
Subject: [PATCH 019/124] fix: replace youtube-dl with yt-dlp

---
 home/pkgs.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/home/pkgs.nix b/home/pkgs.nix
index 67bf482..76c8353 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -138,7 +138,7 @@ with pkgs; [
   xsv # cut for csv
   unixtools.xxd
   xxh # portable shells
-  youtube-dl
+  yt-dlp
   # zotero Marked as insecure
   zeal
   zk

From 0fa98de9c47e78814fdcafd25d79d37f4c979680 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Wed, 17 Jul 2024 23:06:44 +0200
Subject: [PATCH 020/124] feat: enable system-monitor gnome extension

---
 home/dconf.nix | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/home/dconf.nix b/home/dconf.nix
index 4569a88..645827a 100644
--- a/home/dconf.nix
+++ b/home/dconf.nix
@@ -13,7 +13,8 @@ with lib.hm.gvariant;
     };
 
     "org/gnome/shell" = {
-      disable-user-extensions = true;
+      disable-user-extensions = false;
+      enabled-extensions = [ "system-monitor@gnome-shell-extensions.gcampax.github.com" ];
     };
 
     "org/gnome/desktop/calendar" = {

From d8dd90a8a6d579dd205445997f0fbb8dddf595c0 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Wed, 17 Jul 2024 23:14:28 +0200
Subject: [PATCH 021/124] flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'homepage':
    'https://git.dadada.li/dadada/dadada.li.git?narHash=sha256-Q6hzrC9mtLnk1EA%2Bh262S09CGliVL1HsLnh8f3dqAn4%3D'
  → 'https://git.dadada.li/dadada/dadada.li.git?narHash=sha256-o3OFsygZjTRTzGQk231dii8LWZ9raLCRHxRr0sQwu%2Bc%3D'
---
 flake.lock | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/flake.lock b/flake.lock
index bc928d6..47ac290 100644
--- a/flake.lock
+++ b/flake.lock
@@ -165,7 +165,7 @@
     "homepage": {
       "flake": false,
       "locked": {
-        "narHash": "sha256-Q6hzrC9mtLnk1EA+h262S09CGliVL1HsLnh8f3dqAn4=",
+        "narHash": "sha256-o3OFsygZjTRTzGQk231dii8LWZ9raLCRHxRr0sQwu+c=",
         "type": "file",
         "url": "https://git.dadada.li/dadada/dadada.li.git"
       },

From 09ee4d5f16657da6cfa979cd7afabcf735ea9f41 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 3 Aug 2024 14:22:20 +0200
Subject: [PATCH 022/124] flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'devshell':
    'github:numtide/devshell/1ebbe68d57457c8cae98145410b164b5477761f4' (2024-06-03)
  → 'github:numtide/devshell/67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae' (2024-07-27)
• Removed input 'devshell/flake-utils'
• Removed input 'devshell/flake-utils/systems'
• Updated input 'homepage':
    'https://git.dadada.li/dadada/dadada.li.git?narHash=sha256-o3OFsygZjTRTzGQk231dii8LWZ9raLCRHxRr0sQwu%2Bc%3D'
  → 'https://git.dadada.li/dadada/dadada.li.git?narHash=sha256-0bBtcABZHBgodfmNPNXpp8Tr3SH7Hufx18xfiSb8cWo%3D'
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/076ea5b672bb1ea535ee84cfdabd0c2f0b7f20c7' (2024-07-13)
  → 'github:nix-community/nixos-generators/75cbb2a5e19c18840d105a72d036c6c92fc46c5d' (2024-07-29)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/1bba8a624b3b9d4f68db94fb63aaeb46039ce9e6' (2024-06-30)
  → 'github:nix-community/nixpkgs.lib/d15f6f6021693898fcd2c6a9bb13707383da9bbc' (2024-07-28)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/c5013aa7ce2c7ec90acee5d965d950c8348db751' (2024-07-11)
  → 'github:NixOS/nixos-hardware/14c333162ba53c02853add87a0000cbd7aa230c2' (2024-07-30)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/732b4f3a3afdfe6a6c4fcb2511e529588d4e5ccd' (2024-07-15)
  → 'github:NixOS/nixpkgs/15ed5d4537fd46399513bb040bf98415c825281b' (2024-08-02)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/53e81e790209e41f0c1efa9ff26ff2fd7ab35e27' (2024-07-14)
  → 'github:NixOS/nixpkgs/05405724efa137a0b899cce5ab4dde463b4fd30b' (2024-08-01)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/0fb28f237f83295b4dd05e342f333b447c097398' (2024-07-15)
  → 'github:numtide/treefmt-nix/768acdb06968e53aa1ee8de207fd955335c754b7' (2024-07-30)
---
 flake.lock | 82 ++++++++++++++++--------------------------------------
 1 file changed, 24 insertions(+), 58 deletions(-)

diff --git a/flake.lock b/flake.lock
index 47ac290..43efbdb 100644
--- a/flake.lock
+++ b/flake.lock
@@ -47,17 +47,16 @@
     },
     "devshell": {
       "inputs": {
-        "flake-utils": "flake-utils",
         "nixpkgs": [
           "nixpkgs"
         ]
       },
       "locked": {
-        "lastModified": 1717408969,
-        "narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=",
+        "lastModified": 1722113426,
+        "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
         "owner": "numtide",
         "repo": "devshell",
-        "rev": "1ebbe68d57457c8cae98145410b164b5477761f4",
+        "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
         "type": "github"
       },
       "original": {
@@ -83,24 +82,6 @@
       }
     },
     "flake-utils": {
-      "inputs": {
-        "systems": "systems"
-      },
-      "locked": {
-        "lastModified": 1701680307,
-        "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "type": "github"
-      }
-    },
-    "flake-utils_2": {
       "inputs": {
         "systems": [
           "systems"
@@ -165,7 +146,7 @@
     "homepage": {
       "flake": false,
       "locked": {
-        "narHash": "sha256-o3OFsygZjTRTzGQk231dii8LWZ9raLCRHxRr0sQwu+c=",
+        "narHash": "sha256-0bBtcABZHBgodfmNPNXpp8Tr3SH7Hufx18xfiSb8cWo=",
         "type": "file",
         "url": "https://git.dadada.li/dadada/dadada.li.git"
       },
@@ -176,11 +157,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1719708727,
-        "narHash": "sha256-XFNKtyirrGNdehpg7lMNm1skEcBApjqGhaHc/OI95HY=",
+        "lastModified": 1722128034,
+        "narHash": "sha256-L8rwzYPsLo/TYtydPJoQyYOfetuiyQYnTWYcyB8UE/s=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "1bba8a624b3b9d4f68db94fb63aaeb46039ce9e6",
+        "rev": "d15f6f6021693898fcd2c6a9bb13707383da9bbc",
         "type": "github"
       },
       "original": {
@@ -197,11 +178,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1720859326,
-        "narHash": "sha256-i8BiZj5faQS6gsupE0S9xtiyZmWinGpVLwxXWV342aQ=",
+        "lastModified": 1722214420,
+        "narHash": "sha256-qfHC1p5hcErGcE672/KhBkyWYloekQpqIxtcbcUVYkA=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "076ea5b672bb1ea535ee84cfdabd0c2f0b7f20c7",
+        "rev": "75cbb2a5e19c18840d105a72d036c6c92fc46c5d",
         "type": "github"
       },
       "original": {
@@ -212,11 +193,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1720737798,
-        "narHash": "sha256-G/OtEAts7ZUvW5lrGMXSb8HqRp2Jr9I7reBuvCOL54w=",
+        "lastModified": 1722332872,
+        "narHash": "sha256-2xLM4sc5QBfi0U/AANJAW21Bj4ZX479MHPMPkB+eKBU=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "c5013aa7ce2c7ec90acee5d965d950c8348db751",
+        "rev": "14c333162ba53c02853add87a0000cbd7aa230c2",
         "type": "github"
       },
       "original": {
@@ -228,11 +209,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1721079475,
-        "narHash": "sha256-wZ62hFCMTUG68u3hSUSJOCP/ltuE32Yb4dy7FfPCpso=",
+        "lastModified": 1722621932,
+        "narHash": "sha256-Uz5xeHsH7+qZVncZwfzGd+CTjxd0mwaP7Q/pbs7OB5c=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "732b4f3a3afdfe6a6c4fcb2511e529588d4e5ccd",
+        "rev": "15ed5d4537fd46399513bb040bf98415c825281b",
         "type": "github"
       },
       "original": {
@@ -244,11 +225,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1720954236,
-        "narHash": "sha256-1mEKHp4m9brvfQ0rjCca8P1WHpymK3TOr3v34ydv9bs=",
+        "lastModified": 1722519197,
+        "narHash": "sha256-VEdJmVU2eLFtLqCjTYJd1J7+Go8idAcZoT11IewFiRg=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "53e81e790209e41f0c1efa9ff26ff2fd7ab35e27",
+        "rev": "05405724efa137a0b899cce5ab4dde463b4fd30b",
         "type": "github"
       },
       "original": {
@@ -263,14 +244,14 @@
         "agenix": "agenix",
         "devshell": "devshell",
         "flake-registry": "flake-registry",
-        "flake-utils": "flake-utils_2",
+        "flake-utils": "flake-utils",
         "home-manager": "home-manager_2",
         "homepage": "homepage",
         "nixos-generators": "nixos-generators",
         "nixos-hardware": "nixos-hardware",
         "nixpkgs": "nixpkgs",
         "nixpkgs-full": "nixpkgs-full",
-        "systems": "systems_2",
+        "systems": "systems",
         "treefmt-nix": "treefmt-nix"
       }
     },
@@ -289,21 +270,6 @@
         "type": "github"
       }
     },
-    "systems_2": {
-      "locked": {
-        "lastModified": 1681028828,
-        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
-        "owner": "nix-systems",
-        "repo": "default",
-        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-systems",
-        "repo": "default",
-        "type": "github"
-      }
-    },
     "treefmt-nix": {
       "inputs": {
         "nixpkgs": [
@@ -311,11 +277,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1721059077,
-        "narHash": "sha256-gCICMMX7VMSKKt99giDDtRLkHJ0cwSgBtDijJAqTlto=",
+        "lastModified": 1722330636,
+        "narHash": "sha256-uru7JzOa33YlSRwf9sfXpJG+UAV+bnBEYMjrzKrQZFw=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "0fb28f237f83295b4dd05e342f333b447c097398",
+        "rev": "768acdb06968e53aa1ee8de207fd955335c754b7",
         "type": "github"
       },
       "original": {

From 54988b2d849abb344be6925832a5416700686fe1 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Thu, 8 Aug 2024 22:27:26 +0200
Subject: [PATCH 023/124] flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'homepage':
    'https://git.dadada.li/dadada/dadada.li.git?narHash=sha256-PdJ1RA11vx3tM09YYAv3qAlKzENCZZITefHv6KbYhcY%3D'
  → 'https://git.dadada.li/dadada/dadada.li.git?narHash=sha256-/ir2S0iPNVw5btUtMpmeMy9gKGe/CC7KPrZiK1SFpEQ%3D'
---
 flake.lock | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/flake.lock b/flake.lock
index 43efbdb..605b1a8 100644
--- a/flake.lock
+++ b/flake.lock
@@ -146,7 +146,7 @@
     "homepage": {
       "flake": false,
       "locked": {
-        "narHash": "sha256-0bBtcABZHBgodfmNPNXpp8Tr3SH7Hufx18xfiSb8cWo=",
+        "narHash": "sha256-/ir2S0iPNVw5btUtMpmeMy9gKGe/CC7KPrZiK1SFpEQ=",
         "type": "file",
         "url": "https://git.dadada.li/dadada/dadada.li.git"
       },
@@ -157,11 +157,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1722128034,
-        "narHash": "sha256-L8rwzYPsLo/TYtydPJoQyYOfetuiyQYnTWYcyB8UE/s=",
+        "lastModified": 1722732880,
+        "narHash": "sha256-do2Mfm3T6SR7a5A804RhjQ+JTsF5hk4JTPGjCTRM/m8=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "d15f6f6021693898fcd2c6a9bb13707383da9bbc",
+        "rev": "8bebd4c74f368aacb047f0141db09ec6b339733c",
         "type": "github"
       },
       "original": {
@@ -178,11 +178,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1722214420,
-        "narHash": "sha256-qfHC1p5hcErGcE672/KhBkyWYloekQpqIxtcbcUVYkA=",
+        "lastModified": 1723078345,
+        "narHash": "sha256-HSxOQEKNZXiJe9aWnckTTCThOhcRCabwHa32IduDKLk=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "75cbb2a5e19c18840d105a72d036c6c92fc46c5d",
+        "rev": "d6c5d29f58acc10ea82afff1de2b28f038f572bd",
         "type": "github"
       },
       "original": {
@@ -209,11 +209,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1722621932,
-        "narHash": "sha256-Uz5xeHsH7+qZVncZwfzGd+CTjxd0mwaP7Q/pbs7OB5c=",
+        "lastModified": 1723070956,
+        "narHash": "sha256-bFOTvmkJ2c1ku+E0gvqmNEF2D1PSmujDFLofKAMF/pM=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "15ed5d4537fd46399513bb040bf98415c825281b",
+        "rev": "7cec143201c32c4937f2c153af4a9f28a3d9bec1",
         "type": "github"
       },
       "original": {
@@ -225,11 +225,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1722519197,
-        "narHash": "sha256-VEdJmVU2eLFtLqCjTYJd1J7+Go8idAcZoT11IewFiRg=",
+        "lastModified": 1722869614,
+        "narHash": "sha256-7ojM1KSk3mzutD7SkrdSflHXEujPvW1u7QuqWoTLXQU=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "05405724efa137a0b899cce5ab4dde463b4fd30b",
+        "rev": "883180e6550c1723395a3a342f830bfc5c371f6b",
         "type": "github"
       },
       "original": {

From 879370e4a8d5f1434bff83befd0aff53fc789722 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 13 Aug 2024 17:33:29 +0200
Subject: [PATCH 024/124] fix: nar hash of homepage

---
 flake.lock | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/flake.lock b/flake.lock
index 605b1a8..00fcf56 100644
--- a/flake.lock
+++ b/flake.lock
@@ -146,7 +146,7 @@
     "homepage": {
       "flake": false,
       "locked": {
-        "narHash": "sha256-/ir2S0iPNVw5btUtMpmeMy9gKGe/CC7KPrZiK1SFpEQ=",
+        "narHash": "sha256-A6ottqpZYc3iLJvFg+DP2RNl9ypeskUeWyfdyyjpMZw=",
         "type": "file",
         "url": "https://git.dadada.li/dadada/dadada.li.git"
       },

From 5c9eec85a150b634865f8c9e76a97f1c2ca6b55f Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 13 Aug 2024 17:33:48 +0200
Subject: [PATCH 025/124] feat: add switcher extension to gnome shell

---
 home/dconf.nix | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/home/dconf.nix b/home/dconf.nix
index 645827a..b75fb2d 100644
--- a/home/dconf.nix
+++ b/home/dconf.nix
@@ -1,6 +1,10 @@
-{ lib, ... }:
+{ lib, pkgs, ... }:
 with lib.hm.gvariant;
 {
+  home.packages = [
+    pkgs.gnomeExtensions.switcher
+  ];
+
   dconf.settings = with lib.hm.gvariant; {
     "org/gnome/shell" = {
       favorite-apps = [
@@ -14,7 +18,10 @@ with lib.hm.gvariant;
 
     "org/gnome/shell" = {
       disable-user-extensions = false;
-      enabled-extensions = [ "system-monitor@gnome-shell-extensions.gcampax.github.com" ];
+      enabled-extensions = [
+        "system-monitor@gnome-shell-extensions.gcampax.github.com"
+        "switcher@landau.fi"
+      ];
     };
 
     "org/gnome/desktop/calendar" = {

From e809610a63f7b559b1999a497cd3d6a93035134b Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 13 Aug 2024 17:34:10 +0200
Subject: [PATCH 026/124] feat: install krita and solvespace

---
 home/pkgs.nix | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/home/pkgs.nix b/home/pkgs.nix
index 76c8353..ec1deb5 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -68,6 +68,7 @@ with pkgs; [
   kcachegrind
   keepassxc
   kubetail
+  krita
   ldns
   liboping # oping, ping multiple hosts at once
   libreoffice
@@ -117,6 +118,7 @@ with pkgs; [
   skim # fzf in Rust
   slurp
   socat
+  solvespace
   spotify
   sqlite
   sshfs-fuse

From b4889eec64e2fb69e333d965c6215f990be3e381 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 13 Aug 2024 17:35:33 +0200
Subject: [PATCH 027/124] chore: update flake inputs

---
 flake.lock | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/flake.lock b/flake.lock
index 00fcf56..29d1dc6 100644
--- a/flake.lock
+++ b/flake.lock
@@ -146,7 +146,7 @@
     "homepage": {
       "flake": false,
       "locked": {
-        "narHash": "sha256-A6ottqpZYc3iLJvFg+DP2RNl9ypeskUeWyfdyyjpMZw=",
+        "narHash": "sha256-d72V/oM66V48FbKzXx1Waj09c8VJUg+lbzFHRye40eQ=",
         "type": "file",
         "url": "https://git.dadada.li/dadada/dadada.li.git"
       },
@@ -178,11 +178,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1723078345,
-        "narHash": "sha256-HSxOQEKNZXiJe9aWnckTTCThOhcRCabwHa32IduDKLk=",
+        "lastModified": 1723444610,
+        "narHash": "sha256-WzhuUR2ZwafNzBh0VAbk3+320xd2sNWdZdjZa0S9ydY=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "d6c5d29f58acc10ea82afff1de2b28f038f572bd",
+        "rev": "a220fc3a6e144f12f0c3dc3e4d01d44c2e6b0b85",
         "type": "github"
       },
       "original": {
@@ -193,11 +193,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1722332872,
-        "narHash": "sha256-2xLM4sc5QBfi0U/AANJAW21Bj4ZX479MHPMPkB+eKBU=",
+        "lastModified": 1723310128,
+        "narHash": "sha256-IiH8jG6PpR4h9TxSGMYh+2/gQiJW9MwehFvheSb5rPc=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "14c333162ba53c02853add87a0000cbd7aa230c2",
+        "rev": "c54cf53e022b0b3c1d3b8207aa0f9b194c24f0cf",
         "type": "github"
       },
       "original": {
@@ -209,11 +209,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1723070956,
-        "narHash": "sha256-bFOTvmkJ2c1ku+E0gvqmNEF2D1PSmujDFLofKAMF/pM=",
+        "lastModified": 1723540975,
+        "narHash": "sha256-rxpxOz2VSqgmwI7g7FGVAoye5bxwO1MSpnELY5bsITw=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "7cec143201c32c4937f2c153af4a9f28a3d9bec1",
+        "rev": "fb81cec9eda2a6b5365ad723995f0329d9e356fd",
         "type": "github"
       },
       "original": {
@@ -225,11 +225,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1722869614,
-        "narHash": "sha256-7ojM1KSk3mzutD7SkrdSflHXEujPvW1u7QuqWoTLXQU=",
+        "lastModified": 1723400035,
+        "narHash": "sha256-WoKZDlBEdMhP+hjquBAh0BhUJbcH2+U8g2mHOr1mv8I=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "883180e6550c1723395a3a342f830bfc5c371f6b",
+        "rev": "a731b45590a5169542990c36ffcde6cebd9a3356",
         "type": "github"
       },
       "original": {
@@ -277,11 +277,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1722330636,
-        "narHash": "sha256-uru7JzOa33YlSRwf9sfXpJG+UAV+bnBEYMjrzKrQZFw=",
+        "lastModified": 1723454642,
+        "narHash": "sha256-S0Gvsenh0II7EAaoc9158ZB4vYyuycvMGKGxIbERNAM=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "768acdb06968e53aa1ee8de207fd955335c754b7",
+        "rev": "349de7bc435bdff37785c2466f054ed1766173be",
         "type": "github"
       },
       "original": {

From 16e42c3177c3ad60f6996f0176e64a327faa7ce1 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 16 Aug 2024 15:21:06 +0200
Subject: [PATCH 028/124] fix: gitea urls

---
 flake.lock                        | 40 +++++++++++++++++--------------
 flake.nix                         |  2 +-
 nixos/modules/profiles/server.nix |  2 +-
 3 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/flake.lock b/flake.lock
index 29d1dc6..cd1f21a 100644
--- a/flake.lock
+++ b/flake.lock
@@ -146,22 +146,26 @@
     "homepage": {
       "flake": false,
       "locked": {
-        "narHash": "sha256-d72V/oM66V48FbKzXx1Waj09c8VJUg+lbzFHRye40eQ=",
-        "type": "file",
+        "lastModified": 1714328013,
+        "narHash": "sha256-nA/7hKv8qz2+ru84rXiMa52+gyvyIhLWP9tJB6Q/DLQ=",
+        "ref": "refs/heads/main",
+        "rev": "b971b5905b38be19b4fa4e7d99a70df0aebfba28",
+        "revCount": 31,
+        "type": "git",
         "url": "https://git.dadada.li/dadada/dadada.li.git"
       },
       "original": {
-        "type": "file",
+        "type": "git",
         "url": "https://git.dadada.li/dadada/dadada.li.git"
       }
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1722732880,
-        "narHash": "sha256-do2Mfm3T6SR7a5A804RhjQ+JTsF5hk4JTPGjCTRM/m8=",
+        "lastModified": 1723337705,
+        "narHash": "sha256-znSU0DeNDPt7+LMAfFkvKloMaeQ6yl/U5SqV/ktl1vA=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "8bebd4c74f368aacb047f0141db09ec6b339733c",
+        "rev": "ace7856d327b618d3777e31b1f224b3ab57ed71a",
         "type": "github"
       },
       "original": {
@@ -178,11 +182,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1723444610,
-        "narHash": "sha256-WzhuUR2ZwafNzBh0VAbk3+320xd2sNWdZdjZa0S9ydY=",
+        "lastModified": 1723683171,
+        "narHash": "sha256-hQMQQHOVVkiCO5hmbjI3EVimWFIkRNkGIGUhyIQ0mQ0=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "a220fc3a6e144f12f0c3dc3e4d01d44c2e6b0b85",
+        "rev": "1cb3dc2f3af215ea40911de8fd0942c1ff3fb673",
         "type": "github"
       },
       "original": {
@@ -209,11 +213,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1723540975,
-        "narHash": "sha256-rxpxOz2VSqgmwI7g7FGVAoye5bxwO1MSpnELY5bsITw=",
+        "lastModified": 1723746470,
+        "narHash": "sha256-xOWtLQpYetDWPlOvAo04as/ocpGTm1W556zfA24Vdh4=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "fb81cec9eda2a6b5365ad723995f0329d9e356fd",
+        "rev": "9bbda8b76be48dd59d352199d06c24d61b94206a",
         "type": "github"
       },
       "original": {
@@ -225,11 +229,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1723400035,
-        "narHash": "sha256-WoKZDlBEdMhP+hjquBAh0BhUJbcH2+U8g2mHOr1mv8I=",
+        "lastModified": 1723688146,
+        "narHash": "sha256-sqLwJcHYeWLOeP/XoLwAtYjr01TISlkOfz+NG82pbdg=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "a731b45590a5169542990c36ffcde6cebd9a3356",
+        "rev": "c3d4ac725177c030b1e289015989da2ad9d56af0",
         "type": "github"
       },
       "original": {
@@ -277,11 +281,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1723454642,
-        "narHash": "sha256-S0Gvsenh0II7EAaoc9158ZB4vYyuycvMGKGxIbERNAM=",
+        "lastModified": 1723808491,
+        "narHash": "sha256-rhis3qNuGmJmYC/okT7Dkc4M8CeUuRCSvW6kC2f3hBc=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "349de7bc435bdff37785c2466f054ed1766173be",
+        "rev": "1d07739554fdc4f8481068f1b11d6ab4c1a4167a",
         "type": "github"
       },
       "original": {
diff --git a/flake.nix b/flake.nix
index b2d98be..c1836b5 100644
--- a/flake.nix
+++ b/flake.nix
@@ -14,7 +14,7 @@
     };
     nixos-hardware.url = "github:NixOS/nixos-hardware/master";
     homepage = {
-      url = "https://git.dadada.li/dadada/dadada.li.git";
+      url = "git+https://git.dadada.li/dadada/dadada.li.git";
       flake = false;
     };
     agenix = {
diff --git a/nixos/modules/profiles/server.nix b/nixos/modules/profiles/server.nix
index 925f20e..e5b6d4c 100644
--- a/nixos/modules/profiles/server.nix
+++ b/nixos/modules/profiles/server.nix
@@ -24,7 +24,7 @@ with lib; {
 
   system.autoUpgrade = {
     enable = true;
-    flake = "https://git.dadada.li/dadada/nix-config.git#${config.networking.hostName}";
+    flake = "git+https://git.dadada.li/dadada/nix-config.git#${config.networking.hostName}";
     allowReboot = mkDefault false;
     randomizedDelaySec = "45min";
   };

From fc616b7be6468b2e18407356728fbc06eb652c78 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 16 Aug 2024 15:33:58 +0200
Subject: [PATCH 029/124] fix: use tar.gz archive instead of git URL

---
 flake.lock                        | 10 ++++------
 flake.nix                         |  2 +-
 nixos/modules/profiles/server.nix |  2 +-
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/flake.lock b/flake.lock
index cd1f21a..5bd2c90 100644
--- a/flake.lock
+++ b/flake.lock
@@ -148,15 +148,13 @@
       "locked": {
         "lastModified": 1714328013,
         "narHash": "sha256-nA/7hKv8qz2+ru84rXiMa52+gyvyIhLWP9tJB6Q/DLQ=",
-        "ref": "refs/heads/main",
         "rev": "b971b5905b38be19b4fa4e7d99a70df0aebfba28",
-        "revCount": 31,
-        "type": "git",
-        "url": "https://git.dadada.li/dadada/dadada.li.git"
+        "type": "tarball",
+        "url": "https://git.dadada.li/api/v1/repos/dadada/dadada.li/archive/b971b5905b38be19b4fa4e7d99a70df0aebfba28.tar.gz"
       },
       "original": {
-        "type": "git",
-        "url": "https://git.dadada.li/dadada/dadada.li.git"
+        "type": "tarball",
+        "url": "https://git.dadada.li/dadada/dadada.li/archive/main.tar.gz"
       }
     },
     "nixlib": {
diff --git a/flake.nix b/flake.nix
index c1836b5..1e28a54 100644
--- a/flake.nix
+++ b/flake.nix
@@ -14,7 +14,7 @@
     };
     nixos-hardware.url = "github:NixOS/nixos-hardware/master";
     homepage = {
-      url = "git+https://git.dadada.li/dadada/dadada.li.git";
+      url = "https://git.dadada.li/dadada/dadada.li/archive/main.tar.gz";
       flake = false;
     };
     agenix = {
diff --git a/nixos/modules/profiles/server.nix b/nixos/modules/profiles/server.nix
index e5b6d4c..d26358c 100644
--- a/nixos/modules/profiles/server.nix
+++ b/nixos/modules/profiles/server.nix
@@ -24,7 +24,7 @@ with lib; {
 
   system.autoUpgrade = {
     enable = true;
-    flake = "git+https://git.dadada.li/dadada/nix-config.git#${config.networking.hostName}";
+    flake = "https://git.dadada.li/dadada/nix-config/archive/main.tar.gz#${config.networking.hostName}";
     allowReboot = mkDefault false;
     randomizedDelaySec = "45min";
   };

From 9d91b0388643347eb9bade80fa6b28037a5cf104 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 25 Aug 2024 17:53:19 +0200
Subject: [PATCH 030/124] chore: update homepage

---
 flake.lock | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/flake.lock b/flake.lock
index 5bd2c90..e86e642 100644
--- a/flake.lock
+++ b/flake.lock
@@ -146,11 +146,11 @@
     "homepage": {
       "flake": false,
       "locked": {
-        "lastModified": 1714328013,
-        "narHash": "sha256-nA/7hKv8qz2+ru84rXiMa52+gyvyIhLWP9tJB6Q/DLQ=",
-        "rev": "b971b5905b38be19b4fa4e7d99a70df0aebfba28",
+        "lastModified": 1724600377,
+        "narHash": "sha256-EdDHxZNjXtWG5CUUznbXF/ktkHWOvl3vDOi90cdE4cU=",
+        "rev": "40b6196abf7a066e93c68f48f3109b587dad44bf",
         "type": "tarball",
-        "url": "https://git.dadada.li/api/v1/repos/dadada/dadada.li/archive/b971b5905b38be19b4fa4e7d99a70df0aebfba28.tar.gz"
+        "url": "https://git.dadada.li/api/v1/repos/dadada/dadada.li/archive/40b6196abf7a066e93c68f48f3109b587dad44bf.tar.gz"
       },
       "original": {
         "type": "tarball",

From 532c25a0c5734019c1db591458f58f7bb582fd72 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 20 Sep 2024 16:34:40 +0200
Subject: [PATCH 031/124] chore: update flake inputs

---
 flake.lock | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/flake.lock b/flake.lock
index e86e642..aa39a63 100644
--- a/flake.lock
+++ b/flake.lock
@@ -88,11 +88,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1710146030,
-        "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
+        "lastModified": 1726560853,
+        "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
         "owner": "numtide",
         "repo": "flake-utils",
-        "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
+        "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
         "type": "github"
       },
       "original": {
@@ -129,11 +129,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1720042825,
-        "narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=",
+        "lastModified": 1726818100,
+        "narHash": "sha256-z2V74f5vXqkN5Q+goFlhbFXY/dNaBAyeLpr2bxu4Eic=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073",
+        "rev": "1bbc1a5a1f4de7401c92db85b2119ed21bb4139d",
         "type": "github"
       },
       "original": {
@@ -159,11 +159,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1723337705,
-        "narHash": "sha256-znSU0DeNDPt7+LMAfFkvKloMaeQ6yl/U5SqV/ktl1vA=",
+        "lastModified": 1726362065,
+        "narHash": "sha256-4h15WKdrs9zf6DGaeeV7ntU/pHHGkH6geYt1QBW0CP4=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "ace7856d327b618d3777e31b1f224b3ab57ed71a",
+        "rev": "9db4db09d82e4b2207bfa7f1e747a4f49d214555",
         "type": "github"
       },
       "original": {
@@ -180,11 +180,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1723683171,
-        "narHash": "sha256-hQMQQHOVVkiCO5hmbjI3EVimWFIkRNkGIGUhyIQ0mQ0=",
+        "lastModified": 1726817511,
+        "narHash": "sha256-r3R7zZzGklN0udSO/JhWbU/xyq6i1aXKKwfs33LUVls=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "1cb3dc2f3af215ea40911de8fd0942c1ff3fb673",
+        "rev": "bfa25c9065f4cb5d884a0ad70f6e82f55ae90448",
         "type": "github"
       },
       "original": {
@@ -195,11 +195,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1723310128,
-        "narHash": "sha256-IiH8jG6PpR4h9TxSGMYh+2/gQiJW9MwehFvheSb5rPc=",
+        "lastModified": 1726724509,
+        "narHash": "sha256-sVeAM1tgVi52S1e29fFBTPUAFSzgQwgLon3CrztXGm8=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "c54cf53e022b0b3c1d3b8207aa0f9b194c24f0cf",
+        "rev": "10d5e0ecc32984c1bf1a9a46586be3451c42fd94",
         "type": "github"
       },
       "original": {
@@ -211,11 +211,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1723746470,
-        "narHash": "sha256-xOWtLQpYetDWPlOvAo04as/ocpGTm1W556zfA24Vdh4=",
+        "lastModified": 1726688310,
+        "narHash": "sha256-Xc9lEtentPCEtxc/F1e6jIZsd4MPDYv4Kugl9WtXlz0=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "9bbda8b76be48dd59d352199d06c24d61b94206a",
+        "rev": "dbebdd67a6006bb145d98c8debf9140ac7e651d0",
         "type": "github"
       },
       "original": {
@@ -227,11 +227,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1723688146,
-        "narHash": "sha256-sqLwJcHYeWLOeP/XoLwAtYjr01TISlkOfz+NG82pbdg=",
+        "lastModified": 1726447378,
+        "narHash": "sha256-2yV8nmYE1p9lfmLHhOCbYwQC/W8WYfGQABoGzJOb1JQ=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "c3d4ac725177c030b1e289015989da2ad9d56af0",
+        "rev": "086b448a5d54fd117f4dc2dee55c9f0ff461bdc1",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1723808491,
-        "narHash": "sha256-rhis3qNuGmJmYC/okT7Dkc4M8CeUuRCSvW6kC2f3hBc=",
+        "lastModified": 1726734507,
+        "narHash": "sha256-VUH5O5AcOSxb0uL/m34dDkxFKP6WLQ6y4I1B4+N3L2w=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "1d07739554fdc4f8481068f1b11d6ab4c1a4167a",
+        "rev": "ee41a466c2255a3abe6bc50fc6be927cdee57a9f",
         "type": "github"
       },
       "original": {

From 11ac1b84b78831ed590356b214246d350b66cbac Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 20 Sep 2024 18:23:32 +0200
Subject: [PATCH 032/124] feat: upgrade to Lix

---
 flake.lock               | 53 ++++++++++++++++++++++++++++++++++++++++
 flake.nix                |  5 ++++
 nixos/configurations.nix | 14 ++++++++---
 outputs.nix              |  1 +
 4 files changed, 69 insertions(+), 4 deletions(-)

diff --git a/flake.lock b/flake.lock
index aa39a63..9cc797c 100644
--- a/flake.lock
+++ b/flake.lock
@@ -101,6 +101,21 @@
         "type": "github"
       }
     },
+    "flakey-profile": {
+      "locked": {
+        "lastModified": 1712898590,
+        "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
+        "owner": "lf-",
+        "repo": "flakey-profile",
+        "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
+        "type": "github"
+      },
+      "original": {
+        "owner": "lf-",
+        "repo": "flakey-profile",
+        "type": "github"
+      }
+    },
     "home-manager": {
       "inputs": {
         "nixpkgs": [
@@ -157,6 +172,43 @@
         "url": "https://git.dadada.li/dadada/dadada.li/archive/main.tar.gz"
       }
     },
+    "lix": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1723503926,
+        "narHash": "sha256-Rosl9iA9MybF5Bud4BTAQ9adbY81aGmPfV8dDBGl34s=",
+        "rev": "bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2",
+        "type": "tarball",
+        "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2.tar.gz?rev=bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2"
+      },
+      "original": {
+        "type": "tarball",
+        "url": "https://git.lix.systems/lix-project/lix/archive/2.91.0.tar.gz"
+      }
+    },
+    "lix-module": {
+      "inputs": {
+        "flake-utils": [
+          "flake-utils"
+        ],
+        "flakey-profile": "flakey-profile",
+        "lix": "lix",
+        "nixpkgs": [
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1723510904,
+        "narHash": "sha256-zNW/rqNJwhq2lYmQf19wJerRuNimjhxHKmzrWWFJYts=",
+        "rev": "622a2253a071a1fb97a4d3c8103a91114acc1140",
+        "type": "tarball",
+        "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/622a2253a071a1fb97a4d3c8103a91114acc1140.tar.gz"
+      },
+      "original": {
+        "type": "tarball",
+        "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz"
+      }
+    },
     "nixlib": {
       "locked": {
         "lastModified": 1726362065,
@@ -249,6 +301,7 @@
         "flake-utils": "flake-utils",
         "home-manager": "home-manager_2",
         "homepage": "homepage",
+        "lix-module": "lix-module",
         "nixos-generators": "nixos-generators",
         "nixos-hardware": "nixos-hardware",
         "nixpkgs": "nixpkgs",
diff --git a/flake.nix b/flake.nix
index 1e28a54..5e512b9 100644
--- a/flake.nix
+++ b/flake.nix
@@ -25,6 +25,11 @@
       url = "github:numtide/devshell";
       inputs.nixpkgs.follows = "nixpkgs";
     };
+    lix-module = {
+      url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz";
+      inputs.nixpkgs.follows = "nixpkgs";
+      inputs.flake-utils.follows = "flake-utils";
+    };
     nixos-generators = {
       url = "github:nix-community/nixos-generators";
       inputs.nixpkgs.follows = "nixpkgs";
diff --git a/nixos/configurations.nix b/nixos/configurations.nix
index 41aabe8..040ec6b 100644
--- a/nixos/configurations.nix
+++ b/nixos/configurations.nix
@@ -1,5 +1,6 @@
 { self
 , agenix
+, lix-module
 , nixpkgs
 , nixpkgs-full
 , home-manager
@@ -9,13 +10,17 @@
 , ...
 }@inputs:
 let
+  lixModule = lix-module.nixosModules.default;
+
   nixosSystem = { n_nixpkgs ? nixpkgs, system ? "x86_64-linux", extraModules ? [ ] }: n_nixpkgs.lib.nixosSystem {
     inherit system;
 
-    modules = [{
-
-      nixpkgs.overlays = n_nixpkgs.lib.attrValues self.overlays;
-    }] ++ (n_nixpkgs.lib.attrValues self.nixosModules) ++ [ agenix.nixosModules.age ] ++ extraModules;
+    modules = [
+      lixModule
+      {
+        nixpkgs.overlays = n_nixpkgs.lib.attrValues self.overlays;
+      }
+    ] ++ (n_nixpkgs.lib.attrValues self.nixosModules) ++ [ agenix.nixosModules.age ] ++ extraModules;
   };
 in
 {
@@ -68,6 +73,7 @@ in
   installer = nixpkgs.lib.nixosSystem {
     system = "x86_64-linux";
     modules = [
+      lixModule
       nixos-generators.nixosModules.install-iso
       self.nixosModules.admin
       {
diff --git a/outputs.nix b/outputs.nix
index b96b7bb..efa3dab 100644
--- a/outputs.nix
+++ b/outputs.nix
@@ -3,6 +3,7 @@
 , flake-utils
 , flake-registry
 , homepage
+, lix-module
 , nixpkgs
 , home-manager
 , nixos-hardware

From 34ae7f3748943ca6c2eea7373ccfed3754d538fd Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Thu, 26 Sep 2024 10:16:38 +0200
Subject: [PATCH 033/124] chore: update flake inputs

---
 flake.lock | 52 ++++++++++++++++++++++++++--------------------------
 1 file changed, 26 insertions(+), 26 deletions(-)

diff --git a/flake.lock b/flake.lock
index 9cc797c..b76b11c 100644
--- a/flake.lock
+++ b/flake.lock
@@ -144,11 +144,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1726818100,
-        "narHash": "sha256-z2V74f5vXqkN5Q+goFlhbFXY/dNaBAyeLpr2bxu4Eic=",
+        "lastModified": 1726989464,
+        "narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "1bbc1a5a1f4de7401c92db85b2119ed21bb4139d",
+        "rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
         "type": "github"
       },
       "original": {
@@ -161,11 +161,11 @@
     "homepage": {
       "flake": false,
       "locked": {
-        "lastModified": 1724600377,
-        "narHash": "sha256-EdDHxZNjXtWG5CUUznbXF/ktkHWOvl3vDOi90cdE4cU=",
-        "rev": "40b6196abf7a066e93c68f48f3109b587dad44bf",
+        "lastModified": 1727338449,
+        "narHash": "sha256-VwOGtT1WB+isk0z/D/Be05GgeaTFfsXTGt7aScCAfec=",
+        "rev": "60398d3d728a0057b4cad49879ef637c06b28371",
         "type": "tarball",
-        "url": "https://git.dadada.li/api/v1/repos/dadada/dadada.li/archive/40b6196abf7a066e93c68f48f3109b587dad44bf.tar.gz"
+        "url": "https://git.dadada.li/api/v1/repos/dadada/dadada.li/archive/60398d3d728a0057b4cad49879ef637c06b28371.tar.gz?rev=60398d3d728a0057b4cad49879ef637c06b28371"
       },
       "original": {
         "type": "tarball",
@@ -202,7 +202,7 @@
         "narHash": "sha256-zNW/rqNJwhq2lYmQf19wJerRuNimjhxHKmzrWWFJYts=",
         "rev": "622a2253a071a1fb97a4d3c8103a91114acc1140",
         "type": "tarball",
-        "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/622a2253a071a1fb97a4d3c8103a91114acc1140.tar.gz"
+        "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/622a2253a071a1fb97a4d3c8103a91114acc1140.tar.gz?rev=622a2253a071a1fb97a4d3c8103a91114acc1140"
       },
       "original": {
         "type": "tarball",
@@ -211,11 +211,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1726362065,
-        "narHash": "sha256-4h15WKdrs9zf6DGaeeV7ntU/pHHGkH6geYt1QBW0CP4=",
+        "lastModified": 1726966855,
+        "narHash": "sha256-25ByioeOBFcnitO5lM/Mufnv/u7YtHEHEM8QFuiS40k=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "9db4db09d82e4b2207bfa7f1e747a4f49d214555",
+        "rev": "575704ff85d3a41dc5bfef7b55380cbc7b87f3c2",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1726817511,
-        "narHash": "sha256-r3R7zZzGklN0udSO/JhWbU/xyq6i1aXKKwfs33LUVls=",
+        "lastModified": 1727312535,
+        "narHash": "sha256-exnTgS6OBYvEa8v5x8UsLQK2ERdDFwXNFQHoT2cqycY=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "bfa25c9065f4cb5d884a0ad70f6e82f55ae90448",
+        "rev": "f31447cd3f8e54674bd1675969e97e6043a309bc",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1726724509,
-        "narHash": "sha256-sVeAM1tgVi52S1e29fFBTPUAFSzgQwgLon3CrztXGm8=",
+        "lastModified": 1727040444,
+        "narHash": "sha256-19FNN5QT9Z11ZUMfftRplyNN+2PgcHKb3oq8KMW/hDA=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "10d5e0ecc32984c1bf1a9a46586be3451c42fd94",
+        "rev": "d0cb432a9d28218df11cbd77d984a2a46caeb5ac",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1726688310,
-        "narHash": "sha256-Xc9lEtentPCEtxc/F1e6jIZsd4MPDYv4Kugl9WtXlz0=",
+        "lastModified": 1727284797,
+        "narHash": "sha256-roj2jFZ/VNBQBBmUvvYRGiWbegZEgRk9Y1dhcY8kgLA=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "dbebdd67a6006bb145d98c8debf9140ac7e651d0",
+        "rev": "37df9bcf93431c7f9f9358aec2d7ed0a52d7ba1d",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1726447378,
-        "narHash": "sha256-2yV8nmYE1p9lfmLHhOCbYwQC/W8WYfGQABoGzJOb1JQ=",
+        "lastModified": 1727264057,
+        "narHash": "sha256-KQPI8CTTnB9CrJ7LrmLC4VWbKZfljEPBXOFGZFRpxao=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "086b448a5d54fd117f4dc2dee55c9f0ff461bdc1",
+        "rev": "759537f06e6999e141588ff1c9be7f3a5c060106",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1726734507,
-        "narHash": "sha256-VUH5O5AcOSxb0uL/m34dDkxFKP6WLQ6y4I1B4+N3L2w=",
+        "lastModified": 1727252110,
+        "narHash": "sha256-3O7RWiXpvqBcCl84Mvqa8dXudZ1Bol1ubNdSmQt7nF4=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "ee41a466c2255a3abe6bc50fc6be927cdee57a9f",
+        "rev": "1bff2ba6ec22bc90e9ad3f7e94cca0d37870afa3",
         "type": "github"
       },
       "original": {

From 0ea73f318775e514f9067f6e1c78a5048b5d6aec Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Wed, 9 Oct 2024 21:04:52 +0200
Subject: [PATCH 034/124] fix: enable ACME for weechat.dadada.li

---
 nixos/modules/weechat.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nixos/modules/weechat.nix b/nixos/modules/weechat.nix
index 340f64c..e3d8f48 100644
--- a/nixos/modules/weechat.nix
+++ b/nixos/modules/weechat.nix
@@ -34,7 +34,7 @@ in
       };
     };
     services.nginx.virtualHosts."weechat.dadada.li" = {
-      useACMEHost = "webchat.dadada.li";
+      enableACME = true;
       forceSSL = true;
 
       root = "${pkgs.nginx}/html";

From 8317113c6b1a2d55cebf018a64badb5943101e61 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Wed, 23 Oct 2024 21:33:16 +0200
Subject: [PATCH 035/124] chore: update nixpkgs

---
 flake.lock | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/flake.lock b/flake.lock
index b76b11c..8dce0f2 100644
--- a/flake.lock
+++ b/flake.lock
@@ -52,11 +52,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1722113426,
-        "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
+        "lastModified": 1728330715,
+        "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
         "owner": "numtide",
         "repo": "devshell",
-        "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
+        "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
         "type": "github"
       },
       "original": {
@@ -211,11 +211,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1726966855,
-        "narHash": "sha256-25ByioeOBFcnitO5lM/Mufnv/u7YtHEHEM8QFuiS40k=",
+        "lastModified": 1729386149,
+        "narHash": "sha256-hUP9oxmnOmNnKcDOf5Y55HQ+NnoT0+bLWHLQWLLw9Ks=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "575704ff85d3a41dc5bfef7b55380cbc7b87f3c2",
+        "rev": "cce4521b6df014e79a7b7afc58c703ed683c916e",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1727312535,
-        "narHash": "sha256-exnTgS6OBYvEa8v5x8UsLQK2ERdDFwXNFQHoT2cqycY=",
+        "lastModified": 1729472750,
+        "narHash": "sha256-s93LPHi5BN7I2xSGNAFWiYb8WRsPvT1LE9ZjZBrpFlg=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "f31447cd3f8e54674bd1675969e97e6043a309bc",
+        "rev": "7c60ba4bc8d6aa2ba3e5b0f6ceb9fc07bc261565",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1727040444,
-        "narHash": "sha256-19FNN5QT9Z11ZUMfftRplyNN+2PgcHKb3oq8KMW/hDA=",
+        "lastModified": 1729690929,
+        "narHash": "sha256-cTSekmupaDfrhlpLhBUBrU9mUzBaD6mYsMveTX0bKDg=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "d0cb432a9d28218df11cbd77d984a2a46caeb5ac",
+        "rev": "64d900abe40057393148bc0283d35c2254dd4f57",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1727284797,
-        "narHash": "sha256-roj2jFZ/VNBQBBmUvvYRGiWbegZEgRk9Y1dhcY8kgLA=",
+        "lastModified": 1729675617,
+        "narHash": "sha256-XAnP0mq9JdMEwEcwATPV7rPp1+ORV8G4rCX6GplYfDA=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "37df9bcf93431c7f9f9358aec2d7ed0a52d7ba1d",
+        "rev": "f885d67e3dbd2afe0c779a9f763ddf7a4b603d97",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1727264057,
-        "narHash": "sha256-KQPI8CTTnB9CrJ7LrmLC4VWbKZfljEPBXOFGZFRpxao=",
+        "lastModified": 1729449015,
+        "narHash": "sha256-Gf04dXB0n4q0A9G5nTGH3zuMGr6jtJppqdeljxua1fo=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "759537f06e6999e141588ff1c9be7f3a5c060106",
+        "rev": "89172919243df199fe237ba0f776c3e3e3d72367",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1727252110,
-        "narHash": "sha256-3O7RWiXpvqBcCl84Mvqa8dXudZ1Bol1ubNdSmQt7nF4=",
+        "lastModified": 1729613947,
+        "narHash": "sha256-XGOvuIPW1XRfPgHtGYXd5MAmJzZtOuwlfKDgxX5KT3s=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "1bff2ba6ec22bc90e9ad3f7e94cca0d37870afa3",
+        "rev": "aac86347fb5063960eccb19493e0cadcdb4205ca",
         "type": "github"
       },
       "original": {

From 61530cc51318713f3da8cb6bffac150b2c8eb4b3 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Wed, 30 Oct 2024 21:00:27 +0100
Subject: [PATCH 036/124] feat: power management settings

---
 home/dconf.nix                 | 8 ++++----
 nixos/gorgon/configuration.nix | 4 ++++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/home/dconf.nix b/home/dconf.nix
index b75fb2d..7fb2800 100644
--- a/home/dconf.nix
+++ b/home/dconf.nix
@@ -176,11 +176,11 @@ with lib.hm.gvariant;
     };
 
     "org/gnome/settings-daemon/plugins/power" = {
-      idle-dim = false;
-      power-button-action = "hibernate";
+      idle-dim = true;
+      power-button-action = "interactive";
       power-saver-profile-on-low-battery = true;
-      sleep-inactive-ac-type = "nothing";
-      sleep-inactive-battery-timeout = 3600;
+      sleep-inactive-ac-type = "blank";
+      sleep-inactive-battery-timeout = 600;
       sleep-inactive-battery-type = "suspend";
     };
 
diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index b2da49d..fd61298 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -143,6 +143,10 @@ in
   systemd.services.modem-manager.enable = lib.mkForce false;
   systemd.services."dbus-org.freedesktop.ModemManager1".enable = lib.mkForce false;
 
+  systemd.sleep.extraConfig = ''
+    HibernateDelaySec=1h
+  '';
+
   services.udev.packages = [ xilinxJtag saleaeLogic keychron ]; #noMtpUdevRules ];
 
   virtualisation.libvirtd.enable = true;

From c256637dddf9d5be8f25be484ce8ff82b6bee512 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Wed, 30 Oct 2024 21:08:17 +0100
Subject: [PATCH 037/124] chore: update flake.lock
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/64d900abe40057393148bc0283d35c2254dd4f57' (2024-10-23)
  → 'github:NixOS/nixos-hardware/07d15e8990d5d86a631641b4c429bc0a7400cfb8' (2024-10-29)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f885d67e3dbd2afe0c779a9f763ddf7a4b603d97' (2024-10-23)
  → 'github:NixOS/nixpkgs/6aa8749b515f9dec000b24794b2787b64037db51' (2024-10-29)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/89172919243df199fe237ba0f776c3e3e3d72367' (2024-10-20)
  → 'github:NixOS/nixpkgs/64b80bfb316b57cdb8919a9110ef63393d74382a' (2024-10-28)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/aac86347fb5063960eccb19493e0cadcdb4205ca' (2024-10-22)
  → 'github:numtide/treefmt-nix/9ef337e492a5555d8e17a51c911ff1f02635be15' (2024-10-28)
---
 flake.lock | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/flake.lock b/flake.lock
index 8dce0f2..2c62bcf 100644
--- a/flake.lock
+++ b/flake.lock
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1729690929,
-        "narHash": "sha256-cTSekmupaDfrhlpLhBUBrU9mUzBaD6mYsMveTX0bKDg=",
+        "lastModified": 1730161780,
+        "narHash": "sha256-z5ILcmwMtiCoHTXS1KsQWqigO7HJO8sbyK7f7wn9F/E=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "64d900abe40057393148bc0283d35c2254dd4f57",
+        "rev": "07d15e8990d5d86a631641b4c429bc0a7400cfb8",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1729675617,
-        "narHash": "sha256-XAnP0mq9JdMEwEcwATPV7rPp1+ORV8G4rCX6GplYfDA=",
+        "lastModified": 1730189606,
+        "narHash": "sha256-LgkEB/b9JRWdGHx95mxSWPV5PaSPp8Aau+lsbDUXb44=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "f885d67e3dbd2afe0c779a9f763ddf7a4b603d97",
+        "rev": "6aa8749b515f9dec000b24794b2787b64037db51",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1729449015,
-        "narHash": "sha256-Gf04dXB0n4q0A9G5nTGH3zuMGr6jtJppqdeljxua1fo=",
+        "lastModified": 1730137625,
+        "narHash": "sha256-9z8oOgFZiaguj+bbi3k4QhAD6JabWrnv7fscC/mt0KE=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "89172919243df199fe237ba0f776c3e3e3d72367",
+        "rev": "64b80bfb316b57cdb8919a9110ef63393d74382a",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1729613947,
-        "narHash": "sha256-XGOvuIPW1XRfPgHtGYXd5MAmJzZtOuwlfKDgxX5KT3s=",
+        "lastModified": 1730120726,
+        "narHash": "sha256-LqHYIxMrl/1p3/kvm2ir925tZ8DkI0KA10djk8wecSk=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "aac86347fb5063960eccb19493e0cadcdb4205ca",
+        "rev": "9ef337e492a5555d8e17a51c911ff1f02635be15",
         "type": "github"
       },
       "original": {

From 80bbfb43ac2e38348e871075b151f4be134e9f7d Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 10 Nov 2024 15:34:29 +0100
Subject: [PATCH 038/124] feat(ninurta): remove agares from monitoring

---
 nixos/ninurta/monitoring.nix | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/nixos/ninurta/monitoring.nix b/nixos/ninurta/monitoring.nix
index 9a0b983..c8bee05 100644
--- a/nixos/ninurta/monitoring.nix
+++ b/nixos/ninurta/monitoring.nix
@@ -19,9 +19,6 @@
 
       [surgat]
         address 10.3.3.1
-
-      [agares]
-        address 10.3.3.2
     '';
   };
   services.munin-node.enable = true;

From 3824effcb63d9b1306a8a9fcbf47b5337bbbd8f4 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 17 Nov 2024 00:36:34 +0100
Subject: [PATCH 039/124] chore: update dependencies

---
 flake.lock | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/flake.lock b/flake.lock
index 2c62bcf..a946b3d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -88,11 +88,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1726560853,
-        "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
+        "lastModified": 1731533236,
+        "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
         "owner": "numtide",
         "repo": "flake-utils",
-        "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
+        "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
         "type": "github"
       },
       "original": {
@@ -211,11 +211,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1729386149,
-        "narHash": "sha256-hUP9oxmnOmNnKcDOf5Y55HQ+NnoT0+bLWHLQWLLw9Ks=",
+        "lastModified": 1731200463,
+        "narHash": "sha256-qDaAweJjdFbVExqs8aG27urUgcgKufkIngHW3Rzustg=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "cce4521b6df014e79a7b7afc58c703ed683c916e",
+        "rev": "e04234d263750db01c78a412690363dc2226e68a",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1729472750,
-        "narHash": "sha256-s93LPHi5BN7I2xSGNAFWiYb8WRsPvT1LE9ZjZBrpFlg=",
+        "lastModified": 1731546190,
+        "narHash": "sha256-kJix8nLyFIJ3EC7VtoXK/85C4ZN2dC5oWoS8+ErehqI=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "7c60ba4bc8d6aa2ba3e5b0f6ceb9fc07bc261565",
+        "rev": "06ffce1a8d95e95c06a4bcfa117dd960b14a7101",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1730161780,
-        "narHash": "sha256-z5ILcmwMtiCoHTXS1KsQWqigO7HJO8sbyK7f7wn9F/E=",
+        "lastModified": 1731797098,
+        "narHash": "sha256-UhWmEZhwJZmVZ1jfHZFzCg+ZLO9Tb/v3Y6LC0UNyeTo=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "07d15e8990d5d86a631641b4c429bc0a7400cfb8",
+        "rev": "672ac2ac86f7dff2f6f3406405bddecf960e0db6",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1730189606,
-        "narHash": "sha256-LgkEB/b9JRWdGHx95mxSWPV5PaSPp8Aau+lsbDUXb44=",
+        "lastModified": 1731663789,
+        "narHash": "sha256-x07g4NcqGP6mQn6AISXJaks9sQYDjZmTMBlKIvajvyc=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "6aa8749b515f9dec000b24794b2787b64037db51",
+        "rev": "035d434d48f4375ac5d3a620954cf5fda7dd7c36",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1730137625,
-        "narHash": "sha256-9z8oOgFZiaguj+bbi3k4QhAD6JabWrnv7fscC/mt0KE=",
+        "lastModified": 1731652201,
+        "narHash": "sha256-XUO0JKP1hlww0d7mm3kpmIr4hhtR4zicg5Wwes9cPMg=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "64b80bfb316b57cdb8919a9110ef63393d74382a",
+        "rev": "c21b77913ea840f8bcf9adf4c41cecc2abffd38d",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1730120726,
-        "narHash": "sha256-LqHYIxMrl/1p3/kvm2ir925tZ8DkI0KA10djk8wecSk=",
+        "lastModified": 1730321837,
+        "narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "9ef337e492a5555d8e17a51c911ff1f02635be15",
+        "rev": "746901bb8dba96d154b66492a29f5db0693dbfcc",
         "type": "github"
       },
       "original": {

From b7ed2f7ec01eac2142ee08c44fcf99d285649493 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 17 Nov 2024 00:50:21 +0100
Subject: [PATCH 040/124] feat(home): remove jujutsu from pkgs

---
 home/pkgs.nix | 2 --
 1 file changed, 2 deletions(-)

diff --git a/home/pkgs.nix b/home/pkgs.nix
index ec1deb5..3b1d6ec 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -61,8 +61,6 @@ with pkgs; [
   jameica
   jc # convert output to json
   josm
-  jujutsu
-  jq
   jq
   #jupyter
   kcachegrind

From 806da7a64630973ce7e532ff9ed7ddd5034da1d7 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 24 Nov 2024 15:58:42 +0100
Subject: [PATCH 041/124] feat: add udev rules from libsigrok

---
 nixos/gorgon/configuration.nix | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index fd61298..beadbc6 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -147,7 +147,12 @@ in
     HibernateDelaySec=1h
   '';
 
-  services.udev.packages = [ xilinxJtag saleaeLogic keychron ]; #noMtpUdevRules ];
+  services.udev.packages = [
+    xilinxJtag
+    saleaeLogic
+    keychron
+    pkgs.libsigrok
+  ]; #noMtpUdevRules ];
 
   virtualisation.libvirtd.enable = true;
 

From c70621ece1e90fdeb69e98e845f49271cf66c7c1 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 24 Nov 2024 16:00:50 +0100
Subject: [PATCH 042/124] flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/06ffce1a8d95e95c06a4bcfa117dd960b14a7101' (2024-11-14)
  → 'github:nix-community/nixos-generators/3280fdde8c8f0276c9f5286ad5c0f433dfa5d56c' (2024-11-21)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/e04234d263750db01c78a412690363dc2226e68a' (2024-11-10)
  → 'github:nix-community/nixpkgs.lib/b9f04e3cf71c23bea21d2768051e6b3068d44734' (2024-11-17)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/035d434d48f4375ac5d3a620954cf5fda7dd7c36' (2024-11-15)
  → 'github:NixOS/nixpkgs/df94f897ffe1af1bcd60cb68697c5d8e6431346e' (2024-11-22)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/c21b77913ea840f8bcf9adf4c41cecc2abffd38d' (2024-11-15)
  → 'github:NixOS/nixpkgs/e8c38b73aeb218e27163376a2d617e61a2ad9b59' (2024-11-16)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/746901bb8dba96d154b66492a29f5db0693dbfcc' (2024-10-30)
  → 'github:numtide/treefmt-nix/705df92694af7093dfbb27109ce16d828a79155f' (2024-11-22)
---
 flake.lock | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/flake.lock b/flake.lock
index a946b3d..21ec40c 100644
--- a/flake.lock
+++ b/flake.lock
@@ -211,11 +211,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1731200463,
-        "narHash": "sha256-qDaAweJjdFbVExqs8aG27urUgcgKufkIngHW3Rzustg=",
+        "lastModified": 1731805462,
+        "narHash": "sha256-yhEMW4MBi+IAyEJyiKbnFvY1uARyMKJpLUhkczI49wk=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "e04234d263750db01c78a412690363dc2226e68a",
+        "rev": "b9f04e3cf71c23bea21d2768051e6b3068d44734",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1731546190,
-        "narHash": "sha256-kJix8nLyFIJ3EC7VtoXK/85C4ZN2dC5oWoS8+ErehqI=",
+        "lastModified": 1732151224,
+        "narHash": "sha256-5IgpueM8SGLOadzUJK6Gk37zEBXGd56BkNOtoWmnZos=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "06ffce1a8d95e95c06a4bcfa117dd960b14a7101",
+        "rev": "3280fdde8c8f0276c9f5286ad5c0f433dfa5d56c",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1731663789,
-        "narHash": "sha256-x07g4NcqGP6mQn6AISXJaks9sQYDjZmTMBlKIvajvyc=",
+        "lastModified": 1732244845,
+        "narHash": "sha256-aspop5sCDNpDMS23BplGFtQDadwkSb/sOxpuC3lafvo=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "035d434d48f4375ac5d3a620954cf5fda7dd7c36",
+        "rev": "df94f897ffe1af1bcd60cb68697c5d8e6431346e",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1731652201,
-        "narHash": "sha256-XUO0JKP1hlww0d7mm3kpmIr4hhtR4zicg5Wwes9cPMg=",
+        "lastModified": 1731797254,
+        "narHash": "sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "c21b77913ea840f8bcf9adf4c41cecc2abffd38d",
+        "rev": "e8c38b73aeb218e27163376a2d617e61a2ad9b59",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1730321837,
-        "narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=",
+        "lastModified": 1732292307,
+        "narHash": "sha256-5WSng844vXt8uytT5djmqBCkopyle6ciFgteuA9bJpw=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "746901bb8dba96d154b66492a29f5db0693dbfcc",
+        "rev": "705df92694af7093dfbb27109ce16d828a79155f",
         "type": "github"
       },
       "original": {

From 3bf0f03c0b36818612f5259ff1e14a1c0a29c9a3 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 24 Nov 2024 16:08:10 +0100
Subject: [PATCH 043/124] feat: remove unused nixos/sway module

---
 nixos/modules/sway.nix | 40 ----------------------------------------
 1 file changed, 40 deletions(-)
 delete mode 100644 nixos/modules/sway.nix

diff --git a/nixos/modules/sway.nix b/nixos/modules/sway.nix
deleted file mode 100644
index 190d13e..0000000
--- a/nixos/modules/sway.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ config, pkgs, lib, ... }:
-let
-  cfg = config.dadada.sway;
-in
-{
-  options = {
-    dadada.sway.enable = lib.mkEnableOption "Enable sway";
-  };
-
-  config = lib.mkIf cfg.enable {
-    programs.sway = {
-      enable = true;
-      wrapperFeatures.gtk = true;
-      wrapperFeatures.base = true;
-      extraPackages = with pkgs; [
-        qt5.qtwayland
-        swayidle
-        xwayland
-        mako
-        kanshi
-        kitty
-        i3status
-        bemenu
-        xss-lock
-        swaylock
-        brightnessctl
-        playerctl
-      ];
-      extraSessionCommands = ''
-        export SDL_VIDEODRIVER=wayland
-        # needs qt5.qtwayland in systemPackages
-        export QT_QPA_PLATFORM=wayland
-        export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
-        # Fix for some Java AWT applications (e.g. Android Studio),
-        # use this if they aren't displayed properly:
-        export _JAVA_AWT_WM_NONREPARENTING=1
-      '';
-    };
-  };
-}

From 4e9118e3736c67a0ef542b39e71f86ea357f17fa Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 24 Nov 2024 18:28:34 +0100
Subject: [PATCH 044/124] feat(home): add foot config

---
 home/default.nix | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/home/default.nix b/home/default.nix
index 35bd006..a95f898 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -127,6 +127,41 @@ in
     Install.WantedBy = [ "multi-user.target" ];
   };
 
+  programs.foot = {
+    enable = true;
+    server.enable = false;
+    settings = {
+      main = {
+        shell = "tmux";
+        font = "Jetbrains Mono:size=8";
+        dpi-aware = false;
+      };
+      mouse.hide-when-typing = true;
+      csd.preferred = "none";
+      cursor.color = "fdf6e3 586e75";
+      colors = {
+        background = "fdf6e3";
+        foreground = "657b83";
+        regular0 = "eee8d5";
+        regular1 = "dc322f";
+        regular2 = "859900";
+        regular3 = "b58900";
+        regular4 = "268bd2";
+        regular5 = "d33682";
+        regular6 = "2aa198";
+        regular7 = "073642";
+        bright0 = "cb4b16";
+        bright1 = "fdf6e3";
+        bright2 = "93a1a1";
+        bright3 = "839496";
+        bright4 = "657b83";
+        bright5 = "6c71c4";
+        bright6 = "586e75";
+        bright7 = "002b36";
+      };
+    };
+  };
+
   # Let Home Manager install and manage itself.
   programs.home-manager.enable = true;
 

From 0a6e4f99c4f190bd578cedd2e776700dadaa325d Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 24 Nov 2024 18:48:14 +0100
Subject: [PATCH 045/124] feat: configure sway

---
 home/config                    | 229 +++++++++++++++++++++++++++++++++
 home/default.nix               |   2 +
 home/modules/xdg.nix           |   1 +
 nixos/gorgon/configuration.nix |  39 +++++-
 4 files changed, 267 insertions(+), 4 deletions(-)
 create mode 100644 home/config

diff --git a/home/config b/home/config
new file mode 100644
index 0000000..b379fba
--- /dev/null
+++ b/home/config
@@ -0,0 +1,229 @@
+# Read `man 5 sway` for a complete reference.
+
+### Variables
+#
+# Logo key. Use Mod1 for Alt.
+set $mod Mod4
+# Home row direction keys, like vim
+set $left h
+set $down j
+set $up k
+set $right l
+# Your preferred terminal emulator
+set $term foot
+# Your preferred application launcher
+# Note: pass the final command to swaymsg so that the resulting window can be opened
+# on the original workspace that the command was run on.
+set $menu dmenu_path | wmenu | xargs swaymsg exec --
+
+### Output configuration
+#
+# Default wallpaper (more resolutions are available in /run/current-system/sw/share/backgrounds/sway/)
+output * bg ~/lib/pictures/camera/Camera/PXL_20240302_142813383.jpg fill
+
+### Idle configuration
+#
+# Example configuration:
+#
+exec swayidle -w \
+         timeout 300 'swaylock -f -c 000000' \
+         timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
+         before-sleep 'swaylock -f -c 000000'
+#
+# This will lock your screen after 300 seconds of inactivity, then turn off
+# your displays after another 300 seconds, and turn your screens back on when
+# resumed. It will also lock your screen before your computer goes to sleep.
+
+input * {
+	xkb_layout eu
+	xkb_model pc105+inet
+	xkb_options caps:escape
+    drag_lock enabled
+    drag enabled
+    dwt enabled
+    tap enabled
+    tap_button_map lrm
+    natural_scroll enabled
+}
+
+### Key bindings
+#
+# Basics:
+#
+# Start a terminal
+bindsym $mod+Return exec $term
+
+# Kill focused window
+bindsym $mod+Shift+q kill
+
+# Start your launcher
+bindsym $mod+d exec $menu
+
+# Drag floating windows by holding down $mod and left mouse button.
+# Resize them with right mouse button + $mod.
+# Despite the name, also works for non-floating windows.
+# Change normal to inverse to use left mouse button for resizing and right
+# mouse button for dragging.
+floating_modifier $mod normal
+
+# Lock the screen
+bindsym XF86Sleep exec 'swaylock -f -c 000000'
+
+# Reload the configuration file
+bindsym $mod+Shift+c reload
+
+# Exit sway (logs you out of your Wayland session)
+bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
+
+# Brightness
+bindsym --locked XF86MonBrightnessDown exec light -U 10
+bindsym --locked XF86MonBrightnessUp exec light -A 10
+
+# Volume
+bindsym --locked XF86AudioRaiseVolume exec 'pactl set-sink-volume @DEFAULT_SINK@ +1%'
+bindsym --locked XF86AudioLowerVolume exec 'pactl set-sink-volume @DEFAULT_SINK@ -1%'
+bindsym --locked XF86AudioMute exec 'pactl set-sink-mute @DEFAULT_SINK@ toggle'
+
+#
+# Moving around:
+#
+# Move your focus around
+bindsym $mod+$left focus left
+bindsym $mod+$down focus down
+bindsym $mod+$up focus up
+bindsym $mod+$right focus right
+# Or use $mod+[up|down|left|right]
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# Move the focused window with the same, but add Shift
+bindsym $mod+Shift+$left move left
+bindsym $mod+Shift+$down move down
+bindsym $mod+Shift+$up move up
+bindsym $mod+Shift+$right move right
+# Ditto, with arrow keys
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+#
+# Workspaces:
+#
+# Switch to workspace
+bindsym $mod+1 workspace number 1
+bindsym $mod+2 workspace number 2
+bindsym $mod+3 workspace number 3
+bindsym $mod+4 workspace number 4
+bindsym $mod+5 workspace number 5
+bindsym $mod+6 workspace number 6
+bindsym $mod+7 workspace number 7
+bindsym $mod+8 workspace number 8
+bindsym $mod+9 workspace number 9
+bindsym $mod+0 workspace number 10
+# Move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace number 1
+bindsym $mod+Shift+2 move container to workspace number 2
+bindsym $mod+Shift+3 move container to workspace number 3
+bindsym $mod+Shift+4 move container to workspace number 4
+bindsym $mod+Shift+5 move container to workspace number 5
+bindsym $mod+Shift+6 move container to workspace number 6
+bindsym $mod+Shift+7 move container to workspace number 7
+bindsym $mod+Shift+8 move container to workspace number 8
+bindsym $mod+Shift+9 move container to workspace number 9
+bindsym $mod+Shift+0 move container to workspace number 10
+# Note: workspaces can have any name you want, not just numbers.
+# We just use 1-10 as the default.
+
+#
+# Layout stuff:
+#
+# You can "split" the current object of your focus with
+# $mod+b or $mod+v, for horizontal and vertical splits
+# respectively.
+bindsym $mod+b splith
+bindsym $mod+v splitv
+
+# Switch the current container between different layout styles
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# Make the current focus fullscreen
+bindsym $mod+f fullscreen
+
+# Toggle the current focus between tiling and floating mode
+bindsym $mod+Shift+space floating toggle
+
+# Swap focus between the tiling area and the floating area
+bindsym $mod+space focus mode_toggle
+
+# Move focus to the parent container
+bindsym $mod+a focus parent
+
+#
+# Font
+#
+font "pango:Jetbrains Mono 8"
+
+#
+# Scratchpad:
+#
+# Sway has a "scratchpad", which is a bag of holding for windows.
+# You can send windows there and get them back later.
+
+# Move the currently focused window to the scratchpad
+bindsym $mod+Shift+minus move scratchpad
+
+# Show the next scratchpad window or hide the focused scratchpad window.
+# If there are multiple scratchpad windows, this command cycles through them.
+bindsym $mod+minus scratchpad show
+
+#
+# Resizing containers:
+#
+mode "resize" {
+    # left will shrink the containers width
+    # right will grow the containers width
+    # up will shrink the containers height
+    # down will grow the containers height
+    bindsym $left resize shrink width 10px
+    bindsym $down resize grow height 10px
+    bindsym $up resize shrink height 10px
+    bindsym $right resize grow width 10px
+
+    # Ditto, with arrow keys
+    bindsym Left resize shrink width 10px
+    bindsym Down resize grow height 10px
+    bindsym Up resize shrink height 10px
+    bindsym Right resize grow width 10px
+
+    # Return to default mode
+    bindsym Return mode "default"
+    bindsym Escape mode "default"
+}
+bindsym $mod+r mode "resize"
+
+#
+# Status Bar:
+#
+# Read `man 5 sway-bar` for more information about this section.
+bar {
+    position top
+
+    # When the status_command prints a new line to stdout, swaybar updates.
+    # The default just shows the current date and time.
+    status_command while date +'%Y-%m-%d %X'; do sleep 1; done
+
+    colors {
+        statusline #ffffff
+        background #323232
+        inactive_workspace #32323200 #32323200 #5c5c5c
+    }
+}
+
+include /etc/sway/config.d/*
+
+exec sleep 5; systemctl --user start kanshi.service
diff --git a/home/default.nix b/home/default.nix
index a95f898..56298f0 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -162,6 +162,8 @@ in
     };
   };
 
+  home.file.".config/sway/config".source = ./config;
+
   # Let Home Manager install and manage itself.
   programs.home-manager.enable = true;
 
diff --git a/home/modules/xdg.nix b/home/modules/xdg.nix
index b093eca..bb96a7d 100644
--- a/home/modules/xdg.nix
+++ b/home/modules/xdg.nix
@@ -29,6 +29,7 @@ in
   config = mkIf cfg.enable {
     xdg = {
       enable = true;
+      configHome = "${config.home.homeDirectory}/.config";
       mimeApps = {
         enable = false;
         associations.added = apps;
diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index beadbc6..776165a 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -125,9 +125,13 @@ in
   };
 
   environment.systemPackages = with pkgs; [
-    chromium
     ghostscript
     smartmontools
+
+    grim # screenshot functionality
+    slurp # screenshot functionality
+    mako # notification system developed by swaywm maintainer
+    pulseaudio
   ];
 
   networking.firewall = {
@@ -208,9 +212,36 @@ in
   services.gnome.gnome-keyring.enable = lib.mkForce false;
   programs.gnupg.agent.enable = true;
 
-  services.xserver.enable = true;
-  services.xserver.desktopManager.gnome.enable = true;
-  services.xserver.displayManager.gdm.enable = true;
+  #services.xserver.enable = true;
+  #services.xserver.desktopManager.gnome.enable = true;
+  #services.xserver.displayManager.gdm.enable = true;
+  services.greetd = {
+    enable = true;
+    settings = {
+      default_session = {
+        command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway";
+        user = "greeter";
+      };
+    };
+  };
+  systemd.user.services.kanshi = {
+    description = "kanshi daemon";
+    environment = {
+      WAYLAND_DISPLAY = "wayland-1";
+      DISPLAY = ":0";
+    };
+    serviceConfig = {
+      Type = "simple";
+      ExecStart = ''${pkgs.kanshi}/bin/kanshi'';
+    };
+  };
+  # enable Sway window manager
+  programs.sway = {
+    enable = true;
+    wrapperFeatures.gtk = true;
+  };
+  programs.light.enable = true;
+  xdg.portal.wlr.enable = true;
 
   hardware.opengl = {
     enable = true;

From 168056ce39135c6495a38c107d8c6e0cdddba4a5 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 24 Nov 2024 19:16:34 +0100
Subject: [PATCH 046/124] chore: upgrade to 24.11

---
 flake.lock                         | 44 +++++++++++++++---------------
 flake.nix                          |  8 +++---
 home/modules/alacritty/default.nix |  1 -
 home/modules/xdg.nix               |  2 +-
 home/pkgs.nix                      |  2 +-
 nixos/gorgon/configuration.nix     |  1 +
 nixos/ninurta/configuration.nix    |  4 +--
 7 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/flake.lock b/flake.lock
index 21ec40c..baa2c4e 100644
--- a/flake.lock
+++ b/flake.lock
@@ -144,16 +144,16 @@
         ]
       },
       "locked": {
-        "lastModified": 1726989464,
-        "narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
+        "lastModified": 1732466619,
+        "narHash": "sha256-T1e5oceypZu3Q8vzICjv1X/sGs9XfJRMW5OuXHgpB3c=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
+        "rev": "f3111f62a23451114433888902a55cf0692b408d",
         "type": "github"
       },
       "original": {
         "owner": "nix-community",
-        "ref": "release-24.05",
+        "ref": "release-24.11",
         "repo": "home-manager",
         "type": "github"
       }
@@ -175,15 +175,15 @@
     "lix": {
       "flake": false,
       "locked": {
-        "lastModified": 1723503926,
-        "narHash": "sha256-Rosl9iA9MybF5Bud4BTAQ9adbY81aGmPfV8dDBGl34s=",
-        "rev": "bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2",
+        "lastModified": 1729298361,
+        "narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=",
+        "rev": "ad9d06f7838a25beec425ff406fe68721fef73be",
         "type": "tarball",
-        "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2.tar.gz?rev=bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2"
+        "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be"
       },
       "original": {
         "type": "tarball",
-        "url": "https://git.lix.systems/lix-project/lix/archive/2.91.0.tar.gz"
+        "url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.tar.gz"
       }
     },
     "lix-module": {
@@ -198,15 +198,15 @@
         ]
       },
       "locked": {
-        "lastModified": 1723510904,
-        "narHash": "sha256-zNW/rqNJwhq2lYmQf19wJerRuNimjhxHKmzrWWFJYts=",
-        "rev": "622a2253a071a1fb97a4d3c8103a91114acc1140",
+        "lastModified": 1729360442,
+        "narHash": "sha256-6U0CyPycIBc04hbYy2hBINnVso58n/ZyywY2BD3hu+s=",
+        "rev": "9098ac95768f7006d7e070b88bae76939f6034e6",
         "type": "tarball",
-        "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/622a2253a071a1fb97a4d3c8103a91114acc1140.tar.gz?rev=622a2253a071a1fb97a4d3c8103a91114acc1140"
+        "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/9098ac95768f7006d7e070b88bae76939f6034e6.tar.gz?rev=9098ac95768f7006d7e070b88bae76939f6034e6"
       },
       "original": {
         "type": "tarball",
-        "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz"
+        "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz"
       }
     },
     "nixlib": {
@@ -263,32 +263,32 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1732244845,
-        "narHash": "sha256-aspop5sCDNpDMS23BplGFtQDadwkSb/sOxpuC3lafvo=",
+        "lastModified": 1732237847,
+        "narHash": "sha256-WwtrPxym9sQtwZkemxUfT00iCWfXxzuVAC7uFP1m1Y0=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "df94f897ffe1af1bcd60cb68697c5d8e6431346e",
+        "rev": "9bbcb9a5a7e54369faaced5fb0ddad1fda21b751",
         "type": "github"
       },
       "original": {
         "owner": "NixOS",
-        "ref": "nixos-24.05-small",
+        "ref": "nixos-24.11-small",
         "repo": "nixpkgs",
         "type": "github"
       }
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1731797254,
-        "narHash": "sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g=",
+        "lastModified": 1731755305,
+        "narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "e8c38b73aeb218e27163376a2d617e61a2ad9b59",
+        "rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4",
         "type": "github"
       },
       "original": {
         "owner": "NixOS",
-        "ref": "nixos-24.05",
+        "ref": "nixos-24.11",
         "repo": "nixpkgs",
         "type": "github"
       }
diff --git a/flake.nix b/flake.nix
index 5e512b9..3ab6e15 100644
--- a/flake.nix
+++ b/flake.nix
@@ -2,14 +2,14 @@
   description = "dadada's nix flake";
 
   inputs = {
-    nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05-small";
-    nixpkgs-full.url = "github:NixOS/nixpkgs/nixos-24.05";
+    nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11-small";
+    nixpkgs-full.url = "github:NixOS/nixpkgs/nixos-24.11";
     flake-utils = {
       url = "github:numtide/flake-utils";
       inputs.systems.follows = "systems";
     };
     home-manager = {
-      url = "github:nix-community/home-manager/release-24.05";
+      url = "github:nix-community/home-manager/release-24.11";
       inputs.nixpkgs.follows = "nixpkgs";
     };
     nixos-hardware.url = "github:NixOS/nixos-hardware/master";
@@ -26,7 +26,7 @@
       inputs.nixpkgs.follows = "nixpkgs";
     };
     lix-module = {
-      url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz";
+      url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz";
       inputs.nixpkgs.follows = "nixpkgs";
       inputs.flake-utils.follows = "flake-utils";
     };
diff --git a/home/modules/alacritty/default.nix b/home/modules/alacritty/default.nix
index 0b84642..086b945 100644
--- a/home/modules/alacritty/default.nix
+++ b/home/modules/alacritty/default.nix
@@ -11,7 +11,6 @@ in
     enable = mkEnableOption "Enable alacritty config";
   };
   config = mkIf cfg.enable {
-    fonts.fontconfig.enable = true;
     home.packages = [
       pkgs.jetbrains-mono
     ];
diff --git a/home/modules/xdg.nix b/home/modules/xdg.nix
index bb96a7d..cccf70e 100644
--- a/home/modules/xdg.nix
+++ b/home/modules/xdg.nix
@@ -47,7 +47,7 @@ in
     home.packages = with pkgs; [
       evince
       firefox
-      xdg_utils
+      xdg-utils
     ];
   };
 }
diff --git a/home/pkgs.nix b/home/pkgs.nix
index 3b1d6ec..8c1657f 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -133,7 +133,7 @@ with pkgs; [
   vscodium
   whois
   wireshark
-  xdg_utils
+  xdg-utils
   xmlstarlet
   xsv # cut for csv
   unixtools.xxd
diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index 776165a..3b5a8e9 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -242,6 +242,7 @@ in
   };
   programs.light.enable = true;
   xdg.portal.wlr.enable = true;
+  hardware.bluetooth.enable = true;
 
   hardware.opengl = {
     enable = true;
diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index 1023d5f..2a9e837 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -158,7 +158,7 @@ in
 
   services.hydra = {
     enable = true;
-    package = pkgs.hydra-unstable;
+    package = pkgs.hydra;
     hydraURL = "https://hydra.dadada.li";
     notificationSender = "hydra@localhost";
     buildMachinesFiles = [ ];
@@ -394,7 +394,7 @@ in
   services.xserver.displayManager.gdm.enable = true;
   services.xserver.desktopManager.gnome = {
     enable = true;
-    extraGSettingsOverridePackages = with pkgs; [ gnome3.gnome-settings-daemon ];
+    extraGSettingsOverridePackages = with pkgs; [ gnome.gnome-settings-daemon ];
     extraGSettingsOverrides = ''
       [org.gnome.desktop.screensaver]
       lock-delay=uint32 30

From bd89f8498e8a22a13fec71e74c680a40ce159b1e Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 25 Nov 2024 00:02:08 +0100
Subject: [PATCH 047/124] feat: update wallpaper

---
 home/config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/home/config b/home/config
index b379fba..c77a6b7 100644
--- a/home/config
+++ b/home/config
@@ -19,7 +19,7 @@ set $menu dmenu_path | wmenu | xargs swaymsg exec --
 ### Output configuration
 #
 # Default wallpaper (more resolutions are available in /run/current-system/sw/share/backgrounds/sway/)
-output * bg ~/lib/pictures/camera/Camera/PXL_20240302_142813383.jpg fill
+output * bg ~/tmp/51761494940_7f9d6ab0e3_o.jpg fill
 
 ### Idle configuration
 #

From 71de97484728331ec3eb0f1f6d2ca57f69b7bbf3 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 25 Nov 2024 00:02:41 +0100
Subject: [PATCH 048/124] fix: disable shared shell history

There is some bug preventing the fzf history selection from the widget
to be pasted.
---
 home/modules/zsh.nix | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/home/modules/zsh.nix b/home/modules/zsh.nix
index 58cef5b..ab51e59 100644
--- a/home/modules/zsh.nix
+++ b/home/modules/zsh.nix
@@ -26,7 +26,9 @@ in
         ignoreDups = true;
         ignoreSpace = true;
         save = 100000;
-        share = true;
+        # FIXME https://github.com/junegunn/fzf/issues/4061
+        #share = true;
+        share = false;
       };
       plugins = [
       ];

From cf26daecee2d42c9ac9b473bc8d7736997cb0743 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 25 Nov 2024 00:03:44 +0100
Subject: [PATCH 049/124] fix: actually start kanshi

---
 nixos/gorgon/configuration.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index 3b5a8e9..85bb03d 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -225,6 +225,7 @@ in
     };
   };
   systemd.user.services.kanshi = {
+    enable = true;
     description = "kanshi daemon";
     environment = {
       WAYLAND_DISPLAY = "wayland-1";

From 429f906a1ab25b7dff7c613e086d4c27b5e652d8 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 30 Nov 2024 18:29:51 +0100
Subject: [PATCH 050/124] feat: add status script

---
 home/config                    |   2 +-
 home/default.nix               |   1 +
 home/pkgs.nix                  |   5 +-
 home/status                    | 113 +++++++++++++++++++++++++++++++++
 nixos/gorgon/configuration.nix |   1 +
 5 files changed, 120 insertions(+), 2 deletions(-)
 create mode 100755 home/status

diff --git a/home/config b/home/config
index c77a6b7..bc01bb6 100644
--- a/home/config
+++ b/home/config
@@ -215,7 +215,7 @@ bar {
 
     # When the status_command prints a new line to stdout, swaybar updates.
     # The default just shows the current date and time.
-    status_command while date +'%Y-%m-%d %X'; do sleep 1; done
+    status_command ~/.config/sway/status
 
     colors {
         statusline #ffffff
diff --git a/home/default.nix b/home/default.nix
index 56298f0..15514f9 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -163,6 +163,7 @@ in
   };
 
   home.file.".config/sway/config".source = ./config;
+  home.file.".config/sway/status".source = ./status;
 
   # Let Home Manager install and manage itself.
   programs.home-manager.enable = true;
diff --git a/home/pkgs.nix b/home/pkgs.nix
index 8c1657f..0fb833c 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -102,7 +102,10 @@ with pkgs; [
   prusa-slicer
   pv
   pwgen
-  python3
+  (python3.withPackages (python-pkgs: with python-pkgs; [
+    pandas
+    requests
+  ]))
   ranger
   recipemd
   reptyr
diff --git a/home/status b/home/status
new file mode 100755
index 0000000..176467a
--- /dev/null
+++ b/home/status
@@ -0,0 +1,113 @@
+#!/usr/bin/env python3
+
+import json
+import sys
+import time
+import requests
+import logging
+
+from datetime import datetime
+
+logger = logging.getLogger(__name__)
+
+
+class Status:
+    def status(self):
+        return None
+
+
+class Cat(Status):
+    index = 0
+
+    def status(self):
+        cat_width = 200
+        index = self.index
+        catwalk = " " * (cat_width - index) + 1 * "🐈🏳️‍🌈" + " " * index
+        self.index = (index + 1) % cat_width
+
+        return catwalk
+
+
+class Space(Status):
+    backoff = 0
+    c_status = None
+
+    def status(self):
+        backoff = self.backoff
+        if self.backoff == 0:
+            self.update()
+
+        return self.c_status
+
+    def update(self):
+        spacestatus_url = "https://status.stratum0.org/status.json"
+        resp = requests.get(url=spacestatus_url)
+        self.backoff = (self.backoff + 1) % 120
+        data = resp.json()
+        if data["isOpen"]:
+            since = datetime.strptime(data["since"], "%Y-%m-%dT%H:%M:%S.%f").strftime("%A at %H:%M")
+            spacestatus = f"Space is open since {since}"
+        else:
+            spacestatus = "Space is closed"
+        self.c_status = spacestatus
+
+
+class Battery(Status):
+    capacity_file = open('/sys/class/power_supply/BAT0/capacity', 'r')
+    status_file = open('/sys/class/power_supply/BAT0/status', 'r')
+
+    def status(self):
+        self.status_file.seek(0)
+        status = self.status_file.read().rstrip()
+
+        self.capacity_file.seek(0)
+        capacity = self.capacity_file.read().rstrip()
+
+        battery = f"{status} {capacity}%"
+
+        return battery
+
+
+class Time(Status):
+    def status(state):
+        return datetime.now().strftime("%Vth %A %H:%M")
+
+
+def print_header():
+    header = {
+        "version": 1,
+        "click_events": False,
+    }
+    print(json.dumps(header))
+    print("[")
+
+
+def run(interval, widgets):
+    print_header()
+
+    while True:
+        body = []
+
+        for widget in widgets:
+            try:
+                status = widget.status()
+            except Exception as e:
+                logger.error(e)
+            if status:
+                body += {"full_text": f"{status}"},
+
+        print(json.dumps(body), ",", flush=True)
+
+        ts = interval - (time.time() % interval)
+        time.sleep(ts)
+
+
+if __name__ == "__main__":
+    logging.basicConfig(level=logging.INFO)
+
+    # Interval in seconds
+    interval = 1.0
+
+    widgets = [Cat(), Space(), Battery(), Time()]
+
+    run(interval, widgets)
diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index 85bb03d..e0268e2 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -128,6 +128,7 @@ in
     ghostscript
     smartmontools
 
+    dmenu
     grim # screenshot functionality
     slurp # screenshot functionality
     mako # notification system developed by swaywm maintainer

From 165c9822b985aa9576ff3f2e9f8aaa6f95e91619 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 1 Dec 2024 14:12:05 +0100
Subject: [PATCH 051/124] chore(flake.lock): Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/3280fdde8c8f0276c9f5286ad5c0f433dfa5d56c' (2024-11-21)
  → 'github:nix-community/nixos-generators/098e8b6ff72c86944a8d54b64ddd7b7e6635830a' (2024-11-25)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/b9f04e3cf71c23bea21d2768051e6b3068d44734' (2024-11-17)
  → 'github:nix-community/nixpkgs.lib/87b6978992e2eb605732fba842cad0a7e14b2047' (2024-11-24)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/672ac2ac86f7dff2f6f3406405bddecf960e0db6' (2024-11-16)
  → 'github:NixOS/nixos-hardware/45348ad6fb8ac0e8415f6e5e96efe47dd7f39405' (2024-11-24)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9bbcb9a5a7e54369faaced5fb0ddad1fda21b751' (2024-11-22)
  → 'github:NixOS/nixpkgs/d44a276324b63ff7ca4254b7ea51d5bac7eb6c64' (2024-12-01)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/057f63b6dc1a2c67301286152eb5af20747a9cb4' (2024-11-16)
  → 'github:NixOS/nixpkgs/62c435d93bf046a5396f3016472e8f7c8e2aed65' (2024-11-30)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/705df92694af7093dfbb27109ce16d828a79155f' (2024-11-22)
  → 'github:numtide/treefmt-nix/6209c381904cab55796c5d7350e89681d3b2a8ef' (2024-11-29)
---
 flake.lock | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/flake.lock b/flake.lock
index baa2c4e..b8383bc 100644
--- a/flake.lock
+++ b/flake.lock
@@ -211,11 +211,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1731805462,
-        "narHash": "sha256-yhEMW4MBi+IAyEJyiKbnFvY1uARyMKJpLUhkczI49wk=",
+        "lastModified": 1732410305,
+        "narHash": "sha256-/hxIKRTBsdrnudJWDGaBN8wIjHovqVAVxXdi8ByVtck=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "b9f04e3cf71c23bea21d2768051e6b3068d44734",
+        "rev": "87b6978992e2eb605732fba842cad0a7e14b2047",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1732151224,
-        "narHash": "sha256-5IgpueM8SGLOadzUJK6Gk37zEBXGd56BkNOtoWmnZos=",
+        "lastModified": 1732496924,
+        "narHash": "sha256-/MNhZLR0eh9z/d3l+ammq+F5XxHln0RHgO4Bhtjr0IM=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "3280fdde8c8f0276c9f5286ad5c0f433dfa5d56c",
+        "rev": "098e8b6ff72c86944a8d54b64ddd7b7e6635830a",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1731797098,
-        "narHash": "sha256-UhWmEZhwJZmVZ1jfHZFzCg+ZLO9Tb/v3Y6LC0UNyeTo=",
+        "lastModified": 1732483221,
+        "narHash": "sha256-kF6rDeCshoCgmQz+7uiuPdREVFuzhIorGOoPXMalL2U=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "672ac2ac86f7dff2f6f3406405bddecf960e0db6",
+        "rev": "45348ad6fb8ac0e8415f6e5e96efe47dd7f39405",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1732237847,
-        "narHash": "sha256-WwtrPxym9sQtwZkemxUfT00iCWfXxzuVAC7uFP1m1Y0=",
+        "lastModified": 1733040108,
+        "narHash": "sha256-x48Dv2n8d0Ebk0Pp6qk5TW4b+oUfkOpl16ick+npjD0=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "9bbcb9a5a7e54369faaced5fb0ddad1fda21b751",
+        "rev": "d44a276324b63ff7ca4254b7ea51d5bac7eb6c64",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1731755305,
-        "narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=",
+        "lastModified": 1732981179,
+        "narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4",
+        "rev": "62c435d93bf046a5396f3016472e8f7c8e2aed65",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1732292307,
-        "narHash": "sha256-5WSng844vXt8uytT5djmqBCkopyle6ciFgteuA9bJpw=",
+        "lastModified": 1732894027,
+        "narHash": "sha256-2qbdorpq0TXHBWbVXaTqKoikN4bqAtAplTwGuII+oAc=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "705df92694af7093dfbb27109ce16d828a79155f",
+        "rev": "6209c381904cab55796c5d7350e89681d3b2a8ef",
         "type": "github"
       },
       "original": {

From dbb636e7dfd7bd2cd8d7723727ff6538e76becf7 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 1 Dec 2024 14:43:32 +0100
Subject: [PATCH 052/124] fix: remove failing units

---
 nixos/gorgon/configuration.nix | 34 ++--------------------------------
 1 file changed, 2 insertions(+), 32 deletions(-)

diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index e0268e2..12723e0 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -34,6 +34,8 @@ in
     ./hardware-configuration.nix
   ];
 
+  dadada.backupClient.bs.enable = false;
+  dadada.backupClient.backup1.enable = true;
   dadada.backupClient.backup2 = {
     enable = true;
     passphrasePath = config.age.secrets."${config.networking.hostName}-backup-passphrase".path;
@@ -178,38 +180,6 @@ in
     "127.0.0.2" = [ "kanboard.dadada.li" ];
   };
 
-  # https://lists.zx2c4.com/pipermail/wireguard/2017-November/002028.html
-  systemd.timers.wg-reresolve-dns = {
-    wantedBy = [ "timers.target" ];
-    partOf = [ "wg-reresolve-dns.service" ];
-    timerConfig.OnCalendar = "hourly";
-  };
-
-  systemd.services.wg-reresolve-dns =
-    let
-      vpnPubKey = "x/y6I59buVzv9Lfzl+b17mGWbzxU+3Ke9mQNa1DLsDI=";
-    in
-    {
-      serviceConfig.Type = "oneshot";
-      script = ''
-        ${pkgs.wireguard-tools}/bin/wg set dadada peer ${vpnPubKey} endpoint vpn.dadada.li:51234 persistent-keepalive 25 allowed-ips fd42:9c3b:f96d::/48
-      '';
-    };
-
-  #networking.wg-quick.interfaces.mullvad = {
-  #  address = [ "10.68.15.202/32" "fc00:bbbb:bbbb:bb01::5:fc9/128" ];
-  #  privateKeyFile = "/var/lib/wireguard/mullvad";
-  #  peers = [
-  #    {
-  #      publicKey = "Ec/wwcosVal9Kjc97ZuTTV7Dy5c0/W5iLet7jrSEm2k=";
-  #      allowedIPs = [ "0.0.0.0/0" "::0/0" ];
-  #      endpoint = "193.27.14.66:51820";
-  #      persistentKeepalive = 25;
-  #    }
-  #  ];
-  #  postUp = "${pkgs.iproute2}/bin/ip rule add to 193.27.14.66 lookup main";
-  #};
-
   services.gnome.gnome-keyring.enable = lib.mkForce false;
   programs.gnupg.agent.enable = true;
 

From eb81a1fedf47cff9ec5a2711d2606a5006a86877 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 1 Dec 2024 15:14:31 +0100
Subject: [PATCH 053/124] feat: count failed units in status

---
 home/status | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

diff --git a/home/status b/home/status
index 176467a..45e78d8 100755
--- a/home/status
+++ b/home/status
@@ -5,6 +5,7 @@ import sys
 import time
 import requests
 import logging
+import subprocess
 
 from datetime import datetime
 
@@ -25,7 +26,7 @@ class Cat(Status):
         catwalk = " " * (cat_width - index) + 1 * "🐈🏳️‍🌈" + " " * index
         self.index = (index + 1) % cat_width
 
-        return catwalk
+        return {"full_text": catwalk}
 
 
 class Space(Status):
@@ -37,7 +38,7 @@ class Space(Status):
         if self.backoff == 0:
             self.update()
 
-        return self.c_status
+        return {"full_text": self.c_status}
 
     def update(self):
         spacestatus_url = "https://status.stratum0.org/status.json"
@@ -65,12 +66,26 @@ class Battery(Status):
 
         battery = f"{status} {capacity}%"
 
-        return battery
+        return {"full_text": battery}
 
 
 class Time(Status):
-    def status(state):
-        return datetime.now().strftime("%Vth %A %H:%M")
+    def status(self):
+        return {"full_text": datetime.now().strftime("%Vth %A %H:%M") }
+
+
+class FailedUnits(Status):
+    def status(self):
+        proc = subprocess.run(["systemctl", "list-units", "--failed"], capture_output = True)
+        stdout = proc.stdout.decode('utf-8')
+        failed = 0
+        for line in stdout:
+            if 'failed' in line:
+                failed += 1
+        if failed is 0:
+            return {"full_text": f"No failed units"}
+        else:
+            return {"full_text": f"There are {failed} failed units", "color": "#ff0000"}
 
 
 def print_header():
@@ -94,7 +109,7 @@ def run(interval, widgets):
             except Exception as e:
                 logger.error(e)
             if status:
-                body += {"full_text": f"{status}"},
+                body += status,
 
         print(json.dumps(body), ",", flush=True)
 
@@ -108,6 +123,6 @@ if __name__ == "__main__":
     # Interval in seconds
     interval = 1.0
 
-    widgets = [Cat(), Space(), Battery(), Time()]
+    widgets = [Cat(), FailedUnits(), Space(), Battery(), Time()]
 
     run(interval, widgets)

From fc4521750d5308c421c5900204ef1ff2a797da3a Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 1 Dec 2024 19:05:49 +0100
Subject: [PATCH 054/124] fix(ninurta): ssh port

---
 nixos/ninurta/configuration.nix | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index 2a9e837..7f63e0f 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -37,6 +37,8 @@ in
     };
   };
 
+  services.openssh.ports = [ 22 ];
+
   dadada.backupClient.bs.enable = false;
   dadada.backupClient.backup1.enable = false;
 

From 4e44dc164a7a3518153959d8fe10c35f1fe5aec7 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 8 Dec 2024 13:03:45 +0100
Subject: [PATCH 055/124] fix: enable backup1

---
 nixos/modules/backup.nix          | 2 +-
 nixos/modules/profiles/backup.nix | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/nixos/modules/backup.nix b/nixos/modules/backup.nix
index c18aeb8..0ec680f 100644
--- a/nixos/modules/backup.nix
+++ b/nixos/modules/backup.nix
@@ -156,7 +156,7 @@ in
       };
     };
 
-    services.borgbackup.jobs.backup1 = mkIf cfg.bs.enable {
+    services.borgbackup.jobs.backup1 = mkIf cfg.backup1.enable {
       paths = "/";
       exclude = backupExcludes;
       repo = "borg@backup1.dadada.li:/mnt/storage/backups/${config.networking.hostName}";
diff --git a/nixos/modules/profiles/backup.nix b/nixos/modules/profiles/backup.nix
index a69a89c..a5ad0eb 100644
--- a/nixos/modules/profiles/backup.nix
+++ b/nixos/modules/profiles/backup.nix
@@ -4,7 +4,7 @@ let
 in
 {
   dadada.backupClient.bs = {
-    enable = lib.mkDefault true;
+    enable = lib.mkDefault false;
     passphrasePath = config.age.secrets."${config.networking.hostName}-backup-passphrase".path;
     sshIdentityFile = config.age.secrets."${config.networking.hostName}-backup-ssh-key".path;
   };

From 776f7d2000879e0ec43741cd54f11f8fe7115a6c Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 8 Dec 2024 13:04:37 +0100
Subject: [PATCH 056/124] feat(laptop): remove ssh agent enable by default

---
 nixos/modules/profiles/laptop.nix | 1 -
 1 file changed, 1 deletion(-)

diff --git a/nixos/modules/profiles/laptop.nix b/nixos/modules/profiles/laptop.nix
index 85e8e86..a525106 100644
--- a/nixos/modules/profiles/laptop.nix
+++ b/nixos/modules/profiles/laptop.nix
@@ -16,7 +16,6 @@ with lib; {
   networking.domain = mkDefault "dadada.li";
 
   services.fwupd.enable = mkDefault true;
-  programs.ssh.startAgent = true;
   programs.ssh.enableAskPassword = true;
   programs.nix-ld.enable = true;
 

From 96dcd17947fff6c172597d2cd79bd3f19e04d5ae Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 8 Dec 2024 13:10:22 +0100
Subject: [PATCH 057/124] feat(gorgon): enable ssh-agent

---
 nixos/gorgon/configuration.nix | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index 12723e0..935052a 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -43,6 +43,8 @@ in
     repo = "u355513-sub1@u355513-sub1.your-storagebox.de:/home/backup";
   };
 
+  programs.ssh.startAgent = true;
+
   nix.extraOptions = ''
     experimental-features = nix-command flakes
     # Prevent garbage collection for nix shell and direnv

From 3b12ac46af8d5d5ba007f5130505347d7d686835 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 8 Dec 2024 13:27:55 +0100
Subject: [PATCH 058/124] chore(flake.lock): update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/f3111f62a23451114433888902a55cf0692b408d' (2024-11-24)
  → 'github:nix-community/home-manager/c7ffc9727d115e433fd884a62dc164b587ff651d' (2024-12-07)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/098e8b6ff72c86944a8d54b64ddd7b7e6635830a' (2024-11-25)
  → 'github:nix-community/nixos-generators/8cdaf8885c9c85d9d27b594dbe882406aadfe00e' (2024-12-05)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/87b6978992e2eb605732fba842cad0a7e14b2047' (2024-11-24)
  → 'github:nix-community/nixpkgs.lib/0e4fdd4a0ab733276b6d2274ff84ae353f17129e' (2024-12-01)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/45348ad6fb8ac0e8415f6e5e96efe47dd7f39405' (2024-11-24)
  → 'github:NixOS/nixos-hardware/e563803af3526852b6b1d77107a81908c66a9fcf' (2024-12-06)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d44a276324b63ff7ca4254b7ea51d5bac7eb6c64' (2024-12-01)
  → 'github:NixOS/nixpkgs/5e7591e5e8c8cddc1e9c7cad01033e6c2d560cd0' (2024-12-08)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/62c435d93bf046a5396f3016472e8f7c8e2aed65' (2024-11-30)
  → 'github:NixOS/nixpkgs/4dc2fc4e62dbf62b84132fe526356fbac7b03541' (2024-12-05)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/6209c381904cab55796c5d7350e89681d3b2a8ef' (2024-11-29)
  → 'github:numtide/treefmt-nix/50862ba6a8a0255b87377b9d2d4565e96f29b410' (2024-12-05)
---
 flake.lock | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/flake.lock b/flake.lock
index b8383bc..63f55fd 100644
--- a/flake.lock
+++ b/flake.lock
@@ -144,11 +144,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1732466619,
-        "narHash": "sha256-T1e5oceypZu3Q8vzICjv1X/sGs9XfJRMW5OuXHgpB3c=",
+        "lastModified": 1733572789,
+        "narHash": "sha256-zjO6m5BqxXIyjrnUziAzk4+T4VleqjstNudSqWcpsHI=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "f3111f62a23451114433888902a55cf0692b408d",
+        "rev": "c7ffc9727d115e433fd884a62dc164b587ff651d",
         "type": "github"
       },
       "original": {
@@ -211,11 +211,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1732410305,
-        "narHash": "sha256-/hxIKRTBsdrnudJWDGaBN8wIjHovqVAVxXdi8ByVtck=",
+        "lastModified": 1733015484,
+        "narHash": "sha256-qiyO0GrTvbp869U4VGX5GhAZ00fSiPXszvosY1AgKQ8=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "87b6978992e2eb605732fba842cad0a7e14b2047",
+        "rev": "0e4fdd4a0ab733276b6d2274ff84ae353f17129e",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1732496924,
-        "narHash": "sha256-/MNhZLR0eh9z/d3l+ammq+F5XxHln0RHgO4Bhtjr0IM=",
+        "lastModified": 1733360821,
+        "narHash": "sha256-bNXO+OGxrOjAxv/Lnyj84tNDicJ/FdLyLJHzOKSzYU8=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "098e8b6ff72c86944a8d54b64ddd7b7e6635830a",
+        "rev": "8cdaf8885c9c85d9d27b594dbe882406aadfe00e",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1732483221,
-        "narHash": "sha256-kF6rDeCshoCgmQz+7uiuPdREVFuzhIorGOoPXMalL2U=",
+        "lastModified": 1733481457,
+        "narHash": "sha256-IS3bxa4N1VMSh3/P6vhEAHQZecQ3oAlKCDvzCQSO5Is=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "45348ad6fb8ac0e8415f6e5e96efe47dd7f39405",
+        "rev": "e563803af3526852b6b1d77107a81908c66a9fcf",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1733040108,
-        "narHash": "sha256-x48Dv2n8d0Ebk0Pp6qk5TW4b+oUfkOpl16ick+npjD0=",
+        "lastModified": 1733642008,
+        "narHash": "sha256-ijS1XixgnF1UW1wnsO5J7rw5li0n6SZCBQWCYSfJwXw=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "d44a276324b63ff7ca4254b7ea51d5bac7eb6c64",
+        "rev": "5e7591e5e8c8cddc1e9c7cad01033e6c2d560cd0",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1732981179,
-        "narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=",
+        "lastModified": 1733412085,
+        "narHash": "sha256-FillH0qdWDt/nlO6ED7h4cmN+G9uXwGjwmCnHs0QVYM=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "62c435d93bf046a5396f3016472e8f7c8e2aed65",
+        "rev": "4dc2fc4e62dbf62b84132fe526356fbac7b03541",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1732894027,
-        "narHash": "sha256-2qbdorpq0TXHBWbVXaTqKoikN4bqAtAplTwGuII+oAc=",
+        "lastModified": 1733440889,
+        "narHash": "sha256-qKL3vjO+IXFQ0nTinFDqNq/sbbnnS5bMI1y0xX215fU=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "6209c381904cab55796c5d7350e89681d3b2a8ef",
+        "rev": "50862ba6a8a0255b87377b9d2d4565e96f29b410",
         "type": "github"
       },
       "original": {

From b059d11f6338bd93e976ff9e2e7f0c46ff0241a7 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 8 Dec 2024 13:32:44 +0100
Subject: [PATCH 059/124] feat(ninurta): remove desktop config

---
 nixos/ninurta/configuration.nix | 44 ---------------------------------
 1 file changed, 44 deletions(-)

diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index 7f63e0f..4bbca26 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -390,30 +390,6 @@ in
   networking.networkmanager.enable = false;
   networking.useDHCP = false;
 
-  # Desktop things for media playback
-
-  services.xserver.enable = true;
-  services.xserver.displayManager.gdm.enable = true;
-  services.xserver.desktopManager.gnome = {
-    enable = true;
-    extraGSettingsOverridePackages = with pkgs; [ gnome.gnome-settings-daemon ];
-    extraGSettingsOverrides = ''
-      [org.gnome.desktop.screensaver]
-      lock-delay=uint32 30
-      lock-enabled=true
-
-      [org.gnome.desktop.session]
-      idle-delay=uint32 0
-
-      [org.gnome.settings-daemon.plugins.power]
-      idle-dim=false
-      power-button-action='interactive'
-      power-saver-profile-on-low-battery=false
-      sleep-inactive-ac-type='nothing'
-      sleep-inactive-battery-type='nothing'
-    '';
-  };
-
   powerManagement = {
     enable = true;
     cpuFreqGovernor = "powersave";
@@ -424,15 +400,6 @@ in
     # Configure the disks to spin down after 10 min of inactivity.
   };
 
-  security.rtkit.enable = true;
-
-  services.pipewire = {
-    enable = true;
-    alsa.enable = true;
-    alsa.support32Bit = true;
-    pulse.enable = true;
-  };
-
   services.udev.packages = [
     (pkgs.writeTextFile {
       name = "60-hdparm";
@@ -446,21 +413,10 @@ in
   hardware.pulseaudio.enable = false;
 
   environment.systemPackages = with pkgs; [
-    firefox
-    spotify
-    mpv
     smartmontools
     hdparm
   ];
 
-  users.users."media" = {
-    isNormalUser = true;
-    description = "Media playback user";
-    extraGroups = [ "users" "video" ];
-    # allow anyone with physical access to log in
-    password = "media";
-  };
-
   users.users."backup-keepassxc" = {
     home = "/mnt/storage/backups/backup-keepassxc";
     isNormalUser = true;

From da45c026555648b323cf728435698951b95f110d Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 14 Dec 2024 21:13:53 +0100
Subject: [PATCH 060/124] flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/c7ffc9727d115e433fd884a62dc164b587ff651d' (2024-12-07)
  → 'github:nix-community/home-manager/1318c3f3b068cdcea922fa7c1a0a1f0c96c22f5f' (2024-12-11)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/8cdaf8885c9c85d9d27b594dbe882406aadfe00e' (2024-12-05)
  → 'github:nix-community/nixos-generators/d162ffdf0a30f3d19e67df5091d6744ab8b9229f' (2024-12-12)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/0e4fdd4a0ab733276b6d2274ff84ae353f17129e' (2024-12-01)
  → 'github:nix-community/nixpkgs.lib/f4dc9a6c02e5e14d91d158522f69f6ab4194eb5b' (2024-12-08)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/e563803af3526852b6b1d77107a81908c66a9fcf' (2024-12-06)
  → 'github:NixOS/nixos-hardware/cf737e2eba82b603f54f71b10cb8fd09d22ce3f5' (2024-12-10)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5e7591e5e8c8cddc1e9c7cad01033e6c2d560cd0' (2024-12-08)
  → 'github:NixOS/nixpkgs/8e21c38b7d24eadf3ef672a65a1cc927015d2197' (2024-12-13)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/4dc2fc4e62dbf62b84132fe526356fbac7b03541' (2024-12-05)
  → 'github:NixOS/nixpkgs/a0f3e10d94359665dba45b71b4227b0aeb851f8e' (2024-12-10)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/50862ba6a8a0255b87377b9d2d4565e96f29b410' (2024-12-05)
  → 'github:numtide/treefmt-nix/0ce9d149d99bc383d1f2d85f31f6ebd146e46085' (2024-12-09)
---
 flake.lock | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/flake.lock b/flake.lock
index 63f55fd..2eace4d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -144,11 +144,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1733572789,
-        "narHash": "sha256-zjO6m5BqxXIyjrnUziAzk4+T4VleqjstNudSqWcpsHI=",
+        "lastModified": 1733951536,
+        "narHash": "sha256-Zb5ZCa7Xj+0gy5XVXINTSr71fCfAv+IKtmIXNrykT54=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "c7ffc9727d115e433fd884a62dc164b587ff651d",
+        "rev": "1318c3f3b068cdcea922fa7c1a0a1f0c96c22f5f",
         "type": "github"
       },
       "original": {
@@ -211,11 +211,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1733015484,
-        "narHash": "sha256-qiyO0GrTvbp869U4VGX5GhAZ00fSiPXszvosY1AgKQ8=",
+        "lastModified": 1733620091,
+        "narHash": "sha256-5WoMeCkaXqTZwwCNLRzyLxEJn8ISwjx4cNqLgqKwg9s=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "0e4fdd4a0ab733276b6d2274ff84ae353f17129e",
+        "rev": "f4dc9a6c02e5e14d91d158522f69f6ab4194eb5b",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1733360821,
-        "narHash": "sha256-bNXO+OGxrOjAxv/Lnyj84tNDicJ/FdLyLJHzOKSzYU8=",
+        "lastModified": 1733965598,
+        "narHash": "sha256-0tlZU8xfQGPcBOdXZee7P3vJLyPjTrXw7WbIgXD34gM=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "8cdaf8885c9c85d9d27b594dbe882406aadfe00e",
+        "rev": "d162ffdf0a30f3d19e67df5091d6744ab8b9229f",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1733481457,
-        "narHash": "sha256-IS3bxa4N1VMSh3/P6vhEAHQZecQ3oAlKCDvzCQSO5Is=",
+        "lastModified": 1733861262,
+        "narHash": "sha256-+jjPup/ByS0LEVIrBbt7FnGugJgLeG9oc+ivFASYn2U=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "e563803af3526852b6b1d77107a81908c66a9fcf",
+        "rev": "cf737e2eba82b603f54f71b10cb8fd09d22ce3f5",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1733642008,
-        "narHash": "sha256-ijS1XixgnF1UW1wnsO5J7rw5li0n6SZCBQWCYSfJwXw=",
+        "lastModified": 1734078800,
+        "narHash": "sha256-x5OW9e2w1y/7UKvZK0m9vXddociX9cF1F1Cg9/uA/Ts=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "5e7591e5e8c8cddc1e9c7cad01033e6c2d560cd0",
+        "rev": "8e21c38b7d24eadf3ef672a65a1cc927015d2197",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1733412085,
-        "narHash": "sha256-FillH0qdWDt/nlO6ED7h4cmN+G9uXwGjwmCnHs0QVYM=",
+        "lastModified": 1733808091,
+        "narHash": "sha256-KWwINTQelKOoQgrXftxoqxmKFZb9pLVfnRvK270nkVk=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "4dc2fc4e62dbf62b84132fe526356fbac7b03541",
+        "rev": "a0f3e10d94359665dba45b71b4227b0aeb851f8e",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1733440889,
-        "narHash": "sha256-qKL3vjO+IXFQ0nTinFDqNq/sbbnnS5bMI1y0xX215fU=",
+        "lastModified": 1733761991,
+        "narHash": "sha256-s4DalCDepD22jtKL5Nw6f4LP5UwoMcPzPZgHWjAfqbQ=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "50862ba6a8a0255b87377b9d2d4565e96f29b410",
+        "rev": "0ce9d149d99bc383d1f2d85f31f6ebd146e46085",
         "type": "github"
       },
       "original": {

From 10876b113e523f66db986b283b90302ed11a0cb6 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 14 Dec 2024 21:19:29 +0100
Subject: [PATCH 061/124] feat(devshell): add nixd, remove nil

---
 devshell.nix  | 1 -
 home/pkgs.nix | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/devshell.nix b/devshell.nix
index 27b9799..ebdfb12 100644
--- a/devshell.nix
+++ b/devshell.nix
@@ -8,7 +8,6 @@
     agenix
     nixpkgs-fmt
     nixos-rebuild
-    nil
   ];
 
   commands = [
diff --git a/home/pkgs.nix b/home/pkgs.nix
index 0fb833c..e2d7eb5 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -81,6 +81,7 @@ with pkgs; [
   mumble
   ncurses
   newsflash
+  nixd
   nfs-utils
   niv
   nix-index

From 28200e1a8f38ea324dcf10fff0e371bcf637ee60 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 14 Dec 2024 21:40:19 +0100
Subject: [PATCH 062/124] fix: update lix

---
 flake.lock | 10 +++++-----
 flake.nix  |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/flake.lock b/flake.lock
index 2eace4d..09e1517 100644
--- a/flake.lock
+++ b/flake.lock
@@ -198,15 +198,15 @@
         ]
       },
       "locked": {
-        "lastModified": 1729360442,
-        "narHash": "sha256-6U0CyPycIBc04hbYy2hBINnVso58n/ZyywY2BD3hu+s=",
-        "rev": "9098ac95768f7006d7e070b88bae76939f6034e6",
+        "lastModified": 1732605668,
+        "narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=",
+        "rev": "f19bd752910bbe3a861c9cad269bd078689d50fe",
         "type": "tarball",
-        "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/9098ac95768f7006d7e070b88bae76939f6034e6.tar.gz?rev=9098ac95768f7006d7e070b88bae76939f6034e6"
+        "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/f19bd752910bbe3a861c9cad269bd078689d50fe.tar.gz?rev=f19bd752910bbe3a861c9cad269bd078689d50fe"
       },
       "original": {
         "type": "tarball",
-        "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz"
+        "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz"
       }
     },
     "nixlib": {
diff --git a/flake.nix b/flake.nix
index 3ab6e15..7519d56 100644
--- a/flake.nix
+++ b/flake.nix
@@ -26,7 +26,7 @@
       inputs.nixpkgs.follows = "nixpkgs";
     };
     lix-module = {
-      url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz";
+      url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz";
       inputs.nixpkgs.follows = "nixpkgs";
       inputs.flake-utils.follows = "flake-utils";
     };

From 022507887dd9b4fd4779ee5842a8e4a052adc6ff Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 15 Dec 2024 21:03:31 +0100
Subject: [PATCH 063/124] feat: allow connection to ssh via 2222

---
 nixos/ninurta/configuration.nix | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index 4bbca26..bebea3f 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -37,7 +37,7 @@ in
     };
   };
 
-  services.openssh.ports = [ 22 ];
+  services.openssh.ports = [ 22 2222 ];
 
   dadada.backupClient.bs.enable = false;
   dadada.backupClient.backup1.enable = false;
@@ -367,6 +367,7 @@ in
     allowPing = true;
     allowedTCPPorts = [
       22 # SSH
+      2222
       80 # munin web
       631 # Printing
     ];

From 2129924e78827c7b49fe04e131b06ac57cef7047 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 16 Dec 2024 18:59:14 +0100
Subject: [PATCH 064/124] feat: add bridge device for home assistant

---
 nixos/ninurta/configuration.nix | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index bebea3f..4200470 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -312,9 +312,20 @@ in
           { routeConfig = { Destination = "fc00:1337:dead:beef::10.11.0.0/118"; }; }
         ];
       };
+      "20-br0" = {
+        matchConfig.Name = "br0";
+        networkConfig.DHCP = "ipv4";
+        linkConfig.RequiredForOnline = "routable";
+      };
     };
     netdevs = {
-      "20-wg0" = {
+      "20-br0" = {
+        netdevConfig = {
+          Kind = "bridge";
+          Name = "br0";
+        };
+      };
+     "20-wg0" = {
         netdevConfig = {
           Kind = "wireguard";
           Name = "wg0";
@@ -367,7 +378,7 @@ in
     allowPing = true;
     allowedTCPPorts = [
       22 # SSH
-      2222
+      2222 # SSH
       80 # munin web
       631 # Printing
     ];

From f67e77eaa1390bcdbccc68999b1d61cdcb4c54ff Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 16 Dec 2024 19:28:20 +0100
Subject: [PATCH 065/124] fix(ninurta): configure bridge

---
 nixos/ninurta/configuration.nix | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index 4200470..dcd050f 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -273,20 +273,7 @@ in
       };
       "10-lan" = {
         matchConfig.Name = "enp*";
-        networkConfig.DHCP = "ipv4";
-        networkConfig.Domains = [ "bs.dadada.li" ];
-        networkConfig.VLAN = [ ];
-        networkConfig.IPv6PrivacyExtensions = false;
-        linkConfig.RequiredForOnline = "routable";
-        dhcpV4Config = {
-          UseDomains = true;
-          UseDNS = true;
-          UseNTP = true;
-        };
-        ipv6AcceptRAConfig = {
-          UseDomains = true;
-          UseDNS = true;
-        };
+        bridge = [ "br0" ];
       };
       "30-wg0" = {
         matchConfig.Name = "wg0";
@@ -315,7 +302,19 @@ in
       "20-br0" = {
         matchConfig.Name = "br0";
         networkConfig.DHCP = "ipv4";
+        networkConfig.Domains = [ "bs.dadada.li" ];
+        networkConfig.VLAN = [ ];
+        networkConfig.IPv6PrivacyExtensions = false;
         linkConfig.RequiredForOnline = "routable";
+        dhcpV4Config = {
+          UseDomains = true;
+          UseDNS = true;
+          UseNTP = true;
+        };
+        ipv6AcceptRAConfig = {
+          UseDomains = true;
+          UseDNS = true;
+        };
       };
     };
     netdevs = {

From 87649ec999e0fa14bd2e62db52d1705cc7f23919 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 20 Dec 2024 23:09:09 +0100
Subject: [PATCH 066/124] fix(ninurta): printer address

---
 nixos/ninurta/printing.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nixos/ninurta/printing.nix b/nixos/ninurta/printing.nix
index 6fdbb08..e22c989 100644
--- a/nixos/ninurta/printing.nix
+++ b/nixos/ninurta/printing.nix
@@ -32,7 +32,7 @@
     drivers = [ pkgs.brlaser ];
     # Remove all state at the start of the service
     stateless = true;
-    listenAddresses = [ "192.168.101.184:631" "fd42:9c3b:f96d:101:4a21:bff:fe3e:9cfe:631" ];
+    listenAddresses = [ "192.168.101.29:631" ];
     allowFrom = [ "from 192.168.101.0/24" ];
     browsing = true;
     defaultShared = true;

From fe7dd57bc16312259babc650f4d34c0c72063281 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 20 Dec 2024 23:27:42 +0100
Subject: [PATCH 067/124] feat(gorgon): adapt power management options

---
 nixos/gorgon/configuration.nix | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index 935052a..c90a2eb 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -226,5 +226,16 @@ in
     ];
   };
 
+  powerManagement = {
+    enable = true;
+    powertop.enable = true;
+    cpuFreqGovernor = "schedutil";
+    powerUpCommands = ''
+      echo 40 > /sys/class/power_supply/BAT0/charge_control_start_threshold
+      echo 80 > /sys/class/power_supply/BAT0/charge_control_stop_threshold
+    '';
+  };
+  services.tlp.enable = false;
+
   system.stateVersion = "23.11";
 }

From 12b4614fc78db46a8cf6adf6d7ba187ea4e04a97 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 20 Dec 2024 23:53:21 +0100
Subject: [PATCH 068/124] feat(ninurta): disable hydra

---
 nixos/ninurta/configuration.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index dcd050f..9eba60d 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -159,7 +159,7 @@ in
   };
 
   services.hydra = {
-    enable = true;
+    enable = false;
     package = pkgs.hydra;
     hydraURL = "https://hydra.dadada.li";
     notificationSender = "hydra@localhost";

From 09ca9341f94365d04af34d9461fa06954f2d345a Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 20 Dec 2024 23:53:38 +0100
Subject: [PATCH 069/124] feat(ninurta): make firewall configuration a little
 more restrictive

---
 nixos/ninurta/configuration.nix | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index 9eba60d..e188991 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -376,17 +376,21 @@ in
     enable = true;
     allowPing = true;
     allowedTCPPorts = [
-      22 # SSH
       2222 # SSH
-      80 # munin web
-      631 # Printing
     ];
     allowedUDPPorts = [
-      631 # Printing
       51234 # Wireguard
       51235 # Wireguard
     ];
     interfaces = {
+      br0.allowedTCPPorts = [
+        22 # SSH
+        80 # munin web
+        631 # IPP
+      ];
+      br0.allowedUDPPorts = [
+        631 # IPP
+      ];
       uwu.allowedTCPPorts = [
         softServePort
       ];

From 835bd775ae29747507b9d0e46c22221ebbe5cfe9 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Thu, 26 Dec 2024 20:35:53 +0100
Subject: [PATCH 070/124] chore: update flake lock

---
 flake.lock | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/flake.lock b/flake.lock
index 09e1517..9dc4020 100644
--- a/flake.lock
+++ b/flake.lock
@@ -68,11 +68,11 @@
     "flake-registry": {
       "flake": false,
       "locked": {
-        "lastModified": 1717415742,
-        "narHash": "sha256-HKvoLGZUsBpjkxWkdtctGYj6RH0bl6vcw0OjTOqyzJk=",
+        "lastModified": 1734450202,
+        "narHash": "sha256-/3gigrEBFORQs6a8LL5twoHs7biu08y/8Xc5aQmk3b0=",
         "owner": "NixOS",
         "repo": "flake-registry",
-        "rev": "895a65f8d5acf848136ee8fe8e8f736f0d27df96",
+        "rev": "02fe640c9e117dd9d6a34efc7bcb8bd09c08111d",
         "type": "github"
       },
       "original": {
@@ -144,11 +144,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1733951536,
-        "narHash": "sha256-Zb5ZCa7Xj+0gy5XVXINTSr71fCfAv+IKtmIXNrykT54=",
+        "lastModified": 1734366194,
+        "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "1318c3f3b068cdcea922fa7c1a0a1f0c96c22f5f",
+        "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f",
         "type": "github"
       },
       "original": {
@@ -211,11 +211,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1733620091,
-        "narHash": "sha256-5WoMeCkaXqTZwwCNLRzyLxEJn8ISwjx4cNqLgqKwg9s=",
+        "lastModified": 1734829460,
+        "narHash": "sha256-dPhc+f2wkmhMqMIfq+hColJdysgVxKP9ilZ5bR0NRZI=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "f4dc9a6c02e5e14d91d158522f69f6ab4194eb5b",
+        "rev": "0a31e8d833173ae63e43fd9dbff1ccf09c4f778c",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1733965598,
-        "narHash": "sha256-0tlZU8xfQGPcBOdXZee7P3vJLyPjTrXw7WbIgXD34gM=",
+        "lastModified": 1734915500,
+        "narHash": "sha256-A7CTIQ8SW0hfbhKlwK+vSsu4pD+Oaelw3v6goX6go+U=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "d162ffdf0a30f3d19e67df5091d6744ab8b9229f",
+        "rev": "051d1b2dda3b2e81b38d82e2b691e5c2f4d335f4",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1733861262,
-        "narHash": "sha256-+jjPup/ByS0LEVIrBbt7FnGugJgLeG9oc+ivFASYn2U=",
+        "lastModified": 1734954597,
+        "narHash": "sha256-QIhd8/0x30gEv8XEE1iAnrdMlKuQ0EzthfDR7Hwl+fk=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "cf737e2eba82b603f54f71b10cb8fd09d22ce3f5",
+        "rev": "def1d472c832d77885f174089b0d34854b007198",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1734078800,
-        "narHash": "sha256-x5OW9e2w1y/7UKvZK0m9vXddociX9cF1F1Cg9/uA/Ts=",
+        "lastModified": 1735191716,
+        "narHash": "sha256-rwHLmGc/2OfudyjGnH8h5vQK2e5uJ6gt2GwPhWL9pPk=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "8e21c38b7d24eadf3ef672a65a1cc927015d2197",
+        "rev": "1dd8f51e62c0ff199e551744ab46fc4fbe6f827a",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1733808091,
-        "narHash": "sha256-KWwINTQelKOoQgrXftxoqxmKFZb9pLVfnRvK270nkVk=",
+        "lastModified": 1735141468,
+        "narHash": "sha256-VIAjBr1qGcEbmhLwQJD6TABppPMggzOvqFsqkDoMsAY=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "a0f3e10d94359665dba45b71b4227b0aeb851f8e",
+        "rev": "4005c3ff7505313cbc21081776ad0ce5dfd7a3ce",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1733761991,
-        "narHash": "sha256-s4DalCDepD22jtKL5Nw6f4LP5UwoMcPzPZgHWjAfqbQ=",
+        "lastModified": 1735135567,
+        "narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "0ce9d149d99bc383d1f2d85f31f6ebd146e46085",
+        "rev": "9e09d30a644c57257715902efbb3adc56c79cf28",
         "type": "github"
       },
       "original": {

From 4e869e2cf0484a3a59186d6ea3ca4f6e2aee128d Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 27 Dec 2024 15:30:19 +0100
Subject: [PATCH 071/124] fix: formating issues in prompt

---
 home/status | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/home/status b/home/status
index 45e78d8..e24816b 100755
--- a/home/status
+++ b/home/status
@@ -23,7 +23,7 @@ class Cat(Status):
     def status(self):
         cat_width = 200
         index = self.index
-        catwalk = " " * (cat_width - index) + 1 * "🐈🏳️‍🌈" + " " * index
+        catwalk = "🐈🏳️‍🌈" + " " * index
         self.index = (index + 1) % cat_width
 
         return {"full_text": catwalk}
@@ -71,7 +71,17 @@ class Battery(Status):
 
 class Time(Status):
     def status(self):
-        return {"full_text": datetime.now().strftime("%Vth %A %H:%M") }
+        now = datetime.now()
+        match now.isocalendar().week % 10:
+            case 1:
+                th = "st"
+            case 2:
+                th = "nd"
+            case 3:
+                th = "rd"
+            case _:
+                th = "th"
+        return {"full_text": now.strftime(f"%V{th} %A %H:%M") }
 
 
 class FailedUnits(Status):
@@ -82,7 +92,7 @@ class FailedUnits(Status):
         for line in stdout:
             if 'failed' in line:
                 failed += 1
-        if failed is 0:
+        if failed == 0:
             return {"full_text": f"No failed units"}
         else:
             return {"full_text": f"There are {failed} failed units", "color": "#ff0000"}

From da0069de8c997cc25bab9d41e90e0924e7899338 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 27 Dec 2024 16:40:35 +0100
Subject: [PATCH 072/124] feat: install nixfmt-rfc-style

---
 home/pkgs.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/home/pkgs.nix b/home/pkgs.nix
index e2d7eb5..5a03528 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -82,6 +82,7 @@ with pkgs; [
   ncurses
   newsflash
   nixd
+  nixfmt-rfc-style
   nfs-utils
   niv
   nix-index

From 6719d76de887c7975b4698a0633414b48ee7af49 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 12 Jan 2025 19:44:05 +0100
Subject: [PATCH 073/124] chore: Update flake.lock
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'devshell':
    'github:numtide/devshell/dd6b80932022cea34a019e2bb32f6fa9e494dfef' (2024-10-07)
  → 'github:numtide/devshell/f7795ede5b02664b57035b3b757876703e2c3eac' (2024-12-31)
• Updated input 'home-manager':
    'github:nix-community/home-manager/80b0fdf483c5d1cb75aaad909bd390d48673857f' (2024-12-16)
  → 'github:nix-community/home-manager/bd65bc3cde04c16755955630b344bc9e35272c56' (2025-01-08)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/def1d472c832d77885f174089b0d34854b007198' (2024-12-23)
  → 'github:NixOS/nixos-hardware/8870dcaff63dfc6647fb10648b827e9d40b0a337' (2025-01-09)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1dd8f51e62c0ff199e551744ab46fc4fbe6f827a' (2024-12-26)
  → 'github:NixOS/nixpkgs/87d46406d6280e1c064bc5df10ebd09ce3113cb3' (2025-01-12)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/4005c3ff7505313cbc21081776ad0ce5dfd7a3ce' (2024-12-25)
  → 'github:NixOS/nixpkgs/1dab772dd4a68a7bba5d9460685547ff8e17d899' (2025-01-10)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/9e09d30a644c57257715902efbb3adc56c79cf28' (2024-12-25)
  → 'github:numtide/treefmt-nix/13c913f5deb3a5c08bb810efd89dc8cb24dd968b' (2025-01-06)
---
 flake.lock | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/flake.lock b/flake.lock
index 9dc4020..b33294f 100644
--- a/flake.lock
+++ b/flake.lock
@@ -52,11 +52,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1728330715,
-        "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
+        "lastModified": 1735644329,
+        "narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=",
         "owner": "numtide",
         "repo": "devshell",
-        "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
+        "rev": "f7795ede5b02664b57035b3b757876703e2c3eac",
         "type": "github"
       },
       "original": {
@@ -144,11 +144,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1734366194,
-        "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=",
+        "lastModified": 1736373539,
+        "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f",
+        "rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1734954597,
-        "narHash": "sha256-QIhd8/0x30gEv8XEE1iAnrdMlKuQ0EzthfDR7Hwl+fk=",
+        "lastModified": 1736441705,
+        "narHash": "sha256-OL7leZ6KBhcDF3nEKe4aZVfIm6xQpb1Kb+mxySIP93o=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "def1d472c832d77885f174089b0d34854b007198",
+        "rev": "8870dcaff63dfc6647fb10648b827e9d40b0a337",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1735191716,
-        "narHash": "sha256-rwHLmGc/2OfudyjGnH8h5vQK2e5uJ6gt2GwPhWL9pPk=",
+        "lastModified": 1736669804,
+        "narHash": "sha256-EZusd5yhiZLXdBUDtXB3wCX3QvBeSFx/N0AstaajzpU=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "1dd8f51e62c0ff199e551744ab46fc4fbe6f827a",
+        "rev": "87d46406d6280e1c064bc5df10ebd09ce3113cb3",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1735141468,
-        "narHash": "sha256-VIAjBr1qGcEbmhLwQJD6TABppPMggzOvqFsqkDoMsAY=",
+        "lastModified": 1736549401,
+        "narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "4005c3ff7505313cbc21081776ad0ce5dfd7a3ce",
+        "rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1735135567,
-        "narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=",
+        "lastModified": 1736154270,
+        "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "9e09d30a644c57257715902efbb3adc56c79cf28",
+        "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b",
         "type": "github"
       },
       "original": {

From 21ad250fe7f1d2c73fa502f068abc2a20848c46a Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 14 Jan 2025 19:57:35 +0100
Subject: [PATCH 074/124] chore: update flake.lock

---
 flake.lock | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/flake.lock b/flake.lock
index b33294f..5aa15f3 100644
--- a/flake.lock
+++ b/flake.lock
@@ -211,11 +211,11 @@
     },
     "nixlib": {
       "locked": {
-        "lastModified": 1734829460,
-        "narHash": "sha256-dPhc+f2wkmhMqMIfq+hColJdysgVxKP9ilZ5bR0NRZI=",
+        "lastModified": 1736643958,
+        "narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "0a31e8d833173ae63e43fd9dbff1ccf09c4f778c",
+        "rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1734915500,
-        "narHash": "sha256-A7CTIQ8SW0hfbhKlwK+vSsu4pD+Oaelw3v6goX6go+U=",
+        "lastModified": 1736730523,
+        "narHash": "sha256-mvTZ7fLKA6ggGnA8GZwcXV57EvVReRTCfi26xc08Q3g=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "051d1b2dda3b2e81b38d82e2b691e5c2f4d335f4",
+        "rev": "74b8e31dd709760c86eed16b6c1d0b88d7360937",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1736669804,
-        "narHash": "sha256-EZusd5yhiZLXdBUDtXB3wCX3QvBeSFx/N0AstaajzpU=",
+        "lastModified": 1736842851,
+        "narHash": "sha256-iAYIidDSvqRWMRQrCIn2X8edyrOg/uTBZc1M4bdpQjs=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "87d46406d6280e1c064bc5df10ebd09ce3113cb3",
+        "rev": "a78c63a084314c55196488cf2252c5f6ea5c67a4",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1736549401,
-        "narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=",
+        "lastModified": 1736754065,
+        "narHash": "sha256-hcETjfECLklW1ND8svDvN0Nw6H/1qtuoz3rbFNQ1Lrk=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899",
+        "rev": "67e9c880898889470f153157a96b595e758167fc",
         "type": "github"
       },
       "original": {

From 02fcfe7b1d90eaab1ad5142b5868d720043cfcee Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 14 Jan 2025 19:59:42 +0100
Subject: [PATCH 075/124] fix: formating

---
 nixos/ninurta/configuration.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index e188991..15c8a24 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -324,7 +324,7 @@ in
           Name = "br0";
         };
       };
-     "20-wg0" = {
+      "20-wg0" = {
         netdevConfig = {
           Kind = "wireguard";
           Name = "wg0";

From 7cd9d8c480c045a6cef8d58374961965f768578c Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 14 Jan 2025 20:10:36 +0100
Subject: [PATCH 076/124] fix: disable huge swapfile

---
 nixos/surgat/configuration.nix | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/nixos/surgat/configuration.nix b/nixos/surgat/configuration.nix
index 9a9bc54..66b8e27 100644
--- a/nixos/surgat/configuration.nix
+++ b/nixos/surgat/configuration.nix
@@ -137,13 +137,6 @@ in
   boot.loader.grub.enable = true;
   boot.loader.grub.device = "/dev/sda";
 
-  swapDevices = [
-    {
-      device = "/var/swapfile";
-      size = 4096;
-    }
-  ];
-
   services.resolved = {
     enable = true;
     fallbackDns = [ "9.9.9.9" "2620:fe::fe" ];

From 2486f4c1a6615c694640425c01cc4a1df8d008ca Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 14 Jan 2025 20:16:06 +0100
Subject: [PATCH 077/124] feat: remove weechat

---
 nixos/surgat/configuration.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nixos/surgat/configuration.nix b/nixos/surgat/configuration.nix
index 66b8e27..6dad1ee 100644
--- a/nixos/surgat/configuration.nix
+++ b/nixos/surgat/configuration.nix
@@ -42,7 +42,7 @@ in
   dadada.element.enable = true;
   dadada.forgejo.enable = true;
   dadada.miniflux.enable = true;
-  dadada.weechat.enable = true;
+  dadada.weechat.enable = false;
   dadada.homepage.enable = true;
   dadada.share.enable = true;
   dadada.backupClient = {

From 99e3eaa034d273296d26ba7dc82b9d9e81d3c78e Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Thu, 16 Jan 2025 18:34:03 +0100
Subject: [PATCH 078/124] fix: rotate SSH key

Too many PIN attempts.
---
 admins.nix           | 2 +-
 home/modules/git.nix | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/admins.nix b/admins.nix
index 82f6cef..e5e29ba 100644
--- a/admins.nix
+++ b/admins.nix
@@ -2,7 +2,7 @@
   dadada = {
     shell = "zsh";
     keys = [
-      "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIE2JWU+BuWSvoiGFSTDQ9/1SCvfJEnkFQsFLYPNlY6wcAAAABHNzaDo= dadada <dadada@dadada.li>"
+      "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIHrT9sQhJWrTPIMOEsZ8UzkY7BKJYYK2Aj/Q3NZu2z7uAAAABHNzaDo= dadada@gorgon"
       "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIOFHB9T6fjkuIU8jW9gGiYGSEFSfrnY/6GJUfmfMx10HAAAABHNzaDo= Backup dadada <dadada@dadada.li>"
     ];
   };
diff --git a/home/modules/git.nix b/home/modules/git.nix
index e89e62a..7762612 100644
--- a/home/modules/git.nix
+++ b/home/modules/git.nix
@@ -9,6 +9,7 @@ with lib; let
     name = "allowed-signers";
     text = ''
       dadada@dadada.li sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIKu+pA5Vy0QPHJMjn2S5DCsqKg2UvDhOsBwvvJLf4HbyAAAABHNzaDo= dadada <dadada@dadada.li>
+      dadada@dadada.li ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFKRuecjbtDh4jyDZH3ccU9t0QFcAgZDBFO8ZWZBA9iT dadada@gorgon
     '';
   };
 in
@@ -33,7 +34,7 @@ in
         user = {
           email = "dadada@dadada.li";
           name = "Tim Schubert";
-          signingKey = "key::sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIKu+pA5Vy0QPHJMjn2S5DCsqKg2UvDhOsBwvvJLf4HbyAAAABHNzaDo= dadada <dadada@dadada.li>";
+          signingKey = "key::ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFKRuecjbtDh4jyDZH3ccU9t0QFcAgZDBFO8ZWZBA9iT dadada@gorgon";
         };
         core = {
           whitespace = {

From c5a0cf2dd8f9bbca8c38bcc83e493c3d4293cf14 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 25 Jan 2025 13:15:14 +0100
Subject: [PATCH 079/124] feat(home): add vegur font

---
 home/pkgs.nix                     | 1 +
 nixos/modules/profiles/laptop.nix | 1 +
 2 files changed, 2 insertions(+)

diff --git a/home/pkgs.nix b/home/pkgs.nix
index 5a03528..410abfe 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -133,6 +133,7 @@ with pkgs; [
   ttyd
   unzip
   usbutils
+  vegur
   virt-manager
   viu # view images from the terminal
   vscodium
diff --git a/nixos/modules/profiles/laptop.nix b/nixos/modules/profiles/laptop.nix
index a525106..3ad8c11 100644
--- a/nixos/modules/profiles/laptop.nix
+++ b/nixos/modules/profiles/laptop.nix
@@ -27,6 +27,7 @@ with lib; {
 
   fonts.packages = mkDefault (with pkgs; [
     source-code-pro
+    vegur
   ]);
 
   users.mutableUsers = mkDefault true;

From e4c603b692e9338b29201eac6de66779040db2f0 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 25 Jan 2025 13:17:02 +0100
Subject: [PATCH 080/124] chore: update flake.lock
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/74b8e31dd709760c86eed16b6c1d0b88d7360937' (2025-01-13)
  → 'github:nix-community/nixos-generators/d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453' (2025-01-16)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/8870dcaff63dfc6647fb10648b827e9d40b0a337' (2025-01-09)
  → 'github:NixOS/nixos-hardware/dfad538f751a5aa5d4436d9781ab27a6128ec9d4' (2025-01-24)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/a78c63a084314c55196488cf2252c5f6ea5c67a4' (2025-01-14)
  → 'github:NixOS/nixpkgs/035f8c0853c2977b24ffc4d0a42c74f00b182cd8' (2025-01-23)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/67e9c880898889470f153157a96b595e758167fc' (2025-01-13)
  → 'github:NixOS/nixpkgs/035f8c0853c2977b24ffc4d0a42c74f00b182cd8' (2025-01-23)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/13c913f5deb3a5c08bb810efd89dc8cb24dd968b' (2025-01-06)
  → 'github:numtide/treefmt-nix/f2cc121df15418d028a59c9737d38e3a90fbaf8f' (2025-01-21)
---
 flake.lock | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/flake.lock b/flake.lock
index 5aa15f3..771d148 100644
--- a/flake.lock
+++ b/flake.lock
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1736730523,
-        "narHash": "sha256-mvTZ7fLKA6ggGnA8GZwcXV57EvVReRTCfi26xc08Q3g=",
+        "lastModified": 1737057290,
+        "narHash": "sha256-3Pe0yKlCc7EOeq1X/aJVDH0CtNL+tIBm49vpepwL1MQ=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "74b8e31dd709760c86eed16b6c1d0b88d7360937",
+        "rev": "d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1736441705,
-        "narHash": "sha256-OL7leZ6KBhcDF3nEKe4aZVfIm6xQpb1Kb+mxySIP93o=",
+        "lastModified": 1737751639,
+        "narHash": "sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "8870dcaff63dfc6647fb10648b827e9d40b0a337",
+        "rev": "dfad538f751a5aa5d4436d9781ab27a6128ec9d4",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1736842851,
-        "narHash": "sha256-iAYIidDSvqRWMRQrCIn2X8edyrOg/uTBZc1M4bdpQjs=",
+        "lastModified": 1737672001,
+        "narHash": "sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "a78c63a084314c55196488cf2252c5f6ea5c67a4",
+        "rev": "035f8c0853c2977b24ffc4d0a42c74f00b182cd8",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1736754065,
-        "narHash": "sha256-hcETjfECLklW1ND8svDvN0Nw6H/1qtuoz3rbFNQ1Lrk=",
+        "lastModified": 1737672001,
+        "narHash": "sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "67e9c880898889470f153157a96b595e758167fc",
+        "rev": "035f8c0853c2977b24ffc4d0a42c74f00b182cd8",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1736154270,
-        "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=",
+        "lastModified": 1737483750,
+        "narHash": "sha256-5An1wq5U8sNycOBBg3nsDDgpwBmR9liOpDGlhliA6Xo=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b",
+        "rev": "f2cc121df15418d028a59c9737d38e3a90fbaf8f",
         "type": "github"
       },
       "original": {

From 2688a624dd82f82b8f2c34a2c66611f14b325ed8 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 25 Jan 2025 13:41:53 +0100
Subject: [PATCH 081/124] feat: bind swaylock

---
 home/config | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/home/config b/home/config
index bc01bb6..6bfc506 100644
--- a/home/config
+++ b/home/config
@@ -224,6 +224,8 @@ bar {
     }
 }
 
+bindsym $mod+grave exec swaylock -c 000000
+
 include /etc/sway/config.d/*
 
 exec sleep 5; systemctl --user start kanshi.service

From 2977d1712e71e13d89519c69f8a1a65620c0b8f0 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 25 Jan 2025 14:03:39 +0100
Subject: [PATCH 082/124] feat: lock password DB before locking screen

---
 home/config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/home/config b/home/config
index 6bfc506..d2a4443 100644
--- a/home/config
+++ b/home/config
@@ -224,7 +224,7 @@ bar {
     }
 }
 
-bindsym $mod+grave exec swaylock -c 000000
+bindsym $mod+grave exec busctl --user call org.keepassxc.KeePassXC.MainWindow /keepassxc org.keepassxc.KeePassXC.MainWindow lockAllDatabases && swaylock -c 000000
 
 include /etc/sway/config.d/*
 

From 230d105a47ce17f69f833c5494997d5adec12495 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 25 Jan 2025 14:04:14 +0100
Subject: [PATCH 083/124] feat: add kanshictl to path

---
 home/pkgs.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/home/pkgs.nix b/home/pkgs.nix
index 410abfe..50de796 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -62,7 +62,7 @@ with pkgs; [
   jc # convert output to json
   josm
   jq
-  #jupyter
+  kanshi
   kcachegrind
   keepassxc
   kubetail

From d68d4fb0d042df6e18c3726571c56e4f1e23c3f4 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 25 Jan 2025 14:38:52 +0100
Subject: [PATCH 084/124] fix(home): prefer adwaita light theme variant

---
 home/dconf.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/home/dconf.nix b/home/dconf.nix
index 7fb2800..2e25aab 100644
--- a/home/dconf.nix
+++ b/home/dconf.nix
@@ -48,6 +48,7 @@ with lib.hm.gvariant;
       gtk-enable-primary-paste = false;
       gtk-key-theme = "Emacs";
       gtk-theme = "Adwaita";
+      color-scheme = "prefer-light";
       icon-theme = "Adwaita";
       locate-pointer = false;
       monospace-font-name = "JetBrains Mono 10";

From b954f7181940d2daa6f8d9e5c767e23d0bc5f897 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 25 Jan 2025 17:43:38 +0100
Subject: [PATCH 085/124] feat(home): template sway config with colors

---
 home/config      | 231 -----------------------------------
 home/default.nix | 311 +++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 286 insertions(+), 256 deletions(-)
 delete mode 100644 home/config

diff --git a/home/config b/home/config
deleted file mode 100644
index d2a4443..0000000
--- a/home/config
+++ /dev/null
@@ -1,231 +0,0 @@
-# Read `man 5 sway` for a complete reference.
-
-### Variables
-#
-# Logo key. Use Mod1 for Alt.
-set $mod Mod4
-# Home row direction keys, like vim
-set $left h
-set $down j
-set $up k
-set $right l
-# Your preferred terminal emulator
-set $term foot
-# Your preferred application launcher
-# Note: pass the final command to swaymsg so that the resulting window can be opened
-# on the original workspace that the command was run on.
-set $menu dmenu_path | wmenu | xargs swaymsg exec --
-
-### Output configuration
-#
-# Default wallpaper (more resolutions are available in /run/current-system/sw/share/backgrounds/sway/)
-output * bg ~/tmp/51761494940_7f9d6ab0e3_o.jpg fill
-
-### Idle configuration
-#
-# Example configuration:
-#
-exec swayidle -w \
-         timeout 300 'swaylock -f -c 000000' \
-         timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
-         before-sleep 'swaylock -f -c 000000'
-#
-# This will lock your screen after 300 seconds of inactivity, then turn off
-# your displays after another 300 seconds, and turn your screens back on when
-# resumed. It will also lock your screen before your computer goes to sleep.
-
-input * {
-	xkb_layout eu
-	xkb_model pc105+inet
-	xkb_options caps:escape
-    drag_lock enabled
-    drag enabled
-    dwt enabled
-    tap enabled
-    tap_button_map lrm
-    natural_scroll enabled
-}
-
-### Key bindings
-#
-# Basics:
-#
-# Start a terminal
-bindsym $mod+Return exec $term
-
-# Kill focused window
-bindsym $mod+Shift+q kill
-
-# Start your launcher
-bindsym $mod+d exec $menu
-
-# Drag floating windows by holding down $mod and left mouse button.
-# Resize them with right mouse button + $mod.
-# Despite the name, also works for non-floating windows.
-# Change normal to inverse to use left mouse button for resizing and right
-# mouse button for dragging.
-floating_modifier $mod normal
-
-# Lock the screen
-bindsym XF86Sleep exec 'swaylock -f -c 000000'
-
-# Reload the configuration file
-bindsym $mod+Shift+c reload
-
-# Exit sway (logs you out of your Wayland session)
-bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
-
-# Brightness
-bindsym --locked XF86MonBrightnessDown exec light -U 10
-bindsym --locked XF86MonBrightnessUp exec light -A 10
-
-# Volume
-bindsym --locked XF86AudioRaiseVolume exec 'pactl set-sink-volume @DEFAULT_SINK@ +1%'
-bindsym --locked XF86AudioLowerVolume exec 'pactl set-sink-volume @DEFAULT_SINK@ -1%'
-bindsym --locked XF86AudioMute exec 'pactl set-sink-mute @DEFAULT_SINK@ toggle'
-
-#
-# Moving around:
-#
-# Move your focus around
-bindsym $mod+$left focus left
-bindsym $mod+$down focus down
-bindsym $mod+$up focus up
-bindsym $mod+$right focus right
-# Or use $mod+[up|down|left|right]
-bindsym $mod+Left focus left
-bindsym $mod+Down focus down
-bindsym $mod+Up focus up
-bindsym $mod+Right focus right
-
-# Move the focused window with the same, but add Shift
-bindsym $mod+Shift+$left move left
-bindsym $mod+Shift+$down move down
-bindsym $mod+Shift+$up move up
-bindsym $mod+Shift+$right move right
-# Ditto, with arrow keys
-bindsym $mod+Shift+Left move left
-bindsym $mod+Shift+Down move down
-bindsym $mod+Shift+Up move up
-bindsym $mod+Shift+Right move right
-
-#
-# Workspaces:
-#
-# Switch to workspace
-bindsym $mod+1 workspace number 1
-bindsym $mod+2 workspace number 2
-bindsym $mod+3 workspace number 3
-bindsym $mod+4 workspace number 4
-bindsym $mod+5 workspace number 5
-bindsym $mod+6 workspace number 6
-bindsym $mod+7 workspace number 7
-bindsym $mod+8 workspace number 8
-bindsym $mod+9 workspace number 9
-bindsym $mod+0 workspace number 10
-# Move focused container to workspace
-bindsym $mod+Shift+1 move container to workspace number 1
-bindsym $mod+Shift+2 move container to workspace number 2
-bindsym $mod+Shift+3 move container to workspace number 3
-bindsym $mod+Shift+4 move container to workspace number 4
-bindsym $mod+Shift+5 move container to workspace number 5
-bindsym $mod+Shift+6 move container to workspace number 6
-bindsym $mod+Shift+7 move container to workspace number 7
-bindsym $mod+Shift+8 move container to workspace number 8
-bindsym $mod+Shift+9 move container to workspace number 9
-bindsym $mod+Shift+0 move container to workspace number 10
-# Note: workspaces can have any name you want, not just numbers.
-# We just use 1-10 as the default.
-
-#
-# Layout stuff:
-#
-# You can "split" the current object of your focus with
-# $mod+b or $mod+v, for horizontal and vertical splits
-# respectively.
-bindsym $mod+b splith
-bindsym $mod+v splitv
-
-# Switch the current container between different layout styles
-bindsym $mod+s layout stacking
-bindsym $mod+w layout tabbed
-bindsym $mod+e layout toggle split
-
-# Make the current focus fullscreen
-bindsym $mod+f fullscreen
-
-# Toggle the current focus between tiling and floating mode
-bindsym $mod+Shift+space floating toggle
-
-# Swap focus between the tiling area and the floating area
-bindsym $mod+space focus mode_toggle
-
-# Move focus to the parent container
-bindsym $mod+a focus parent
-
-#
-# Font
-#
-font "pango:Jetbrains Mono 8"
-
-#
-# Scratchpad:
-#
-# Sway has a "scratchpad", which is a bag of holding for windows.
-# You can send windows there and get them back later.
-
-# Move the currently focused window to the scratchpad
-bindsym $mod+Shift+minus move scratchpad
-
-# Show the next scratchpad window or hide the focused scratchpad window.
-# If there are multiple scratchpad windows, this command cycles through them.
-bindsym $mod+minus scratchpad show
-
-#
-# Resizing containers:
-#
-mode "resize" {
-    # left will shrink the containers width
-    # right will grow the containers width
-    # up will shrink the containers height
-    # down will grow the containers height
-    bindsym $left resize shrink width 10px
-    bindsym $down resize grow height 10px
-    bindsym $up resize shrink height 10px
-    bindsym $right resize grow width 10px
-
-    # Ditto, with arrow keys
-    bindsym Left resize shrink width 10px
-    bindsym Down resize grow height 10px
-    bindsym Up resize shrink height 10px
-    bindsym Right resize grow width 10px
-
-    # Return to default mode
-    bindsym Return mode "default"
-    bindsym Escape mode "default"
-}
-bindsym $mod+r mode "resize"
-
-#
-# Status Bar:
-#
-# Read `man 5 sway-bar` for more information about this section.
-bar {
-    position top
-
-    # When the status_command prints a new line to stdout, swaybar updates.
-    # The default just shows the current date and time.
-    status_command ~/.config/sway/status
-
-    colors {
-        statusline #ffffff
-        background #323232
-        inactive_workspace #32323200 #32323200 #5c5c5c
-    }
-}
-
-bindsym $mod+grave exec busctl --user call org.keepassxc.KeePassXC.MainWindow /keepassxc org.keepassxc.KeePassXC.MainWindow lockAllDatabases && swaylock -c 000000
-
-include /etc/sway/config.d/*
-
-exec sleep 5; systemctl --user start kanshi.service
diff --git a/home/default.nix b/home/default.nix
index 15514f9..457d7ad 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -1,6 +1,7 @@
-{ pkgs
-, lib
-, ...
+{
+  pkgs,
+  lib,
+  ...
 }:
 let
   useFeatures = [
@@ -17,6 +18,26 @@ let
     "zsh"
     "helix"
   ];
+  colors = {
+    background = "fdf6e3";
+    foreground = "657b83";
+    regular0 = "eee8d5"; # background darker
+    regular1 = "dc322f"; # red
+    regular2 = "859900"; # green
+    regular3 = "b58900"; # dark orange
+    regular4 = "268bd2"; # azure blue
+    regular5 = "d33682"; # hot pink
+    regular6 = "2aa198"; # petrol
+    regular7 = "073642"; # navy
+    bright0 = "cb4b16"; # orange
+    bright1 = "fdf6e3"; # foreground
+    bright2 = "93a1a1"; # grey
+    bright3 = "839496"; # slightly darker grey
+    bright4 = "657b83"; # even slightly darker grey
+    bright5 = "6c71c4"; # purple
+    bright6 = "586e75"; # pretty dark grey
+    bright7 = "002b36"; # dark navy blue
+  };
 in
 {
   imports = [
@@ -28,7 +49,9 @@ in
   programs.gpg.settings.default-key = "99658A3EB5CD7C13";
 
   dadada.home =
-    lib.attrsets.genAttrs useFeatures (useFeatures: { enable = true; })
+    lib.attrsets.genAttrs useFeatures (useFeatures: {
+      enable = true;
+    })
     // {
       session = {
         enable = true;
@@ -56,7 +79,9 @@ in
       Restart = "always";
     };
 
-    Install = { WantedBy = [ "graphical-session.target" ]; };
+    Install = {
+      WantedBy = [ "graphical-session.target" ];
+    };
   };
 
   programs.offlineimap.enable = false;
@@ -131,6 +156,7 @@ in
     enable = true;
     server.enable = false;
     settings = {
+      inherit colors;
       main = {
         shell = "tmux";
         font = "Jetbrains Mono:size=8";
@@ -139,31 +165,266 @@ in
       mouse.hide-when-typing = true;
       csd.preferred = "none";
       cursor.color = "fdf6e3 586e75";
-      colors = {
-        background = "fdf6e3";
-        foreground = "657b83";
-        regular0 = "eee8d5";
-        regular1 = "dc322f";
-        regular2 = "859900";
-        regular3 = "b58900";
-        regular4 = "268bd2";
-        regular5 = "d33682";
-        regular6 = "2aa198";
-        regular7 = "073642";
-        bright0 = "cb4b16";
-        bright1 = "fdf6e3";
-        bright2 = "93a1a1";
-        bright3 = "839496";
-        bright4 = "657b83";
-        bright5 = "6c71c4";
-        bright6 = "586e75";
-        bright7 = "002b36";
+      bell = {
+        urgent = true;
+        visual = false;
       };
     };
   };
 
-  home.file.".config/sway/config".source = ./config;
+  home.file.".config/sway/config".text = with colors; ''
+    # Read `man 5 sway` for a complete reference.
+
+    ### Variables
+    #
+    # Logo key. Use Mod1 for Alt.
+    set $mod Mod4
+    # Home row direction keys, like vim
+    set $left h
+    set $down j
+    set $up k
+    set $right l
+    # Your preferred terminal emulator
+    set $term foot
+    # Your preferred application launcher
+    # Note: pass the final command to swaymsg so that the resulting window can be opened
+    # on the original workspace that the command was run on.
+    set $menu dmenu_path | wmenu | xargs swaymsg exec --
+
+    ### Idle configuration
+    #
+    # Example configuration:
+    #
+    exec swayidle -w \
+             timeout 300 'swaylock -f -c ${background}' \
+             timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
+             before-sleep 'swaylock -f -c ${background}'
+    #
+    # This will lock your screen after 300 seconds of inactivity, then turn off
+    # your displays after another 300 seconds, and turn your screens back on when
+    # resumed. It will also lock your screen before your computer goes to sleep.
+
+    input * {
+      xkb_layout eu
+      xkb_model pc105+inet
+      xkb_options caps:escape
+        drag_lock enabled
+        drag enabled
+        dwt enabled
+        tap enabled
+        tap_button_map lrm
+        natural_scroll enabled
+    }
+
+    ### Key bindings
+    #
+    # Basics:
+    #
+    # Start a terminal
+    bindsym $mod+Return exec $term
+
+    # Kill focused window
+    bindsym $mod+Shift+q kill
+
+    # Start your launcher
+    bindsym $mod+d exec $menu
+
+    # Drag floating windows by holding down $mod and left mouse button.
+    # Resize them with right mouse button + $mod.
+    # Despite the name, also works for non-floating windows.
+    # Change normal to inverse to use left mouse button for resizing and right
+    # mouse button for dragging.
+    floating_modifier $mod normal
+
+    # Lock the screen
+    bindsym XF86Sleep exec 'swaylock -f -c ${background}'
+
+    # Reload the configuration file
+    bindsym $mod+Shift+c reload
+
+    # Exit sway (logs you out of your Wayland session)
+    bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
+
+    # Brightness
+    bindsym --locked XF86MonBrightnessDown exec light -U 10
+    bindsym --locked XF86MonBrightnessUp exec light -A 10
+
+    # Volume
+    bindsym --locked XF86AudioRaiseVolume exec 'pactl set-sink-volume @DEFAULT_SINK@ +1%'
+    bindsym --locked XF86AudioLowerVolume exec 'pactl set-sink-volume @DEFAULT_SINK@ -1%'
+    bindsym --locked XF86AudioMute exec 'pactl set-sink-mute @DEFAULT_SINK@ toggle'
+
+    #
+    # Moving around:
+    #
+    # Move your focus around
+    bindsym $mod+$left focus left
+    bindsym $mod+$down focus down
+    bindsym $mod+$up focus up
+    bindsym $mod+$right focus right
+    # Or use $mod+[up|down|left|right]
+    bindsym $mod+Left focus left
+    bindsym $mod+Down focus down
+    bindsym $mod+Up focus up
+    bindsym $mod+Right focus right
+
+    # Move the focused window with the same, but add Shift
+    bindsym $mod+Shift+$left move left
+    bindsym $mod+Shift+$down move down
+    bindsym $mod+Shift+$up move up
+    bindsym $mod+Shift+$right move right
+    # Ditto, with arrow keys
+    bindsym $mod+Shift+Left move left
+    bindsym $mod+Shift+Down move down
+    bindsym $mod+Shift+Up move up
+    bindsym $mod+Shift+Right move right
+
+    #
+    # Workspaces:
+    #
+    # Switch to workspace
+    bindsym $mod+1 workspace number 1
+    bindsym $mod+2 workspace number 2
+    bindsym $mod+3 workspace number 3
+    bindsym $mod+4 workspace number 4
+    bindsym $mod+5 workspace number 5
+    bindsym $mod+6 workspace number 6
+    bindsym $mod+7 workspace number 7
+    bindsym $mod+8 workspace number 8
+    bindsym $mod+9 workspace number 9
+    bindsym $mod+0 workspace number 10
+    # Move focused container to workspace
+    bindsym $mod+Shift+1 move container to workspace number 1
+    bindsym $mod+Shift+2 move container to workspace number 2
+    bindsym $mod+Shift+3 move container to workspace number 3
+    bindsym $mod+Shift+4 move container to workspace number 4
+    bindsym $mod+Shift+5 move container to workspace number 5
+    bindsym $mod+Shift+6 move container to workspace number 6
+    bindsym $mod+Shift+7 move container to workspace number 7
+    bindsym $mod+Shift+8 move container to workspace number 8
+    bindsym $mod+Shift+9 move container to workspace number 9
+    bindsym $mod+Shift+0 move container to workspace number 10
+    # Note: workspaces can have any name you want, not just numbers.
+    # We just use 1-10 as the default.
+
+    #
+    # Layout stuff:
+    #
+    # You can "split" the current object of your focus with
+    # $mod+b or $mod+v, for horizontal and vertical splits
+    # respectively.
+    bindsym $mod+b splith
+    bindsym $mod+v splitv
+
+    # Switch the current container between different layout styles
+    bindsym $mod+s layout stacking
+    bindsym $mod+w layout tabbed
+    bindsym $mod+e layout toggle split
+
+    # Make the current focus fullscreen
+    bindsym $mod+f fullscreen
+
+    # Toggle the current focus between tiling and floating mode
+    bindsym $mod+Shift+space floating toggle
+
+    # Swap focus between the tiling area and the floating area
+    bindsym $mod+space focus mode_toggle
+
+    # Move focus to the parent container
+    bindsym $mod+a focus parent
+
+    #
+    # Font
+    #
+    font "pango:Jetbrains Mono 8"
+
+    #
+    # Scratchpad:
+    #
+    # Sway has a "scratchpad", which is a bag of holding for windows.
+    # You can send windows there and get them back later.
+
+    # Move the currently focused window to the scratchpad
+    bindsym $mod+Shift+minus move scratchpad
+
+    # Show the next scratchpad window or hide the focused scratchpad window.
+    # If there are multiple scratchpad windows, this command cycles through them.
+    bindsym $mod+minus scratchpad show
+
+    #
+    # Resizing containers:
+    #
+    mode "resize" {
+        # left will shrink the containers width
+        # right will grow the containers width
+        # up will shrink the containers height
+        # down will grow the containers height
+        bindsym $left resize shrink width 10px
+        bindsym $down resize grow height 10px
+        bindsym $up resize shrink height 10px
+        bindsym $right resize grow width 10px
+
+        # Ditto, with arrow keys
+        bindsym Left resize shrink width 10px
+        bindsym Down resize grow height 10px
+        bindsym Up resize shrink height 10px
+        bindsym Right resize grow width 10px
+
+        # Return to default mode
+        bindsym Return mode "default"
+        bindsym Escape mode "default"
+    }
+    bindsym $mod+r mode "resize"
+
+    #
+    # Status Bar:
+    #
+    # Read `man 5 sway-bar` for more information about this section.
+    bar {
+        position top
+
+        # When the status_command prints a new line to stdout, swaybar updates.
+        # The default just shows the current date and time.
+        status_command ~/.config/sway/status
+
+        colors {
+            statusline ${foreground}
+            background ${background}
+            inactive_workspace ${background}ee ${background}ee ${foreground}ee
+        }
+    }
+
+    bindsym $mod+grave exec busctl --user call org.keepassxc.KeePassXC.MainWindow /keepassxc org.keepassxc.KeePassXC.MainWindow lockAllDatabases && swaylock -c #fdf6e3
+
+    # class                 border         backgr.        text           indicator      child_border
+    client.focused          #${bright6}    #${foreground} #${background} #${bright5}    #${regular4}
+    client.focused_inactive #${regular0}   #${regular0}   #${foreground} #${bright5}    #${regular0}
+    client.unfocused        #${regular0}   #${background} #${bright2}    #${bright5}    #${regular0}
+    client.urgent           #${bright1}    #${bright0}    #${regular4}   #${background} #${bright0}
+    client.placeholder      #${background} #${bright2}    #${foreground} #${background} #${bright2}
+
+    client.background       #${foreground}
+
+    include /etc/sway/config.d/*
+
+    exec sleep 5; systemctl --user restart kanshi.service
+    exec sleep 5; output * bg ~/tmp/51761494940_7f9d6ab0e3_o.jpg fill
+  '';
   home.file.".config/sway/status".source = ./status;
+  home.file.".config/kanshi/config".text = ''
+    profile Laptop {
+      output eDP-1 enable
+    }
+
+    profile Docked {
+      output eDP-1 disable
+      output "LG Electronics LG HDR 4K 0x000354D1" {
+      enable
+      scale 1.2
+      position 0,0
+      }
+    }
+  '';
 
   # Let Home Manager install and manage itself.
   programs.home-manager.enable = true;

From 77e6017e57d3df42afd0067dbf5a9425e808feeb Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 1 Feb 2025 19:48:37 +0100
Subject: [PATCH 086/124] chore: update flake lock

---
 flake.lock | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/flake.lock b/flake.lock
index 771d148..17bea85 100644
--- a/flake.lock
+++ b/flake.lock
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1737751639,
-        "narHash": "sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4=",
+        "lastModified": 1738391520,
+        "narHash": "sha256-6HI58PKjddsC0RA0gBQlt6ox47oH//jLUHwx05RO8g0=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "dfad538f751a5aa5d4436d9781ab27a6128ec9d4",
+        "rev": "34b64e4e1ddb14e3ffc7db8d4a781396dbbab773",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1737672001,
-        "narHash": "sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I=",
+        "lastModified": 1738392223,
+        "narHash": "sha256-epwD0BvADThOtRrDoI7qJUZPe1vhXoSIwLna2/VoOMA=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "035f8c0853c2977b24ffc4d0a42c74f00b182cd8",
+        "rev": "7d84bdf9cb85f399a8eafe8e17acee2354f13a21",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1737672001,
-        "narHash": "sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I=",
+        "lastModified": 1738277201,
+        "narHash": "sha256-6L+WXKCw5mqnUIExvqkD99pJQ41xgyCk6z/H9snClwk=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "035f8c0853c2977b24ffc4d0a42c74f00b182cd8",
+        "rev": "666e1b3f09c267afd66addebe80fb05a5ef2b554",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1737483750,
-        "narHash": "sha256-5An1wq5U8sNycOBBg3nsDDgpwBmR9liOpDGlhliA6Xo=",
+        "lastModified": 1738070913,
+        "narHash": "sha256-j6jC12vCFsTGDmY2u1H12lMr62fnclNjuCtAdF1a4Nk=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "f2cc121df15418d028a59c9737d38e3a90fbaf8f",
+        "rev": "bebf27d00f7d10ba75332a0541ac43676985dea3",
         "type": "github"
       },
       "original": {

From 5f67272146536cfd95b92f61329b65b97a07fc8e Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 2 Feb 2025 11:27:52 +0100
Subject: [PATCH 087/124] feat(home): move swaybar to bottom

---
 home/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/home/default.nix b/home/default.nix
index 457d7ad..300898b 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -381,7 +381,7 @@ in
     #
     # Read `man 5 sway-bar` for more information about this section.
     bar {
-        position top
+        position bottom
 
         # When the status_command prints a new line to stdout, swaybar updates.
         # The default just shows the current date and time.

From 86e5c155bf069fc6d475078078d65238953b5d7b Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 2 Feb 2025 13:07:59 +0100
Subject: [PATCH 088/124] fix(home): adwaita cursor

---
 home/dconf.nix | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/home/dconf.nix b/home/dconf.nix
index 2e25aab..db5ca18 100644
--- a/home/dconf.nix
+++ b/home/dconf.nix
@@ -2,7 +2,8 @@
 with lib.hm.gvariant;
 {
   home.packages = [
-    pkgs.gnomeExtensions.switcher
+    pkgs.adwaita-icon-theme
+    pkgs.adwaita-qt
   ];
 
   dconf.settings = with lib.hm.gvariant; {
@@ -40,6 +41,7 @@ with lib.hm.gvariant;
       clock-show-date = true;
       clock-show-seconds = false;
       clock-show-weekday = true;
+      cursor-theme = "Adwaita";
       enable-animations = true;
       enable-hot-corners = false;
       font-antialiasing = "grayscale";
@@ -53,7 +55,7 @@ with lib.hm.gvariant;
       locate-pointer = false;
       monospace-font-name = "JetBrains Mono 10";
       show-battery-percentage = false;
-      text-scaling-factor = 1.0;
+      #text-scaling-factor = 1.0;
       toolkit-accessibility = false;
     };
 

From 8cfa70e239e4fbf5bfc230852fc1f5f81ad4232b Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 24 Feb 2025 20:57:18 +0100
Subject: [PATCH 089/124] chore: update nixpkgs

---
 flake.lock | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/flake.lock b/flake.lock
index 17bea85..e7556f6 100644
--- a/flake.lock
+++ b/flake.lock
@@ -144,11 +144,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1736373539,
-        "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
+        "lastModified": 1739757849,
+        "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
+        "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1738391520,
-        "narHash": "sha256-6HI58PKjddsC0RA0gBQlt6ox47oH//jLUHwx05RO8g0=",
+        "lastModified": 1740387674,
+        "narHash": "sha256-pGk/aA0EBvI6o4DeuZsr05Ig/r4uMlSaf5EWUZEWM10=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "34b64e4e1ddb14e3ffc7db8d4a781396dbbab773",
+        "rev": "d58f642ddb23320965b27beb0beba7236e9117b5",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1738392223,
-        "narHash": "sha256-epwD0BvADThOtRrDoI7qJUZPe1vhXoSIwLna2/VoOMA=",
+        "lastModified": 1740357648,
+        "narHash": "sha256-CaawdjLmSny3UV97my2Hg4h867p4lhd+EpRhFQGaHK4=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "7d84bdf9cb85f399a8eafe8e17acee2354f13a21",
+        "rev": "060b03c5d950ee0592d16e97c63860640bd31f50",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1738277201,
-        "narHash": "sha256-6L+WXKCw5mqnUIExvqkD99pJQ41xgyCk6z/H9snClwk=",
+        "lastModified": 1740339700,
+        "narHash": "sha256-cbrw7EgQhcdFnu6iS3vane53bEagZQy/xyIkDWpCgVE=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "666e1b3f09c267afd66addebe80fb05a5ef2b554",
+        "rev": "04ef94c4c1582fd485bbfdb8c4a8ba250e359195",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1738070913,
-        "narHash": "sha256-j6jC12vCFsTGDmY2u1H12lMr62fnclNjuCtAdF1a4Nk=",
+        "lastModified": 1739829690,
+        "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "bebf27d00f7d10ba75332a0541ac43676985dea3",
+        "rev": "3d0579f5cc93436052d94b73925b48973a104204",
         "type": "github"
       },
       "original": {

From 87cb376d4d0b6dce4aed71657ed4db731f4e538a Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Fri, 7 Mar 2025 17:55:27 +0100
Subject: [PATCH 090/124] chore: update inputs

---
 flake.lock | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/flake.lock b/flake.lock
index e7556f6..2d28985 100644
--- a/flake.lock
+++ b/flake.lock
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1737057290,
-        "narHash": "sha256-3Pe0yKlCc7EOeq1X/aJVDH0CtNL+tIBm49vpepwL1MQ=",
+        "lastModified": 1740947705,
+        "narHash": "sha256-Co2kAD2SZalOm+5zoxmzEVZNvZ17TyafuFsD46BwSdY=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453",
+        "rev": "507911df8c35939050ae324caccc7cf4ffb76565",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1740387674,
-        "narHash": "sha256-pGk/aA0EBvI6o4DeuZsr05Ig/r4uMlSaf5EWUZEWM10=",
+        "lastModified": 1741325094,
+        "narHash": "sha256-RUAdT8dZ6k/486vnu3tiNRrNW6+Q8uSD2Mq7gTX4jlo=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "d58f642ddb23320965b27beb0beba7236e9117b5",
+        "rev": "b48cc4dab0f9711af296fc367b6108cf7b8ccb16",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1740357648,
-        "narHash": "sha256-CaawdjLmSny3UV97my2Hg4h867p4lhd+EpRhFQGaHK4=",
+        "lastModified": 1741318725,
+        "narHash": "sha256-3ShROHs7BXBDH3VNoPmbG4mL8DvRpDM8s4NxkmRVz1Q=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "060b03c5d950ee0592d16e97c63860640bd31f50",
+        "rev": "9290fda826610430b3fc8cc98443c3a2faaaf151",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1740339700,
-        "narHash": "sha256-cbrw7EgQhcdFnu6iS3vane53bEagZQy/xyIkDWpCgVE=",
+        "lastModified": 1741196730,
+        "narHash": "sha256-0Sj6ZKjCpQMfWnN0NURqRCQn2ob7YtXTAOTwCuz7fkA=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "04ef94c4c1582fd485bbfdb8c4a8ba250e359195",
+        "rev": "48913d8f9127ea6530a2a2f1bd4daa1b8685d8a3",
         "type": "github"
       },
       "original": {

From b5318b48ad7ec5f30406ff407bd2eb922a72caae Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Thu, 13 Mar 2025 20:35:36 +0100
Subject: [PATCH 091/124] gorgon: add working printer config

---
 nixos/gorgon/configuration.nix | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index c90a2eb..0d6f0cb 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -128,6 +128,13 @@ in
     ];
   };
 
+  hardware.printers.ensurePrinters = [{
+    name = "Brother_HL-L2300D";
+    model = "everywhere";
+    location = "BS";
+    deviceUri = "ipp://192.168.101.29:631/printers/Brother_HL-L2300D";
+  }];
+
   environment.systemPackages = with pkgs; [
     ghostscript
     smartmontools

From 4ea70d86d240aec198f3d6cc89538edc681c63a0 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Wed, 26 Mar 2025 20:33:35 +0100
Subject: [PATCH 092/124] feat(home): bind swaylock to mod end

---
 home/default.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/home/default.nix b/home/default.nix
index 300898b..2aef870 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -238,6 +238,7 @@ in
 
     # Lock the screen
     bindsym XF86Sleep exec 'swaylock -f -c ${background}'
+    bindsym $mod+End exec 'swaylock -f -c ${background}'
 
     # Reload the configuration file
     bindsym $mod+Shift+c reload

From 3be5c51bc7d1e97665edde25b0aa569820707be2 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Wed, 26 Mar 2025 20:36:16 +0100
Subject: [PATCH 093/124] flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'devshell':
    'github:numtide/devshell/f7795ede5b02664b57035b3b757876703e2c3eac' (2024-12-31)
  → 'github:numtide/devshell/7c9e793ebe66bcba8292989a68c0419b737a22a0' (2025-03-08)
• Updated input 'home-manager':
    'github:nix-community/home-manager/9d3d080aec2a35e05a15cedd281c2384767c2cfe' (2025-02-17)
  → 'github:nix-community/home-manager/0948aeedc296f964140d9429223c7e4a0702a1ff' (2025-03-22)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/507911df8c35939050ae324caccc7cf4ffb76565' (2025-03-02)
  → 'github:nix-community/nixos-generators/42ee229088490e3777ed7d1162cb9e9d8c3dbb11' (2025-03-21)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/b48cc4dab0f9711af296fc367b6108cf7b8ccb16' (2025-03-07)
  → 'github:NixOS/nixos-hardware/ecaa2d911e77c265c2a5bac8b583c40b0f151726' (2025-03-24)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9290fda826610430b3fc8cc98443c3a2faaaf151' (2025-03-07)
  → 'github:NixOS/nixpkgs/d02d88f8de5b882ccdde0465d8fa2db3aa1169f7' (2025-03-25)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/48913d8f9127ea6530a2a2f1bd4daa1b8685d8a3' (2025-03-05)
  → 'github:NixOS/nixpkgs/f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092' (2025-03-23)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/3d0579f5cc93436052d94b73925b48973a104204' (2025-02-17)
  → 'github:numtide/treefmt-nix/61c88349bf6dff49fa52d7dfc39b21026c2a8881' (2025-03-26)
---
 flake.lock | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/flake.lock b/flake.lock
index 2d28985..69e3554 100644
--- a/flake.lock
+++ b/flake.lock
@@ -52,11 +52,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1735644329,
-        "narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=",
+        "lastModified": 1741473158,
+        "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
         "owner": "numtide",
         "repo": "devshell",
-        "rev": "f7795ede5b02664b57035b3b757876703e2c3eac",
+        "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
         "type": "github"
       },
       "original": {
@@ -144,11 +144,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1739757849,
-        "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
+        "lastModified": 1742655702,
+        "narHash": "sha256-jbqlw4sPArFtNtA1s3kLg7/A4fzP4GLk9bGbtUJg0JQ=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
+        "rev": "0948aeedc296f964140d9429223c7e4a0702a1ff",
         "type": "github"
       },
       "original": {
@@ -232,11 +232,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1740947705,
-        "narHash": "sha256-Co2kAD2SZalOm+5zoxmzEVZNvZ17TyafuFsD46BwSdY=",
+        "lastModified": 1742568034,
+        "narHash": "sha256-QaMEhcnscfF2MqB7flZr+sLJMMYZPnvqO4NYf9B4G38=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "507911df8c35939050ae324caccc7cf4ffb76565",
+        "rev": "42ee229088490e3777ed7d1162cb9e9d8c3dbb11",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1741325094,
-        "narHash": "sha256-RUAdT8dZ6k/486vnu3tiNRrNW6+Q8uSD2Mq7gTX4jlo=",
+        "lastModified": 1742806253,
+        "narHash": "sha256-zvQ4GsCJT6MTOzPKLmlFyM+lxo0JGQ0cSFaZSACmWfY=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "b48cc4dab0f9711af296fc367b6108cf7b8ccb16",
+        "rev": "ecaa2d911e77c265c2a5bac8b583c40b0f151726",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1741318725,
-        "narHash": "sha256-3ShROHs7BXBDH3VNoPmbG4mL8DvRpDM8s4NxkmRVz1Q=",
+        "lastModified": 1742937945,
+        "narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "9290fda826610430b3fc8cc98443c3a2faaaf151",
+        "rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1741196730,
-        "narHash": "sha256-0Sj6ZKjCpQMfWnN0NURqRCQn2ob7YtXTAOTwCuz7fkA=",
+        "lastModified": 1742751704,
+        "narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "48913d8f9127ea6530a2a2f1bd4daa1b8685d8a3",
+        "rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1739829690,
-        "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=",
+        "lastModified": 1742982148,
+        "narHash": "sha256-aRA6LSxjlbMI6MmMzi/M5WH/ynd8pK+vACD9za3MKLQ=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "3d0579f5cc93436052d94b73925b48973a104204",
+        "rev": "61c88349bf6dff49fa52d7dfc39b21026c2a8881",
         "type": "github"
       },
       "original": {

From d3c2fd9fad8068c3c6236466e887b3f9740724ac Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 31 Mar 2025 20:22:22 +0200
Subject: [PATCH 094/124] feat: android studio

---
 nixos/gorgon/configuration.nix | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index 0d6f0cb..339f8f4 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -43,6 +43,8 @@ in
     repo = "u355513-sub1@u355513-sub1.your-storagebox.de:/home/backup";
   };
 
+  nixpkgs.config.android_sdk.accept_license = true;
+
   programs.ssh.startAgent = true;
 
   nix.extraOptions = ''
@@ -136,6 +138,7 @@ in
   }];
 
   environment.systemPackages = with pkgs; [
+    android-studio
     ghostscript
     smartmontools
 

From 5e160905c09cc8df7064f36d230e829921e4c6e3 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Mon, 31 Mar 2025 20:22:35 +0200
Subject: [PATCH 095/124] feat: add fuzzel

---
 home/default.nix | 2 +-
 home/pkgs.nix    | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/home/default.nix b/home/default.nix
index 2aef870..9dde748 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -189,7 +189,7 @@ in
     # Your preferred application launcher
     # Note: pass the final command to swaymsg so that the resulting window can be opened
     # on the original workspace that the command was run on.
-    set $menu dmenu_path | wmenu | xargs swaymsg exec --
+    set $menu fuzzel
 
     ### Idle configuration
     #
diff --git a/home/pkgs.nix b/home/pkgs.nix
index 50de796..d777f41 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -27,6 +27,7 @@ with pkgs; [
   evolution
   ffmpeg
   file
+  fuzzel
   fx # themable json viewer
   fzf
   fzf

From eff41d31e6e8ff871f06b7b64b1c13196936b7da Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 5 Apr 2025 18:53:39 +0200
Subject: [PATCH 096/124] chore: update inputs

---
 flake.lock | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/flake.lock b/flake.lock
index 69e3554..8521e8e 100644
--- a/flake.lock
+++ b/flake.lock
@@ -144,11 +144,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742655702,
-        "narHash": "sha256-jbqlw4sPArFtNtA1s3kLg7/A4fzP4GLk9bGbtUJg0JQ=",
+        "lastModified": 1743808813,
+        "narHash": "sha256-2lDQBOmlz9ggPxcS7/GvcVdzXMIiT+PpMao6FbLJSr0=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "0948aeedc296f964140d9429223c7e4a0702a1ff",
+        "rev": "a9f8b3db211b4609ddd83683f9db89796c7f6ac6",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1742806253,
-        "narHash": "sha256-zvQ4GsCJT6MTOzPKLmlFyM+lxo0JGQ0cSFaZSACmWfY=",
+        "lastModified": 1743420942,
+        "narHash": "sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "ecaa2d911e77c265c2a5bac8b583c40b0f151726",
+        "rev": "de6fc5551121c59c01e2a3d45b277a6d05077bc4",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1742937945,
-        "narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=",
+        "lastModified": 1743792629,
+        "narHash": "sha256-dqQv17m0O5j9YUHXM1RZr3jtTDYqLUBjtJUlLHYAZEo=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7",
+        "rev": "749bd56cf89ec71d3c953d5fbfe27ede27d04c37",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1742751704,
-        "narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=",
+        "lastModified": 1743703532,
+        "narHash": "sha256-s1KLDALEeqy+ttrvqV3jx9mBZEvmthQErTVOAzbjHZs=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092",
+        "rev": "bdb91860de2f719b57eef819b5617762f7120c70",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742982148,
-        "narHash": "sha256-aRA6LSxjlbMI6MmMzi/M5WH/ynd8pK+vACD9za3MKLQ=",
+        "lastModified": 1743748085,
+        "narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "61c88349bf6dff49fa52d7dfc39b21026c2a8881",
+        "rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d",
         "type": "github"
       },
       "original": {

From 5049c9f0196bb7a39ab6b15ea3635a77cda1f16c Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 6 Apr 2025 18:06:06 +0200
Subject: [PATCH 097/124] feat: add nix-output-monitor

---
 home/pkgs.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/home/pkgs.nix b/home/pkgs.nix
index d777f41..d399bd8 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -80,6 +80,7 @@ with pkgs; [
   mpv
   mtr
   mumble
+  nix-output-monitor
   ncurses
   newsflash
   nixd

From cf328ce296d3ebb8a499a2adf4ef1fb78a3278f0 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 8 Apr 2025 20:40:39 +0200
Subject: [PATCH 098/124] update flake

---
 flake.lock | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/flake.lock b/flake.lock
index 8521e8e..0521769 100644
--- a/flake.lock
+++ b/flake.lock
@@ -144,11 +144,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743808813,
-        "narHash": "sha256-2lDQBOmlz9ggPxcS7/GvcVdzXMIiT+PpMao6FbLJSr0=",
+        "lastModified": 1744117652,
+        "narHash": "sha256-t7dFCDl4vIOOUMhEZnJF15aAzkpaup9x4ZRGToDFYWI=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "a9f8b3db211b4609ddd83683f9db89796c7f6ac6",
+        "rev": "b4e98224ad1336751a2ac7493967a4c9f6d9cb3f",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1743792629,
-        "narHash": "sha256-dqQv17m0O5j9YUHXM1RZr3jtTDYqLUBjtJUlLHYAZEo=",
+        "lastModified": 1743987495,
+        "narHash": "sha256-46T2vMZ4/AfCK0Y2OjlFzJPxmdpP8GtsuEqSSJv3oe4=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "749bd56cf89ec71d3c953d5fbfe27ede27d04c37",
+        "rev": "db8f4fe18ce772a9c8f3adf321416981c8fe9371",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1743703532,
-        "narHash": "sha256-s1KLDALEeqy+ttrvqV3jx9mBZEvmthQErTVOAzbjHZs=",
+        "lastModified": 1743975612,
+        "narHash": "sha256-o4FjFOUmjSRMK7dn0TFdAT0RRWUWD+WsspPHa+qEQT8=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "bdb91860de2f719b57eef819b5617762f7120c70",
+        "rev": "a880f49904d68b5e53338d1e8c7bf80f59903928",
         "type": "github"
       },
       "original": {

From eb0b01a17d945da82f160ddcca02f2e573d3f6d4 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 13 Apr 2025 15:26:18 +0200
Subject: [PATCH 099/124] fix: sway scaling, wallpaper, gaps

---
 home/default.nix | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/home/default.nix b/home/default.nix
index 9dde748..e601068 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -190,15 +190,16 @@ in
     # Note: pass the final command to swaymsg so that the resulting window can be opened
     # on the original workspace that the command was run on.
     set $menu fuzzel
+    set $wallpaper "~/lib/pictures/wallpaper.jpg"
 
     ### Idle configuration
     #
     # Example configuration:
     #
     exec swayidle -w \
-             timeout 300 'swaylock -f -c ${background}' \
+             timeout 300 'swaylock -f -i $wallpaper -s fill' \
              timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
-             before-sleep 'swaylock -f -c ${background}'
+             before-sleep 'swaylock -f -i $wallpaper -s fill'
     #
     # This will lock your screen after 300 seconds of inactivity, then turn off
     # your displays after another 300 seconds, and turn your screens back on when
@@ -395,6 +396,10 @@ in
         }
     }
 
+    # Gaps between multiple tiling windows
+    gaps inner 10
+    smart_gaps on
+
     bindsym $mod+grave exec busctl --user call org.keepassxc.KeePassXC.MainWindow /keepassxc org.keepassxc.KeePassXC.MainWindow lockAllDatabases && swaylock -c #fdf6e3
 
     # class                 border         backgr.        text           indicator      child_border
@@ -409,7 +414,7 @@ in
     include /etc/sway/config.d/*
 
     exec sleep 5; systemctl --user restart kanshi.service
-    exec sleep 5; output * bg ~/tmp/51761494940_7f9d6ab0e3_o.jpg fill
+    exec sleep 5; swaymsg output '*' bg $wallpaper fill
   '';
   home.file.".config/sway/status".source = ./status;
   home.file.".config/kanshi/config".text = ''
@@ -420,9 +425,9 @@ in
     profile Docked {
       output eDP-1 disable
       output "LG Electronics LG HDR 4K 0x000354D1" {
-      enable
-      scale 1.2
-      position 0,0
+        enable
+        scale 1.4
+        position 0,0
       }
     }
   '';

From cc80c71f88f736a7bde9d584a10d69442d0802cd Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 13 Apr 2025 15:33:20 +0200
Subject: [PATCH 100/124] flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake lock file updates:

• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/de6fc5551121c59c01e2a3d45b277a6d05077bc4' (2025-03-31)
  → 'github:NixOS/nixos-hardware/1fe3cc2bc5d2dc9c81cb4e63d2f67c1543340df1' (2025-04-11)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/db8f4fe18ce772a9c8f3adf321416981c8fe9371' (2025-04-07)
  → 'github:NixOS/nixpkgs/86484f6076aac9141df2bfcddbf7dcfce5e0c6bb' (2025-04-12)
• Updated input 'nixpkgs-full':
    'github:NixOS/nixpkgs/a880f49904d68b5e53338d1e8c7bf80f59903928' (2025-04-06)
  → 'github:NixOS/nixpkgs/26d499fc9f1d567283d5d56fcf367edd815dba1d' (2025-04-12)
---
 flake.lock | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/flake.lock b/flake.lock
index 0521769..9e7634e 100644
--- a/flake.lock
+++ b/flake.lock
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1743420942,
-        "narHash": "sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo=",
+        "lastModified": 1744366945,
+        "narHash": "sha256-OuLhysErPHl53BBifhesrRumJNhrlSgQDfYOTXfgIMg=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "de6fc5551121c59c01e2a3d45b277a6d05077bc4",
+        "rev": "1fe3cc2bc5d2dc9c81cb4e63d2f67c1543340df1",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1743987495,
-        "narHash": "sha256-46T2vMZ4/AfCK0Y2OjlFzJPxmdpP8GtsuEqSSJv3oe4=",
+        "lastModified": 1744492897,
+        "narHash": "sha256-qqKO4FOo/vPmNIaRPcLqwfudUlQ29iNdI1IbCZfjmxs=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "db8f4fe18ce772a9c8f3adf321416981c8fe9371",
+        "rev": "86484f6076aac9141df2bfcddbf7dcfce5e0c6bb",
         "type": "github"
       },
       "original": {
@@ -279,11 +279,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1743975612,
-        "narHash": "sha256-o4FjFOUmjSRMK7dn0TFdAT0RRWUWD+WsspPHa+qEQT8=",
+        "lastModified": 1744440957,
+        "narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "a880f49904d68b5e53338d1e8c7bf80f59903928",
+        "rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
         "type": "github"
       },
       "original": {

From d257a18c2c7341eb2397a5591c262edd18b463d7 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 13 Apr 2025 19:09:17 +0200
Subject: [PATCH 101/124] feat: add chromium

---
 home/pkgs.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/home/pkgs.nix b/home/pkgs.nix
index d399bd8..c6ccc73 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -14,6 +14,7 @@ with pkgs; [
   bluez-tools
   btop # htop
   choose # alternative to cut and awk with more readable syntax
+  chromium
   colordiff
   darcs
   delta # feature-rich diff viewer

From cde3f39c11c9e524a4b79fa2dc6ea840b7d26658 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 13 Apr 2025 20:56:56 +0200
Subject: [PATCH 102/124] feat: switch to black on white theme

---
 home/default.nix                            | 36 ++++++++++-----------
 home/modules/alacritty/default.nix          |  2 +-
 home/modules/helix/config/config.toml       |  2 +-
 home/modules/helix/config/themes/black.toml | 33 +++++++++++++++++++
 home/modules/zsh.nix                        |  1 +
 5 files changed, 54 insertions(+), 20 deletions(-)
 create mode 100644 home/modules/helix/config/themes/black.toml

diff --git a/home/default.nix b/home/default.nix
index e601068..d35424e 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -19,24 +19,24 @@ let
     "helix"
   ];
   colors = {
-    background = "fdf6e3";
-    foreground = "657b83";
-    regular0 = "eee8d5"; # background darker
-    regular1 = "dc322f"; # red
-    regular2 = "859900"; # green
-    regular3 = "b58900"; # dark orange
-    regular4 = "268bd2"; # azure blue
-    regular5 = "d33682"; # hot pink
-    regular6 = "2aa198"; # petrol
-    regular7 = "073642"; # navy
-    bright0 = "cb4b16"; # orange
-    bright1 = "fdf6e3"; # foreground
-    bright2 = "93a1a1"; # grey
-    bright3 = "839496"; # slightly darker grey
-    bright4 = "657b83"; # even slightly darker grey
-    bright5 = "6c71c4"; # purple
-    bright6 = "586e75"; # pretty dark grey
-    bright7 = "002b36"; # dark navy blue
+    background = "ffffff";
+    foreground = "000000";
+    regular0 = "000000";
+    regular1 = "000000";
+    regular2 = "000000";
+    regular3 = "000000";
+    regular4 = "000000";
+    regular5 = "000000";
+    regular6 = "000000";
+    regular7 = "000000";
+    bright0 = "ffffff";
+    bright1 = "ffffff";
+    bright2 = "ffffff";
+    bright3 = "ffffff";
+    bright4 = "ffffff";
+    bright5 = "ffffff";
+    bright6 = "ffffff";
+    bright7 = "ffffff";
   };
 in
 {
diff --git a/home/modules/alacritty/default.nix b/home/modules/alacritty/default.nix
index 086b945..db3db6e 100644
--- a/home/modules/alacritty/default.nix
+++ b/home/modules/alacritty/default.nix
@@ -17,7 +17,7 @@ in
     programs.alacritty = {
       enable = true;
       settings = {
-        env.TERM = "xterm-256color";
+        env.TERM = "xterm-mono";
         scrolling.history = 0;
         font = {
           size = 9;
diff --git a/home/modules/helix/config/config.toml b/home/modules/helix/config/config.toml
index 41cf786..71b6c42 100644
--- a/home/modules/helix/config/config.toml
+++ b/home/modules/helix/config/config.toml
@@ -1,4 +1,4 @@
-theme = "solarized_light"
+theme = "black"
 
 [editor]
 line-number = "relative"
diff --git a/home/modules/helix/config/themes/black.toml b/home/modules/helix/config/themes/black.toml
new file mode 100644
index 0000000..a403de9
--- /dev/null
+++ b/home/modules/helix/config/themes/black.toml
@@ -0,0 +1,33 @@
+"ui.background" = {bg="white"}
+"ui.text" = "black"
+"ui.linenr" = {bg="white", fg="black"}
+"ui.linenr.selected" = {bg="white", fg="black"}
+"ui.selection" = {bg="black", fg="white"}
+"ui.cursorline" = {bg="black", fg="white"}
+"ui.statusline" = {fg="white", bg="black"}
+"ui.statusline.inactive" = {fg="black", bg="white"}
+"ui.virtual" = "indent"
+"ui.virtual.ruler" = { bg = "black", fg ="white" }
+"ui.cursor.match" = { bg="black", fg="white" }
+"ui.cursor" = {bg="black", fg="white"}
+"ui.debug" = {fg="black"}
+"ui.highlight" = { modifiers = ["underlined"] }
+"ui.highlight.frameline" = { bg="black", fg="white" }
+"ui.help" = { bg="black", fg="white" }
+"ui.popup" = { bg="black", fg="white" }
+"ui.text.info" = { bg="black", fg="white" }
+"ui.menu" = { fg="white", bg="black" }
+"ui.menu.selected" = { bg="white", fg="black" }
+"ui.window" = { bg="white" }
+"diagnostic" = { modifiers=["reversed"] }
+"diagnostic.error" = {modifiers=["bold", "underlined"]}
+"diagnostic.warning" = {modifiers=["underlined", "italic"]}
+"diagnostic.hint" = {modifiers=["underlined"]}
+"diagnostic.unnecessary" = {modifiers = ["dim"]}
+"diagnostic.deprecated" = {modifiers = ["crossed_out"]}
+"ui.bufferline" = { fg="black", bg="white" }
+"ui.bufferline.active" = { fg="black", bg="white" }
+
+[palette]
+white = "#ffffff"
+black = "#000000"
diff --git a/home/modules/zsh.nix b/home/modules/zsh.nix
index ab51e59..b22cec0 100644
--- a/home/modules/zsh.nix
+++ b/home/modules/zsh.nix
@@ -20,6 +20,7 @@ in
       autocd = true;
       sessionVariables = {
         EDITOR = "hx";
+        TERM = "xterm-mono";
       };
       history = {
         extended = true;

From 5acfc7ecdde0627ffbf4827de018b90147f74ef5 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 15 Apr 2025 20:37:03 +0200
Subject: [PATCH 103/124] fix: bw theme popovers in tmux and helix

---
 home/modules/helix/config/themes/black.toml | 21 +++++++++++----------
 home/modules/tmux.nix                       |  4 ++--
 2 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/home/modules/helix/config/themes/black.toml b/home/modules/helix/config/themes/black.toml
index a403de9..17ddd3d 100644
--- a/home/modules/helix/config/themes/black.toml
+++ b/home/modules/helix/config/themes/black.toml
@@ -2,21 +2,22 @@
 "ui.text" = "black"
 "ui.linenr" = {bg="white", fg="black"}
 "ui.linenr.selected" = {bg="white", fg="black"}
-"ui.selection" = {bg="black", fg="white"}
-"ui.cursorline" = {bg="black", fg="white"}
-"ui.statusline" = {fg="white", bg="black"}
+"ui.selection" = {modifiers=["reversed"]}
+"ui.cursorline" = {modifiers=["reversed"]}
+"ui.statusline" = {modifiers=["reversed"]}
 "ui.statusline.inactive" = {fg="black", bg="white"}
 "ui.virtual" = "indent"
 "ui.virtual.ruler" = { bg = "black", fg ="white" }
-"ui.cursor.match" = { bg="black", fg="white" }
-"ui.cursor" = {bg="black", fg="white"}
+"ui.cursor.match" = {modifiers=["reversed"]}
+"ui.cursor" = {modifiers=["reversed"]}
 "ui.debug" = {fg="black"}
 "ui.highlight" = { modifiers = ["underlined"] }
-"ui.highlight.frameline" = { bg="black", fg="white" }
-"ui.help" = { bg="black", fg="white" }
-"ui.popup" = { bg="black", fg="white" }
-"ui.text.info" = { bg="black", fg="white" }
-"ui.menu" = { fg="white", bg="black" }
+"ui.highlight.frameline" = {modifiers=["reversed"]}
+"ui.help" = { modifiers=["reversed"] }
+"ui.popup" = { modifiers=["reversed"] }
+"ui.popup.info" = { modifiers=["reversed"] }
+"ui.text.info" = { modifiers=["reversed"] }
+"ui.menu" = { modifiers=["reversed"] }
 "ui.menu.selected" = { bg="white", fg="black" }
 "ui.window" = { bg="white" }
 "diagnostic" = { modifiers=["reversed"] }
diff --git a/home/modules/tmux.nix b/home/modules/tmux.nix
index 70f2974..df005ff 100644
--- a/home/modules/tmux.nix
+++ b/home/modules/tmux.nix
@@ -12,17 +12,17 @@ in
   config = mkIf cfg.enable {
     programs.tmux = {
       enable = true;
-      terminal = "tmux-256color";
       extraConfig = ''
         setw -g mode-keys vi
         set -g mouse on
         set -g set-clipboard external
         set -g set-titles on
         set -g status on
-        set -ga terminal-overrides ',*256col*:Tc'
         set-option -g status-interval 5
         set-option -g automatic-rename on
         set-option -g automatic-rename-format '#{b:pane_current_path}'
+        set -g status-bg "#000000"
+        set -g status-fg "#ffffff"
         bind '"' split-window -c "#{pane_current_path}"
         bind % split-window -h -c "#{pane_current_path}"
         bind c new-window -c "#{pane_current_path}"

From fce74c64a96c3a451e41bcb3bc7836b8c35bb8e1 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 19 Apr 2025 15:23:46 +0200
Subject: [PATCH 104/124] chore: update inputs

---
 flake.lock | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/flake.lock b/flake.lock
index 9e7634e..c2ee325 100644
--- a/flake.lock
+++ b/flake.lock
@@ -68,11 +68,11 @@
     "flake-registry": {
       "flake": false,
       "locked": {
-        "lastModified": 1734450202,
-        "narHash": "sha256-/3gigrEBFORQs6a8LL5twoHs7biu08y/8Xc5aQmk3b0=",
+        "lastModified": 1744623129,
+        "narHash": "sha256-nlQTQrHqM+ywXN0evDXnYEV6z6WWZB5BFQ2TkXsduKw=",
         "owner": "NixOS",
         "repo": "flake-registry",
-        "rev": "02fe640c9e117dd9d6a34efc7bcb8bd09c08111d",
+        "rev": "1322f33d5836ae757d2e6190239252cf8402acf6",
         "type": "github"
       },
       "original": {
@@ -144,11 +144,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1744117652,
-        "narHash": "sha256-t7dFCDl4vIOOUMhEZnJF15aAzkpaup9x4ZRGToDFYWI=",
+        "lastModified": 1744743431,
+        "narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "b4e98224ad1336751a2ac7493967a4c9f6d9cb3f",
+        "rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1744366945,
-        "narHash": "sha256-OuLhysErPHl53BBifhesrRumJNhrlSgQDfYOTXfgIMg=",
+        "lastModified": 1744633460,
+        "narHash": "sha256-fbWE4Xpw6eH0Q6in+ymNuDwTkqmFmtxcQEmtRuKDTTk=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "1fe3cc2bc5d2dc9c81cb4e63d2f67c1543340df1",
+        "rev": "9a049b4a421076d27fee3eec664a18b2066824cb",
         "type": "github"
       },
       "original": {
@@ -263,11 +263,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1744492897,
-        "narHash": "sha256-qqKO4FOo/vPmNIaRPcLqwfudUlQ29iNdI1IbCZfjmxs=",
+        "lastModified": 1744917357,
+        "narHash": "sha256-1Sj8MToixDwakJYNMYBS/PYbg8Oa4CAxreXraMHB5qg=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "86484f6076aac9141df2bfcddbf7dcfce5e0c6bb",
+        "rev": "1eae3268880484be84199bdb77941c09bb4a97ba",
         "type": "github"
       },
       "original": {
@@ -332,11 +332,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743748085,
-        "narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=",
+        "lastModified": 1744961264,
+        "narHash": "sha256-aRmUh0AMwcbdjJHnytg1e5h5ECcaWtIFQa6d9gI85AI=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d",
+        "rev": "8d404a69efe76146368885110f29a2ca3700bee6",
         "type": "github"
       },
       "original": {

From 687cb324007a548471dd9e1fa241fe0347747af1 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 27 Apr 2025 19:38:01 +0200
Subject: [PATCH 105/124] feat: switch to unstable channel for gorgon

---
 flake.lock                                  | 24 +++++++--
 flake.nix                                   |  3 +-
 home/modules/helix/config/themes/black.toml |  2 +-
 home/pkgs.nix                               | 10 +---
 nixos/configurations.nix                    |  3 +-
 nixos/modules/profiles/laptop.nix           |  6 ---
 nixos/modules/yubikey.nix                   |  3 +-
 overlays.nix                                | 21 --------
 pkgs/recipemd.nix                           | 58 ---------------------
 9 files changed, 27 insertions(+), 103 deletions(-)
 delete mode 100644 pkgs/recipemd.nix

diff --git a/flake.lock b/flake.lock
index c2ee325..e425e8b 100644
--- a/flake.lock
+++ b/flake.lock
@@ -144,16 +144,15 @@
         ]
       },
       "locked": {
-        "lastModified": 1744743431,
-        "narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=",
+        "lastModified": 1745251259,
+        "narHash": "sha256-Hf8WEJMMoP6Fe+k+PYkVJFk5UKory2S0jW7HqRVqQFc=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387",
+        "rev": "82ee14ff60611b46588ea852f267aafcc117c8c8",
         "type": "github"
       },
       "original": {
         "owner": "nix-community",
-        "ref": "release-24.11",
         "repo": "home-manager",
         "type": "github"
       }
@@ -293,6 +292,22 @@
         "type": "github"
       }
     },
+    "nixpkgs-unstable": {
+      "locked": {
+        "lastModified": 1744932701,
+        "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "nixos-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
     "root": {
       "inputs": {
         "agenix": "agenix",
@@ -306,6 +321,7 @@
         "nixos-hardware": "nixos-hardware",
         "nixpkgs": "nixpkgs",
         "nixpkgs-full": "nixpkgs-full",
+        "nixpkgs-unstable": "nixpkgs-unstable",
         "systems": "systems",
         "treefmt-nix": "treefmt-nix"
       }
diff --git a/flake.nix b/flake.nix
index 7519d56..8dc1c74 100644
--- a/flake.nix
+++ b/flake.nix
@@ -3,13 +3,14 @@
 
   inputs = {
     nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11-small";
+    nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
     nixpkgs-full.url = "github:NixOS/nixpkgs/nixos-24.11";
     flake-utils = {
       url = "github:numtide/flake-utils";
       inputs.systems.follows = "systems";
     };
     home-manager = {
-      url = "github:nix-community/home-manager/release-24.11";
+      url = "github:nix-community/home-manager";
       inputs.nixpkgs.follows = "nixpkgs";
     };
     nixos-hardware.url = "github:NixOS/nixos-hardware/master";
diff --git a/home/modules/helix/config/themes/black.toml b/home/modules/helix/config/themes/black.toml
index 17ddd3d..88d1a35 100644
--- a/home/modules/helix/config/themes/black.toml
+++ b/home/modules/helix/config/themes/black.toml
@@ -17,7 +17,7 @@
 "ui.popup" = { modifiers=["reversed"] }
 "ui.popup.info" = { modifiers=["reversed"] }
 "ui.text.info" = { modifiers=["reversed"] }
-"ui.menu" = { modifiers=["reversed"] }
+"ui.menu" = { bg="black", fg="white" }
 "ui.menu.selected" = { bg="white", fg="black" }
 "ui.window" = { bg="white" }
 "diagnostic" = { modifiers=["reversed"] }
diff --git a/home/pkgs.nix b/home/pkgs.nix
index c6ccc73..8615921 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -20,7 +20,6 @@ with pkgs; [
   delta # feature-rich diff viewer
   dig
   direnv
-  dstat
   duf # disk usage
   dyff # diff tool for YAML
   element-desktop
@@ -38,7 +37,6 @@ with pkgs; [
   gimp
   glow
   glow # render markdown
-  gnome.gnome-tweaks
   gnumake
   gnupg
   gping # ping with graphs
@@ -65,7 +63,6 @@ with pkgs; [
   josm
   jq
   kanshi
-  kcachegrind
   keepassxc
   kubetail
   krita
@@ -107,12 +104,8 @@ with pkgs; [
   prusa-slicer
   pv
   pwgen
-  (python3.withPackages (python-pkgs: with python-pkgs; [
-    pandas
-    requests
-  ]))
+  (python3.withPackages (pkgs: [pkgs.pandas pkgs.requests]))
   ranger
-  recipemd
   reptyr
   ripgrep
   ripgrep
@@ -144,7 +137,6 @@ with pkgs; [
   wireshark
   xdg-utils
   xmlstarlet
-  xsv # cut for csv
   unixtools.xxd
   xxh # portable shells
   yt-dlp
diff --git a/nixos/configurations.nix b/nixos/configurations.nix
index 040ec6b..48d70cd 100644
--- a/nixos/configurations.nix
+++ b/nixos/configurations.nix
@@ -7,6 +7,7 @@
 , homepage
 , nixos-hardware
 , nixos-generators
+, nixpkgs-unstable
 , ...
 }@inputs:
 let
@@ -25,7 +26,7 @@ let
 in
 {
   gorgon = nixosSystem rec {
-    n_nixpkgs = nixpkgs-full;
+    n_nixpkgs = nixpkgs-unstable;
 
     system = "x86_64-linux";
 
diff --git a/nixos/modules/profiles/laptop.nix b/nixos/modules/profiles/laptop.nix
index 3ad8c11..bdba617 100644
--- a/nixos/modules/profiles/laptop.nix
+++ b/nixos/modules/profiles/laptop.nix
@@ -1,5 +1,4 @@
 { config
-, pkgs
 , lib
 , ...
 }:
@@ -25,11 +24,6 @@ with lib; {
 
   age.identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
 
-  fonts.packages = mkDefault (with pkgs; [
-    source-code-pro
-    vegur
-  ]);
-
   users.mutableUsers = mkDefault true;
 
   # Use the systemd-boot EFI boot loader.
diff --git a/nixos/modules/yubikey.nix b/nixos/modules/yubikey.nix
index 3df9499..77f4394 100644
--- a/nixos/modules/yubikey.nix
+++ b/nixos/modules/yubikey.nix
@@ -45,8 +45,7 @@ in
       #linuxPackages.acpi_call
       pam_u2f
       pamtester
-      yubikey-manager
-      yubikey-manager-qt
+      yubioath-flutter
     ];
   };
 }
diff --git a/overlays.nix b/overlays.nix
index bf0588c..2c63c08 100644
--- a/overlays.nix
+++ b/overlays.nix
@@ -1,23 +1,2 @@
 {
-  kanboard = final: prev: {
-    kanboard = prev.kanboard.overrideAttrs (oldAttrs: {
-      src = prev.fetchFromGitHub {
-        owner = "kanboard";
-        repo = "kanboard";
-        rev = "v${oldAttrs.version}";
-        sha256 = "sha256-WG2lTPpRG9KQpRdb+cS7CqF4ZDV7JZ8XtNqAI6eVzm0=";
-      };
-    });
-  };
-
-  recipemd = final: prev: {
-    pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
-      (
-        python-final: python-prev: {
-          recipemd = python-final.callPackage ./pkgs/recipemd.nix { };
-        }
-      )
-    ];
-    recipemd = prev.python3Packages.toPythonApplication final.python3Packages.recipemd;
-  };
 }
diff --git a/pkgs/recipemd.nix b/pkgs/recipemd.nix
deleted file mode 100644
index 4879a9a..0000000
--- a/pkgs/recipemd.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonPackages
-, installShellFiles
-, pythonOlder
-, pythonAtLeast
-}:
-buildPythonPackage rec {
-  pname = "recipemd";
-  version = "4.0.8";
-
-  disabled = pythonOlder "3.7" || pythonAtLeast "4";
-
-  src = fetchFromGitHub {
-    owner = "tstehr";
-    repo = "RecipeMD";
-    rev = "v${version}";
-    hash = "sha256-eumV2zm7TIJcTPRtWSckYz7jiyH3Ek4nIAVtuJs3sJc=";
-  };
-
-  propagatedBuildInputs = with pythonPackages; [
-    dataclasses-json
-    yarl
-    CommonMark
-    argcomplete
-    pyparsing
-  ];
-
-  nativeBuildInputs = [ installShellFiles ];
-
-  postInstall = ''
-    ${pythonPackages.argcomplete}/bin/register-python-argcomplete -s bash ${pname} > $out/completions.bash
-    installShellCompletion --bash --name recipemd.bash $out/completions.bash
-
-    ${pythonPackages.argcomplete}/bin/register-python-argcomplete -s fish ${pname} > $out/completions.fish
-    installShellCompletion --fish --name recipemd.fish $out/completions.fish
-
-    # The version of argcomplete in nixpkgs-stable does not have support for zsh
-    #${pythonPackages.argcomplete}/bin/register-python-argcomplete -s zsh ${pname} > $out/completions.zsh
-    #installShellCompletion --zsh --name _recipemd $out/completions.zsh
-  '';
-
-  checkInputs = [
-    pytestCheckHook
-    pythonPackages.pytestcov
-  ];
-
-  doCheck = true;
-
-  meta = with lib; {
-    description = "Markdown recipe manager, reference implementation of RecipeMD";
-    homepage = "https://recipemd.org";
-    license = [ licenses.lgpl3Only ];
-    maintainers = [ maintainers.dadada ];
-  };
-}

From a934dca7b65d5158cb696a786d59211f536c9615 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 27 Apr 2025 19:47:43 +0200
Subject: [PATCH 106/124] feat: add dune 3d

---
 home/pkgs.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/home/pkgs.nix b/home/pkgs.nix
index 8615921..0facf12 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -21,6 +21,7 @@ with pkgs; [
   dig
   direnv
   duf # disk usage
+  dune3d
   dyff # diff tool for YAML
   element-desktop
   evince

From 65720489b501597a59b967c073f1bfeb78729140 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 27 Apr 2025 21:45:36 +0200
Subject: [PATCH 107/124] chore: make prompt and shell pretty

---
 home/default.nix     | 10 +++++-----
 home/modules/zsh.nix |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/home/default.nix b/home/default.nix
index d35424e..80d53a3 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -403,11 +403,11 @@ in
     bindsym $mod+grave exec busctl --user call org.keepassxc.KeePassXC.MainWindow /keepassxc org.keepassxc.KeePassXC.MainWindow lockAllDatabases && swaylock -c #fdf6e3
 
     # class                 border         backgr.        text           indicator      child_border
-    client.focused          #${bright6}    #${foreground} #${background} #${bright5}    #${regular4}
-    client.focused_inactive #${regular0}   #${regular0}   #${foreground} #${bright5}    #${regular0}
-    client.unfocused        #${regular0}   #${background} #${bright2}    #${bright5}    #${regular0}
-    client.urgent           #${bright1}    #${bright0}    #${regular4}   #${background} #${bright0}
-    client.placeholder      #${background} #${bright2}    #${foreground} #${background} #${bright2}
+    client.focused          #${background} #${foreground} #${background} #${foreground} #${background}
+    client.focused_inactive #${background} #${background} #${foreground} #${foreground} #${background}
+    client.unfocused        #${background} #${background} #${foreground} #${foreground} #${background}
+    client.urgent           #${background} #${background} #${foreground} #${foreground} #${background}
+    client.placeholder      #${background} #${background} #${foreground} #${foreground} #${background}
 
     client.background       #${foreground}
 
diff --git a/home/modules/zsh.nix b/home/modules/zsh.nix
index b22cec0..fb4cc76 100644
--- a/home/modules/zsh.nix
+++ b/home/modules/zsh.nix
@@ -43,7 +43,7 @@ in
 
         preexec() { echo -n -e "\033]0;$1\007" }
 
-        PROMPT="%F{red}%?%f %F{green}%m%f:%F{blue}%~%f "
+        PROMPT="%F{red}%?%f %F{green}%m%f:%F{blue}%~%f"$'\n'"╰─> "
         RPROMPT='$(git_super_status)'
         #NIX_BUILD_SHELL="${pkgs.zsh}/bin/zsh"
       '';

From 033328e893cbbf2ae67b6d454b802ccda8ebd89b Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 12:27:21 +0200
Subject: [PATCH 108/124] feat(home): add poweralertd

---
 home/default.nix | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/home/default.nix b/home/default.nix
index 80d53a3..adeab0b 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -432,6 +432,8 @@ in
     }
   '';
 
+  services.poweralertd.enable = true;
+
   # Let Home Manager install and manage itself.
   programs.home-manager.enable = true;
 

From 210fa098aee7b21235c175affcf25e385233ec74 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 12:27:36 +0200
Subject: [PATCH 109/124] fix: remove commented out line

---
 home/modules/zsh.nix | 1 -
 1 file changed, 1 deletion(-)

diff --git a/home/modules/zsh.nix b/home/modules/zsh.nix
index fb4cc76..e7f8e57 100644
--- a/home/modules/zsh.nix
+++ b/home/modules/zsh.nix
@@ -45,7 +45,6 @@ in
 
         PROMPT="%F{red}%?%f %F{green}%m%f:%F{blue}%~%f"$'\n'"╰─> "
         RPROMPT='$(git_super_status)'
-        #NIX_BUILD_SHELL="${pkgs.zsh}/bin/zsh"
       '';
       profileExtra = ''
       '';

From 2917f96631209e50eacba0180bfc73c406698697 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 12:30:20 +0200
Subject: [PATCH 110/124] chore: update lix module

---
 flake.lock | 59 +++++++++++++++++++++++++++++++++++++++++-------------
 flake.nix  |  3 +--
 2 files changed, 46 insertions(+), 16 deletions(-)

diff --git a/flake.lock b/flake.lock
index e425e8b..923b31e 100644
--- a/flake.lock
+++ b/flake.lock
@@ -101,6 +101,24 @@
         "type": "github"
       }
     },
+    "flake-utils_2": {
+      "inputs": {
+        "systems": "systems"
+      },
+      "locked": {
+        "lastModified": 1731533236,
+        "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
     "flakey-profile": {
       "locked": {
         "lastModified": 1712898590,
@@ -174,22 +192,20 @@
     "lix": {
       "flake": false,
       "locked": {
-        "lastModified": 1729298361,
-        "narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=",
-        "rev": "ad9d06f7838a25beec425ff406fe68721fef73be",
+        "lastModified": 1746827285,
+        "narHash": "sha256-hsFe4Tsqqg4l+FfQWphDtjC79WzNCZbEFhHI8j2KJzw=",
+        "rev": "47aad376c87e2e65967f17099277428e4b3f8e5a",
         "type": "tarball",
-        "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be"
+        "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/47aad376c87e2e65967f17099277428e4b3f8e5a.tar.gz?rev=47aad376c87e2e65967f17099277428e4b3f8e5a"
       },
       "original": {
         "type": "tarball",
-        "url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.tar.gz"
+        "url": "https://git.lix.systems/lix-project/lix/archive/2.93.0.tar.gz"
       }
     },
     "lix-module": {
       "inputs": {
-        "flake-utils": [
-          "flake-utils"
-        ],
+        "flake-utils": "flake-utils_2",
         "flakey-profile": "flakey-profile",
         "lix": "lix",
         "nixpkgs": [
@@ -197,15 +213,15 @@
         ]
       },
       "locked": {
-        "lastModified": 1732605668,
-        "narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=",
-        "rev": "f19bd752910bbe3a861c9cad269bd078689d50fe",
+        "lastModified": 1746838955,
+        "narHash": "sha256-11R4K3iAx4tLXjUs+hQ5K90JwDABD/XHhsM9nkeS5N8=",
+        "rev": "cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc",
         "type": "tarball",
-        "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/f19bd752910bbe3a861c9cad269bd078689d50fe.tar.gz?rev=f19bd752910bbe3a861c9cad269bd078689d50fe"
+        "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc.tar.gz?rev=cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc"
       },
       "original": {
         "type": "tarball",
-        "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz"
+        "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz"
       }
     },
     "nixlib": {
@@ -322,7 +338,7 @@
         "nixpkgs": "nixpkgs",
         "nixpkgs-full": "nixpkgs-full",
         "nixpkgs-unstable": "nixpkgs-unstable",
-        "systems": "systems",
+        "systems": "systems_2",
         "treefmt-nix": "treefmt-nix"
       }
     },
@@ -341,6 +357,21 @@
         "type": "github"
       }
     },
+    "systems_2": {
+      "locked": {
+        "lastModified": 1681028828,
+        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+        "owner": "nix-systems",
+        "repo": "default",
+        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-systems",
+        "repo": "default",
+        "type": "github"
+      }
+    },
     "treefmt-nix": {
       "inputs": {
         "nixpkgs": [
diff --git a/flake.nix b/flake.nix
index 8dc1c74..021bc7a 100644
--- a/flake.nix
+++ b/flake.nix
@@ -27,9 +27,8 @@
       inputs.nixpkgs.follows = "nixpkgs";
     };
     lix-module = {
-      url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz";
+      url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz";
       inputs.nixpkgs.follows = "nixpkgs";
-      inputs.flake-utils.follows = "flake-utils";
     };
     nixos-generators = {
       url = "github:nix-community/nixos-generators";

From 8d54f859a0aee4d10f33f5b9d5fe090f1df7745b Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 12:34:06 +0200
Subject: [PATCH 111/124] Revert "fix: bw theme popovers in tmux and helix"

This reverts commit 5acfc7ecdde0627ffbf4827de018b90147f74ef5.
---
 home/modules/helix/config/themes/black.toml | 34 ---------------------
 home/modules/tmux.nix                       |  4 +--
 2 files changed, 2 insertions(+), 36 deletions(-)
 delete mode 100644 home/modules/helix/config/themes/black.toml

diff --git a/home/modules/helix/config/themes/black.toml b/home/modules/helix/config/themes/black.toml
deleted file mode 100644
index 88d1a35..0000000
--- a/home/modules/helix/config/themes/black.toml
+++ /dev/null
@@ -1,34 +0,0 @@
-"ui.background" = {bg="white"}
-"ui.text" = "black"
-"ui.linenr" = {bg="white", fg="black"}
-"ui.linenr.selected" = {bg="white", fg="black"}
-"ui.selection" = {modifiers=["reversed"]}
-"ui.cursorline" = {modifiers=["reversed"]}
-"ui.statusline" = {modifiers=["reversed"]}
-"ui.statusline.inactive" = {fg="black", bg="white"}
-"ui.virtual" = "indent"
-"ui.virtual.ruler" = { bg = "black", fg ="white" }
-"ui.cursor.match" = {modifiers=["reversed"]}
-"ui.cursor" = {modifiers=["reversed"]}
-"ui.debug" = {fg="black"}
-"ui.highlight" = { modifiers = ["underlined"] }
-"ui.highlight.frameline" = {modifiers=["reversed"]}
-"ui.help" = { modifiers=["reversed"] }
-"ui.popup" = { modifiers=["reversed"] }
-"ui.popup.info" = { modifiers=["reversed"] }
-"ui.text.info" = { modifiers=["reversed"] }
-"ui.menu" = { bg="black", fg="white" }
-"ui.menu.selected" = { bg="white", fg="black" }
-"ui.window" = { bg="white" }
-"diagnostic" = { modifiers=["reversed"] }
-"diagnostic.error" = {modifiers=["bold", "underlined"]}
-"diagnostic.warning" = {modifiers=["underlined", "italic"]}
-"diagnostic.hint" = {modifiers=["underlined"]}
-"diagnostic.unnecessary" = {modifiers = ["dim"]}
-"diagnostic.deprecated" = {modifiers = ["crossed_out"]}
-"ui.bufferline" = { fg="black", bg="white" }
-"ui.bufferline.active" = { fg="black", bg="white" }
-
-[palette]
-white = "#ffffff"
-black = "#000000"
diff --git a/home/modules/tmux.nix b/home/modules/tmux.nix
index df005ff..70f2974 100644
--- a/home/modules/tmux.nix
+++ b/home/modules/tmux.nix
@@ -12,17 +12,17 @@ in
   config = mkIf cfg.enable {
     programs.tmux = {
       enable = true;
+      terminal = "tmux-256color";
       extraConfig = ''
         setw -g mode-keys vi
         set -g mouse on
         set -g set-clipboard external
         set -g set-titles on
         set -g status on
+        set -ga terminal-overrides ',*256col*:Tc'
         set-option -g status-interval 5
         set-option -g automatic-rename on
         set-option -g automatic-rename-format '#{b:pane_current_path}'
-        set -g status-bg "#000000"
-        set -g status-fg "#ffffff"
         bind '"' split-window -c "#{pane_current_path}"
         bind % split-window -h -c "#{pane_current_path}"
         bind c new-window -c "#{pane_current_path}"

From 8baeff1f366e91a7a15cd55e43d6a308dac0645b Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 12:34:08 +0200
Subject: [PATCH 112/124] Revert "feat: switch to black on white theme"

This reverts commit cde3f39c11c9e524a4b79fa2dc6ea840b7d26658.
---
 home/default.nix                      | 36 +++++++++++++--------------
 home/modules/alacritty/default.nix    |  2 +-
 home/modules/helix/config/config.toml |  2 +-
 home/modules/zsh.nix                  |  1 -
 4 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/home/default.nix b/home/default.nix
index adeab0b..0a0df48 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -19,24 +19,24 @@ let
     "helix"
   ];
   colors = {
-    background = "ffffff";
-    foreground = "000000";
-    regular0 = "000000";
-    regular1 = "000000";
-    regular2 = "000000";
-    regular3 = "000000";
-    regular4 = "000000";
-    regular5 = "000000";
-    regular6 = "000000";
-    regular7 = "000000";
-    bright0 = "ffffff";
-    bright1 = "ffffff";
-    bright2 = "ffffff";
-    bright3 = "ffffff";
-    bright4 = "ffffff";
-    bright5 = "ffffff";
-    bright6 = "ffffff";
-    bright7 = "ffffff";
+    background = "fdf6e3";
+    foreground = "657b83";
+    regular0 = "eee8d5"; # background darker
+    regular1 = "dc322f"; # red
+    regular2 = "859900"; # green
+    regular3 = "b58900"; # dark orange
+    regular4 = "268bd2"; # azure blue
+    regular5 = "d33682"; # hot pink
+    regular6 = "2aa198"; # petrol
+    regular7 = "073642"; # navy
+    bright0 = "cb4b16"; # orange
+    bright1 = "fdf6e3"; # foreground
+    bright2 = "93a1a1"; # grey
+    bright3 = "839496"; # slightly darker grey
+    bright4 = "657b83"; # even slightly darker grey
+    bright5 = "6c71c4"; # purple
+    bright6 = "586e75"; # pretty dark grey
+    bright7 = "002b36"; # dark navy blue
   };
 in
 {
diff --git a/home/modules/alacritty/default.nix b/home/modules/alacritty/default.nix
index db3db6e..086b945 100644
--- a/home/modules/alacritty/default.nix
+++ b/home/modules/alacritty/default.nix
@@ -17,7 +17,7 @@ in
     programs.alacritty = {
       enable = true;
       settings = {
-        env.TERM = "xterm-mono";
+        env.TERM = "xterm-256color";
         scrolling.history = 0;
         font = {
           size = 9;
diff --git a/home/modules/helix/config/config.toml b/home/modules/helix/config/config.toml
index 71b6c42..41cf786 100644
--- a/home/modules/helix/config/config.toml
+++ b/home/modules/helix/config/config.toml
@@ -1,4 +1,4 @@
-theme = "black"
+theme = "solarized_light"
 
 [editor]
 line-number = "relative"
diff --git a/home/modules/zsh.nix b/home/modules/zsh.nix
index e7f8e57..a095bff 100644
--- a/home/modules/zsh.nix
+++ b/home/modules/zsh.nix
@@ -20,7 +20,6 @@ in
       autocd = true;
       sessionVariables = {
         EDITOR = "hx";
-        TERM = "xterm-mono";
       };
       history = {
         extended = true;

From 787ff188745f410000c3e977a0c8735d29cb3441 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 12:36:19 +0200
Subject: [PATCH 113/124] Revert "chore: make prompt and shell pretty"

This reverts commit 65720489b501597a59b967c073f1bfeb78729140.
---
 home/default.nix | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/home/default.nix b/home/default.nix
index 0a0df48..fd0ddd3 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -403,11 +403,11 @@ in
     bindsym $mod+grave exec busctl --user call org.keepassxc.KeePassXC.MainWindow /keepassxc org.keepassxc.KeePassXC.MainWindow lockAllDatabases && swaylock -c #fdf6e3
 
     # class                 border         backgr.        text           indicator      child_border
-    client.focused          #${background} #${foreground} #${background} #${foreground} #${background}
-    client.focused_inactive #${background} #${background} #${foreground} #${foreground} #${background}
-    client.unfocused        #${background} #${background} #${foreground} #${foreground} #${background}
-    client.urgent           #${background} #${background} #${foreground} #${foreground} #${background}
-    client.placeholder      #${background} #${background} #${foreground} #${foreground} #${background}
+    client.focused          #${bright6}    #${foreground} #${background} #${bright5}    #${regular4}
+    client.focused_inactive #${regular0}   #${regular0}   #${foreground} #${bright5}    #${regular0}
+    client.unfocused        #${regular0}   #${background} #${bright2}    #${bright5}    #${regular0}
+    client.urgent           #${bright1}    #${bright0}    #${regular4}   #${background} #${bright0}
+    client.placeholder      #${background} #${bright2}    #${foreground} #${background} #${bright2}
 
     client.background       #${foreground}
 

From 091c4243fe759d166eecd9757afab5bcf7df7bf4 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 12:38:15 +0200
Subject: [PATCH 114/124] chore: update nixpkgs

---
 flake.lock | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/flake.lock b/flake.lock
index 923b31e..f95384d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -162,11 +162,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1745251259,
-        "narHash": "sha256-Hf8WEJMMoP6Fe+k+PYkVJFk5UKory2S0jW7HqRVqQFc=",
+        "lastModified": 1747439237,
+        "narHash": "sha256-5rCGrnkglKKj4cav1U3HC+SIUNJh08pqOK4spQv9RjA=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "82ee14ff60611b46588ea852f267aafcc117c8c8",
+        "rev": "ae755329092c87369b9e9a1510a8cf1ce2b1c708",
         "type": "github"
       },
       "original": {
@@ -262,11 +262,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1744633460,
-        "narHash": "sha256-fbWE4Xpw6eH0Q6in+ymNuDwTkqmFmtxcQEmtRuKDTTk=",
+        "lastModified": 1747129300,
+        "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "9a049b4a421076d27fee3eec664a18b2066824cb",
+        "rev": "e81fd167b33121269149c57806599045fd33eeed",
         "type": "github"
       },
       "original": {
@@ -278,11 +278,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1744917357,
-        "narHash": "sha256-1Sj8MToixDwakJYNMYBS/PYbg8Oa4CAxreXraMHB5qg=",
+        "lastModified": 1747418223,
+        "narHash": "sha256-DkCYFm09AR2+FPKcT7lD8iIMNXqTdesVvwKpCnqKiYg=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "1eae3268880484be84199bdb77941c09bb4a97ba",
+        "rev": "d6c9326e40bb557ebb8c040b4375590bc06413f8",
         "type": "github"
       },
       "original": {
@@ -294,11 +294,11 @@
     },
     "nixpkgs-full": {
       "locked": {
-        "lastModified": 1744440957,
-        "narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
+        "lastModified": 1747335874,
+        "narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
+        "rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858",
         "type": "github"
       },
       "original": {
@@ -310,11 +310,11 @@
     },
     "nixpkgs-unstable": {
       "locked": {
-        "lastModified": 1744932701,
-        "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=",
+        "lastModified": 1747327360,
+        "narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef",
+        "rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46",
         "type": "github"
       },
       "original": {
@@ -379,11 +379,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1744961264,
-        "narHash": "sha256-aRmUh0AMwcbdjJHnytg1e5h5ECcaWtIFQa6d9gI85AI=",
+        "lastModified": 1747469671,
+        "narHash": "sha256-bo1ptiFoNqm6m1B2iAhJmWCBmqveLVvxom6xKmtuzjg=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "8d404a69efe76146368885110f29a2ca3700bee6",
+        "rev": "ab0378b61b0d85e73a8ab05d5c6029b5bd58c9fb",
         "type": "github"
       },
       "original": {

From 6ca9dde866a27d4e0343a28a8cbc1d8b4ba1fb10 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 12:49:05 +0200
Subject: [PATCH 115/124] chore: update nixpkgs

---
 flake.lock               |  51 ++++++------------
 flake.nix                |   5 +-
 nixos/configurations.nix | 110 +++++++++++++++++++++++----------------
 outputs.nix              |  29 +++++------
 4 files changed, 97 insertions(+), 98 deletions(-)

diff --git a/flake.lock b/flake.lock
index f95384d..e980db7 100644
--- a/flake.lock
+++ b/flake.lock
@@ -277,38 +277,6 @@
       }
     },
     "nixpkgs": {
-      "locked": {
-        "lastModified": 1747418223,
-        "narHash": "sha256-DkCYFm09AR2+FPKcT7lD8iIMNXqTdesVvwKpCnqKiYg=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "d6c9326e40bb557ebb8c040b4375590bc06413f8",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-24.11-small",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs-full": {
-      "locked": {
-        "lastModified": 1747335874,
-        "narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-24.11",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs-unstable": {
       "locked": {
         "lastModified": 1747327360,
         "narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=",
@@ -324,6 +292,22 @@
         "type": "github"
       }
     },
+    "nixpkgs-small": {
+      "locked": {
+        "lastModified": 1747452614,
+        "narHash": "sha256-hSEz6JHZTJJTeIudt0SK3UoZnfThHwKCUGvSe5/zn8g=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "e067fb89ac3e59f993f257c799318132f1492f01",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "nixos-unstable-small",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
     "root": {
       "inputs": {
         "agenix": "agenix",
@@ -336,8 +320,7 @@
         "nixos-generators": "nixos-generators",
         "nixos-hardware": "nixos-hardware",
         "nixpkgs": "nixpkgs",
-        "nixpkgs-full": "nixpkgs-full",
-        "nixpkgs-unstable": "nixpkgs-unstable",
+        "nixpkgs-small": "nixpkgs-small",
         "systems": "systems_2",
         "treefmt-nix": "treefmt-nix"
       }
diff --git a/flake.nix b/flake.nix
index 021bc7a..ec49fa2 100644
--- a/flake.nix
+++ b/flake.nix
@@ -2,9 +2,8 @@
   description = "dadada's nix flake";
 
   inputs = {
-    nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11-small";
-    nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
-    nixpkgs-full.url = "github:NixOS/nixpkgs/nixos-24.11";
+    nixpkgs-small.url = "github:NixOS/nixpkgs/nixos-unstable-small";
+    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
     flake-utils = {
       url = "github:numtide/flake-utils";
       inputs.systems.follows = "systems";
diff --git a/nixos/configurations.nix b/nixos/configurations.nix
index 48d70cd..497a7bf 100644
--- a/nixos/configurations.nix
+++ b/nixos/configurations.nix
@@ -1,32 +1,42 @@
-{ self
-, agenix
-, lix-module
-, nixpkgs
-, nixpkgs-full
-, home-manager
-, homepage
-, nixos-hardware
-, nixos-generators
-, nixpkgs-unstable
-, ...
+{
+  self,
+  agenix,
+  home-manager,
+  homepage,
+  lix-module,
+  nixos-hardware,
+  nixos-generators,
+  nixpkgs,
+  nixpkgs-small,
+  ...
 }@inputs:
 let
   lixModule = lix-module.nixosModules.default;
 
-  nixosSystem = { n_nixpkgs ? nixpkgs, system ? "x86_64-linux", extraModules ? [ ] }: n_nixpkgs.lib.nixosSystem {
-    inherit system;
+  nixosSystem =
+    {
+      nixpkgs,
+      system ? "x86_64-linux",
+      extraModules ? [ ],
+    }:
+    nixpkgs.lib.nixosSystem {
+      inherit system;
 
-    modules = [
-      lixModule
-      {
-        nixpkgs.overlays = n_nixpkgs.lib.attrValues self.overlays;
-      }
-    ] ++ (n_nixpkgs.lib.attrValues self.nixosModules) ++ [ agenix.nixosModules.age ] ++ extraModules;
-  };
+      modules =
+        [
+          lixModule
+          {
+            nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays;
+          }
+        ]
+        ++ (nixpkgs.lib.attrValues self.nixosModules)
+        ++ [ agenix.nixosModules.age ]
+        ++ extraModules;
+    };
 in
 {
   gorgon = nixosSystem rec {
-    n_nixpkgs = nixpkgs-unstable;
+    nixpkgs = nixpkgs;
 
     system = "x86_64-linux";
 
@@ -34,13 +44,16 @@ in
       {
         nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays;
         dadada.pkgs = self.packages.${system};
-        dadada.inputs = inputs // { dadada = self; };
+        dadada.inputs = inputs // {
+          dadada = self;
+        };
       }
 
       nixos-hardware.nixosModules.lenovo-thinkpad-t14s-amd-gen1
 
       home-manager.nixosModules.home-manager
-      ({ pkgs, lib, ... }:
+      (
+        { pkgs, lib, ... }:
         {
           home-manager.useGlobalPkgs = true;
           home-manager.useUserPackages = true;
@@ -49,12 +62,14 @@ in
             { manual.manpages.enable = false; }
           ];
           home-manager.users.dadada = import ../home;
-        })
+        }
+      )
       ./gorgon/configuration.nix
     ];
   };
 
   surgat = nixosSystem {
+    nixpkgs = nixpkgs-small;
     system = "x86_64-linux";
     extraModules = [
       {
@@ -66,34 +81,39 @@ in
   };
 
   agares = nixosSystem {
+    nixpkgs = nixpkgs-small;
     extraModules = [
       ./agares/configuration.nix
     ];
   };
 
-  installer = nixpkgs.lib.nixosSystem {
-    system = "x86_64-linux";
-    modules = [
-      lixModule
-      nixos-generators.nixosModules.install-iso
-      self.nixosModules.admin
-      {
-        isoImage.isoName = nixpkgs.lib.mkForce "dadada-nixos-installer.iso";
-        networking.tempAddresses = "disabled";
-        dadada.admin.enable = true;
-        documentation.enable = true;
-        documentation.nixos.enable = true;
-        i18n.defaultLocale = "en_US.UTF-8";
-        console = {
-          font = "Lat2-Terminus16";
-          keyMap = "us";
-        };
-      }
-    ];
-  };
+  installer =
+    let
+      nixpkgs = nixpkgs-small;
+    in
+    nixpkgs.lib.nixosSystem {
+      system = "x86_64-linux";
+      modules = [
+        lixModule
+        nixos-generators.nixosModules.install-iso
+        self.nixosModules.admin
+        {
+          isoImage.isoName = nixpkgs.lib.mkForce "dadada-nixos-installer.iso";
+          networking.tempAddresses = "disabled";
+          dadada.admin.enable = true;
+          documentation.enable = true;
+          documentation.nixos.enable = true;
+          i18n.defaultLocale = "en_US.UTF-8";
+          console = {
+            font = "Lat2-Terminus16";
+            keyMap = "us";
+          };
+        }
+      ];
+    };
 
   ninurta = nixosSystem {
-    n_nixpkgs = nixpkgs-full;
+    nixpkgs = nixpkgs-small;
     extraModules = [
       ./ninurta/configuration.nix
     ];
diff --git a/outputs.nix b/outputs.nix
index efa3dab..d588f6e 100644
--- a/outputs.nix
+++ b/outputs.nix
@@ -1,18 +1,14 @@
 # Adapted from Mic92/dotfiles
-{ self
-, flake-utils
-, flake-registry
-, homepage
-, lix-module
-, nixpkgs
-, home-manager
-, nixos-hardware
-, nixpkgs-full
-, agenix
-, devshell
-, ...
-} @ inputs:
-(flake-utils.lib.eachDefaultSystem (system:
+{
+  self,
+  flake-utils,
+  nixpkgs,
+  agenix,
+  devshell,
+  ...
+}@inputs:
+(flake-utils.lib.eachDefaultSystem (
+  system:
   let
     pkgs = import nixpkgs { inherit system; };
   in
@@ -35,8 +31,9 @@
     packages = import ./pkgs { inherit pkgs; } // {
       installer-iso = self.nixosConfigurations.installer.config.system.build.isoImage;
     };
-  }))
-  // {
+  }
+))
+// {
 
   hmModules = import ./home/modules.nix { lib = nixpkgs.lib; };
 

From 0d892a1b7e0a6867e5f6f80777819c64056c0288 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 13:05:33 +0200
Subject: [PATCH 116/124] feat: switch to lix from nixpkgs

---
 flake.lock                      | 86 +--------------------------------
 flake.nix                       |  4 --
 nixos/configurations.nix        | 65 ++++++++++++-------------
 nixos/modules/profiles/base.nix |  4 +-
 4 files changed, 35 insertions(+), 124 deletions(-)

diff --git a/flake.lock b/flake.lock
index e980db7..8a95fce 100644
--- a/flake.lock
+++ b/flake.lock
@@ -101,39 +101,6 @@
         "type": "github"
       }
     },
-    "flake-utils_2": {
-      "inputs": {
-        "systems": "systems"
-      },
-      "locked": {
-        "lastModified": 1731533236,
-        "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "type": "github"
-      }
-    },
-    "flakey-profile": {
-      "locked": {
-        "lastModified": 1712898590,
-        "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
-        "owner": "lf-",
-        "repo": "flakey-profile",
-        "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
-        "type": "github"
-      },
-      "original": {
-        "owner": "lf-",
-        "repo": "flakey-profile",
-        "type": "github"
-      }
-    },
     "home-manager": {
       "inputs": {
         "nixpkgs": [
@@ -189,41 +156,6 @@
         "url": "https://git.dadada.li/dadada/dadada.li/archive/main.tar.gz"
       }
     },
-    "lix": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1746827285,
-        "narHash": "sha256-hsFe4Tsqqg4l+FfQWphDtjC79WzNCZbEFhHI8j2KJzw=",
-        "rev": "47aad376c87e2e65967f17099277428e4b3f8e5a",
-        "type": "tarball",
-        "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/47aad376c87e2e65967f17099277428e4b3f8e5a.tar.gz?rev=47aad376c87e2e65967f17099277428e4b3f8e5a"
-      },
-      "original": {
-        "type": "tarball",
-        "url": "https://git.lix.systems/lix-project/lix/archive/2.93.0.tar.gz"
-      }
-    },
-    "lix-module": {
-      "inputs": {
-        "flake-utils": "flake-utils_2",
-        "flakey-profile": "flakey-profile",
-        "lix": "lix",
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1746838955,
-        "narHash": "sha256-11R4K3iAx4tLXjUs+hQ5K90JwDABD/XHhsM9nkeS5N8=",
-        "rev": "cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc",
-        "type": "tarball",
-        "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc.tar.gz?rev=cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc"
-      },
-      "original": {
-        "type": "tarball",
-        "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz"
-      }
-    },
     "nixlib": {
       "locked": {
         "lastModified": 1736643958,
@@ -316,12 +248,11 @@
         "flake-utils": "flake-utils",
         "home-manager": "home-manager_2",
         "homepage": "homepage",
-        "lix-module": "lix-module",
         "nixos-generators": "nixos-generators",
         "nixos-hardware": "nixos-hardware",
         "nixpkgs": "nixpkgs",
         "nixpkgs-small": "nixpkgs-small",
-        "systems": "systems_2",
+        "systems": "systems",
         "treefmt-nix": "treefmt-nix"
       }
     },
@@ -340,21 +271,6 @@
         "type": "github"
       }
     },
-    "systems_2": {
-      "locked": {
-        "lastModified": 1681028828,
-        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
-        "owner": "nix-systems",
-        "repo": "default",
-        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-systems",
-        "repo": "default",
-        "type": "github"
-      }
-    },
     "treefmt-nix": {
       "inputs": {
         "nixpkgs": [
diff --git a/flake.nix b/flake.nix
index ec49fa2..05f7349 100644
--- a/flake.nix
+++ b/flake.nix
@@ -25,10 +25,6 @@
       url = "github:numtide/devshell";
       inputs.nixpkgs.follows = "nixpkgs";
     };
-    lix-module = {
-      url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
     nixos-generators = {
       url = "github:nix-community/nixos-generators";
       inputs.nixpkgs.follows = "nixpkgs";
diff --git a/nixos/configurations.nix b/nixos/configurations.nix
index 497a7bf..adacb51 100644
--- a/nixos/configurations.nix
+++ b/nixos/configurations.nix
@@ -3,7 +3,6 @@
   agenix,
   home-manager,
   homepage,
-  lix-module,
   nixos-hardware,
   nixos-generators,
   nixpkgs,
@@ -11,8 +10,6 @@
   ...
 }@inputs:
 let
-  lixModule = lix-module.nixosModules.default;
-
   nixosSystem =
     {
       nixpkgs,
@@ -24,7 +21,6 @@ let
 
       modules =
         [
-          lixModule
           {
             nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays;
           }
@@ -35,38 +31,40 @@ let
     };
 in
 {
-  gorgon = nixosSystem rec {
-    nixpkgs = nixpkgs;
+  gorgon =
+    let
+      system = "x86_64-linux";
+    in
+    nixosSystem {
+      inherit nixpkgs system;
 
-    system = "x86_64-linux";
-
-    extraModules = [
-      {
-        nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays;
-        dadada.pkgs = self.packages.${system};
-        dadada.inputs = inputs // {
-          dadada = self;
-        };
-      }
-
-      nixos-hardware.nixosModules.lenovo-thinkpad-t14s-amd-gen1
-
-      home-manager.nixosModules.home-manager
-      (
-        { pkgs, lib, ... }:
+      extraModules = [
         {
-          home-manager.useGlobalPkgs = true;
-          home-manager.useUserPackages = true;
-          home-manager.sharedModules = (nixpkgs.lib.attrValues self.hmModules) ++ [
-            { dadada.home.helix.package = pkgs.helix; }
-            { manual.manpages.enable = false; }
-          ];
-          home-manager.users.dadada = import ../home;
+          nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays;
+          dadada.pkgs = self.packages.${system};
+          dadada.inputs = inputs // {
+            dadada = self;
+          };
         }
-      )
-      ./gorgon/configuration.nix
-    ];
-  };
+
+        nixos-hardware.nixosModules.lenovo-thinkpad-t14s-amd-gen1
+
+        home-manager.nixosModules.home-manager
+        (
+          { pkgs, lib, ... }:
+          {
+            home-manager.useGlobalPkgs = true;
+            home-manager.useUserPackages = true;
+            home-manager.sharedModules = (nixpkgs.lib.attrValues self.hmModules) ++ [
+              { dadada.home.helix.package = pkgs.helix; }
+              { manual.manpages.enable = false; }
+            ];
+            home-manager.users.dadada = import ../home;
+          }
+        )
+        ./gorgon/configuration.nix
+      ];
+    };
 
   surgat = nixosSystem {
     nixpkgs = nixpkgs-small;
@@ -94,7 +92,6 @@ in
     nixpkgs.lib.nixosSystem {
       system = "x86_64-linux";
       modules = [
-        lixModule
         nixos-generators.nixosModules.install-iso
         self.nixosModules.admin
         {
diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix
index e375cc9..c23a273 100644
--- a/nixos/modules/profiles/base.nix
+++ b/nixos/modules/profiles/base.nix
@@ -1,4 +1,4 @@
-{ config, lib, ... }:
+{ config, lib, pkgs, ... }:
 let
   mkDefault = lib.mkDefault;
   inputs = config.dadada.inputs;
@@ -22,6 +22,8 @@ in
 
   time.timeZone = mkDefault "Europe/Berlin";
 
+  nix.package = pkgs.lix;
+
   nix.settings.substituters = [ https://cache.nixos.org/ ];
 
   nix.settings.trusted-public-keys = [

From cb69d8edb0a321d9069e3fe2f1a95745d783c927 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 13:43:46 +0200
Subject: [PATCH 117/124] fix: set maximum log retention to 100 days

---
 nixos/modules/profiles/server.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/nixos/modules/profiles/server.nix b/nixos/modules/profiles/server.nix
index d26358c..1aeab43 100644
--- a/nixos/modules/profiles/server.nix
+++ b/nixos/modules/profiles/server.nix
@@ -20,6 +20,7 @@ with lib; {
 
   services.journald.extraConfig = ''
     SystemKeepFree = 2G
+    MaxRetentionSec = 100days
   '';
 
   system.autoUpgrade = {

From 33bc06ee109b9798676f0c6e192f5000ff7fffe3 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 14:01:36 +0200
Subject: [PATCH 118/124] fix(surgat): ssh initrd unlock

---
 nixos/modules/profiles/cloud.nix               |   4 ++--
 secrets/secrets.nix                            |   1 +
 secrets/surgat-initrd-ssh_host_ed25519_key.age | Bin 0 -> 820 bytes
 3 files changed, 3 insertions(+), 2 deletions(-)
 create mode 100644 secrets/surgat-initrd-ssh_host_ed25519_key.age

diff --git a/nixos/modules/profiles/cloud.nix b/nixos/modules/profiles/cloud.nix
index 98314c7..86e2c74 100644
--- a/nixos/modules/profiles/cloud.nix
+++ b/nixos/modules/profiles/cloud.nix
@@ -1,7 +1,7 @@
 { config, lib, ... }:
 let
   secretsPath = config.dadada.secrets.path;
-  initrdHostKey = "${config.networking.hostName}-ssh_host_ed25519_key";
+  initrdHostKey = "${config.networking.hostName}-initrd-ssh_host_ed25519_key";
 in
 {
   boot.initrd.availableKernelModules = [ "virtio-pci" ];
@@ -9,7 +9,7 @@ in
     enable = true;
     ssh = {
       enable = true;
-      port = 22;
+      port = 2223;
       hostKeys = [
         config.age.secrets."${initrdHostKey}".path
       ];
diff --git a/secrets/secrets.nix b/secrets/secrets.nix
index 7da57e3..d1a5265 100644
--- a/secrets/secrets.nix
+++ b/secrets/secrets.nix
@@ -21,6 +21,7 @@ in
   "miniflux-admin-credentials.age".publicKeys = [ systems.surgat dadada ];
   "gorgon-backup-passphrase-gs.age".publicKeys = [ systems.gorgon dadada ];
   "paperless.age".publicKeys = [ systems.gorgon dadada ];
+  "surgat-initrd-ssh_host_ed25519_key.age".publicKeys = [ systems.surgat dadada ];
   "surgat-ssh_host_ed25519_key.age".publicKeys = [ systems.surgat dadada ];
   "ninurta-initrd-ssh-key.age".publicKeys = [ systems.ninurta dadada ];
   "ddns-credentials.age".publicKeys = [ systems.agares systems.ninurta dadada ];
diff --git a/secrets/surgat-initrd-ssh_host_ed25519_key.age b/secrets/surgat-initrd-ssh_host_ed25519_key.age
new file mode 100644
index 0000000000000000000000000000000000000000..32dbcbf2ce1b0961f179ad26bb2a5577f8e340cc
GIT binary patch
literal 820
zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCU73iZz_C|4+tGRfCZ
z&d5sgGR!W_3CeS>Dl|^bjxsE-axG0RjLa=_3OB3DF3?X8jN~#X4lm3t^e)eL^GHt%
z@isRt&#H*hFUTq`3~<(t(zb{QGRexy^RsYvE=RY`za%>+yIjFFE!W4nFd$evIVZB%
zE4#=z(%3E2J0#U3IUuvrE3nu!Afz(I$IQgfJ(;V*JS5fMH6Xy>Fgz^F+a=e}O*_Ri
zDLmB3IbFLdBiC2IA}}H^*wMKnDjj5-j&6EUYGQG!LVk^RY!+9cW0Y}rhL1t2g=2U|
zdX#f<L3p59j!BBXk6F03Wual9ziE<wPN{xqsz+6nTbX6KsiS_RUsg$`Z&-#=zLOzW
zWmal|o3>MdPiB~zkGUt8uCA^^sG(y?QfYZensa1UWm=YgK&8HMVs@a9si8}iUx`O}
zmVvWDa8ZF_aYZE813kM3k1ORHde^><Uum*G)XzpM(q~u7)rle%r>FMMQs`M%E25m8
zrf<$7t1UjO@xAcLnVW2u?cfU+**y21(FLiW-|v39@qB*&kLfqhSh1E1Gs%Bz`t>Tr
zBP3UyThds-|5-%9#B2+F?yXNJueQsZ-Mr6&^Obhkl_gHQEJL<*MQDnse_Wr_7RS%a
z{_yj>dv|V3pD=fdd*xpqcbjvb>%V-MTE1qt!ZUfXA1i)ueREBJZlGyprG)>wX!%=W
zJGyng-?=lXOYi5d<LUy_-#CgX%~)x5K8|}4Kg-_FYw9>F9ZO&NU2D_HH3{TdTKKN5
zXun#`e);h59lSp{KE9|6e=4~7vQOC0@3U{}mj7RHOLY3bEzyZw=6l|A8wHB3nsQ0$
z#e4_e_%COpJC|6rI~>hyTxXW4737q0n5UmvcS<z-Q)a#cJA*!WDIVIjTx)5eL&nKx
zW(V$GRD6Cq*1+!1|LJ-6J}h!_d*)^RYr)ga`HrfG@3%TvPFgzstHwc*lW7*2O#!v*
zj_tX~QCO?t_TWNcS>j&j^OB~_+z$Mn$L}z(6)!BRj@;_6pb~8|)hvRk+-ikQ<q-f$
C5Kg!N

literal 0
HcmV?d00001


From 0c12c8de3590fb4931fc1eb3a725c3eeaf00ee00 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sat, 17 May 2025 15:02:31 +0200
Subject: [PATCH 119/124] fix(surgat): initrd networking

---
 nixos/modules/profiles/cloud.nix               |  17 +++++++++++++++--
 nixos/surgat/configuration.nix                 |   4 ++++
 ... => initrd-surgat-ssh_host_ed25519_key.age} | Bin
 secrets/secrets.nix                            |   2 +-
 4 files changed, 20 insertions(+), 3 deletions(-)
 rename secrets/{surgat-initrd-ssh_host_ed25519_key.age => initrd-surgat-ssh_host_ed25519_key.age} (100%)

diff --git a/nixos/modules/profiles/cloud.nix b/nixos/modules/profiles/cloud.nix
index 86e2c74..ba131e1 100644
--- a/nixos/modules/profiles/cloud.nix
+++ b/nixos/modules/profiles/cloud.nix
@@ -1,10 +1,18 @@
 { config, lib, ... }:
 let
   secretsPath = config.dadada.secrets.path;
-  initrdHostKey = "${config.networking.hostName}-initrd-ssh_host_ed25519_key";
+  initrdHostKey = "${config.networking.hostName}-ssh_host_ed25519_key";
 in
 {
   boot.initrd.availableKernelModules = [ "virtio-pci" ];
+
+  boot.kernelParams = [
+    # Wait forever for the filesystem root to show up
+    "rootflags=x-systemd.device-timeout=0"
+
+    # Wait forever to enter the LUKS passphrase via SSH
+    "rd.luks.options=timeout=0"
+  ];
   boot.initrd.network = {
     enable = true;
     ssh = {
@@ -27,8 +35,13 @@ in
     '';
   };
 
+  assertions = lib.singleton {
+    assertion = (config.boot.initrd.network.ssh.hostKeys != [ ]) -> config.boot.loader.supportsInitrdSecrets == true;
+    message = "Refusing to store private keys in store";
+  };
+
   age.secrets."${initrdHostKey}" = {
-    file = "${secretsPath}/${initrdHostKey}.age";
+    file = "${secretsPath}/initrd-${initrdHostKey}.age";
     mode = "600";
     path = "/etc/initrd/${initrdHostKey}";
     symlink = false;
diff --git a/nixos/surgat/configuration.nix b/nixos/surgat/configuration.nix
index 6dad1ee..f2c7ba2 100644
--- a/nixos/surgat/configuration.nix
+++ b/nixos/surgat/configuration.nix
@@ -137,6 +137,10 @@ in
   boot.loader.grub.enable = true;
   boot.loader.grub.device = "/dev/sda";
 
+  boot.kernelParams = [
+    "ip=49.12.3.98::172.31.1.1:255.255.255.255:surgat::dhcp"
+  ];
+
   services.resolved = {
     enable = true;
     fallbackDns = [ "9.9.9.9" "2620:fe::fe" ];
diff --git a/secrets/surgat-initrd-ssh_host_ed25519_key.age b/secrets/initrd-surgat-ssh_host_ed25519_key.age
similarity index 100%
rename from secrets/surgat-initrd-ssh_host_ed25519_key.age
rename to secrets/initrd-surgat-ssh_host_ed25519_key.age
diff --git a/secrets/secrets.nix b/secrets/secrets.nix
index d1a5265..946d855 100644
--- a/secrets/secrets.nix
+++ b/secrets/secrets.nix
@@ -21,7 +21,7 @@ in
   "miniflux-admin-credentials.age".publicKeys = [ systems.surgat dadada ];
   "gorgon-backup-passphrase-gs.age".publicKeys = [ systems.gorgon dadada ];
   "paperless.age".publicKeys = [ systems.gorgon dadada ];
-  "surgat-initrd-ssh_host_ed25519_key.age".publicKeys = [ systems.surgat dadada ];
+  "initrd-surgat-ssh_host_ed25519_key.age".publicKeys = [ systems.surgat dadada ];
   "surgat-ssh_host_ed25519_key.age".publicKeys = [ systems.surgat dadada ];
   "ninurta-initrd-ssh-key.age".publicKeys = [ systems.ninurta dadada ];
   "ddns-credentials.age".publicKeys = [ systems.agares systems.ninurta dadada ];

From 22a525b5b39f8b1231d1db5c959f9a3ee2bf1fc0 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 25 May 2025 14:35:05 +0200
Subject: [PATCH 120/124] feat: switch to KDE

---
 home/default.nix               |  4 ++--
 nixos/gorgon/configuration.nix | 23 +++++++++++++++--------
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/home/default.nix b/home/default.nix
index fd0ddd3..a21362c 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -10,7 +10,7 @@ let
     "direnv"
     "git"
     "gpg"
-    "gtk"
+    #"gtk"
     #"keyring"
     "syncthing"
     "tmux"
@@ -432,7 +432,7 @@ in
     }
   '';
 
-  services.poweralertd.enable = true;
+  #services.poweralertd.enable = true;
 
   # Let Home Manager install and manage itself.
   programs.home-manager.enable = true;
diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index 339f8f4..13b861a 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -145,8 +145,12 @@ in
     dmenu
     grim # screenshot functionality
     slurp # screenshot functionality
-    mako # notification system developed by swaywm maintainer
+    #mako # notification system developed by swaywm maintainer
     pulseaudio
+
+    # KDE apps
+    kdePackages.kmail
+    kdePackages.kmail-account-wizard
   ];
 
   networking.firewall = {
@@ -195,11 +199,14 @@ in
   services.gnome.gnome-keyring.enable = lib.mkForce false;
   programs.gnupg.agent.enable = true;
 
-  #services.xserver.enable = true;
-  #services.xserver.desktopManager.gnome.enable = true;
-  #services.xserver.displayManager.gdm.enable = true;
+  # KDE
+  services = {
+    desktopManager.plasma6.enable = true;
+    displayManager.sddm.enable = true;
+    displayManager.sddm.wayland.enable = true;
+  };
   services.greetd = {
-    enable = true;
+    enable = false;
     settings = {
       default_session = {
         command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway";
@@ -208,7 +215,7 @@ in
     };
   };
   systemd.user.services.kanshi = {
-    enable = true;
+    enable = false;
     description = "kanshi daemon";
     environment = {
       WAYLAND_DISPLAY = "wayland-1";
@@ -221,11 +228,11 @@ in
   };
   # enable Sway window manager
   programs.sway = {
-    enable = true;
+    enable = false;
     wrapperFeatures.gtk = true;
   };
   programs.light.enable = true;
-  xdg.portal.wlr.enable = true;
+  xdg.portal.wlr.enable = false;
   hardware.bluetooth.enable = true;
 
   hardware.opengl = {

From 74fd474e4a149b37682b2d2a0f1c892e10cbd548 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 25 May 2025 14:45:18 +0200
Subject: [PATCH 121/124] fix: put tmps into RAM

---
 nixos/modules/profiles/base.nix | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix
index c23a273..bc08040 100644
--- a/nixos/modules/profiles/base.nix
+++ b/nixos/modules/profiles/base.nix
@@ -8,6 +8,9 @@ in
     ./upgrade-pg-cluster.nix
   ];
 
+  boot.tmp.useTmpfs = true;
+  boot.tmp.tmpfsSize = "50%";
+
   i18n.defaultLocale = mkDefault "en_US.UTF-8";
   console = mkDefault {
     font = "Lat2-Terminus16";

From b638c4125bab3d11aaa29a76f09c769370c095f0 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 3 Jun 2025 19:51:43 +0200
Subject: [PATCH 122/124] chore: update dependencies

---
 flake.lock | 63 +++++++++++++++++++++++++++++++++---------------------
 flake.nix  |  2 +-
 2 files changed, 40 insertions(+), 25 deletions(-)

diff --git a/flake.lock b/flake.lock
index 8a95fce..41a9b46 100644
--- a/flake.lock
+++ b/flake.lock
@@ -6,19 +6,19 @@
         "home-manager": "home-manager",
         "nixpkgs": [
           "nixpkgs"
-        ]
+        ],
+        "systems": "systems"
       },
       "locked": {
-        "lastModified": 1703089996,
-        "narHash": "sha256-ipqShkBmHKC9ft1ZAsA6aeKps32k7+XZSPwfxeHLsAU=",
+        "lastModified": 1747575206,
+        "narHash": "sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY+D81k=",
         "owner": "ryantm",
         "repo": "agenix",
-        "rev": "564595d0ad4be7277e07fa63b5a991b3c645655d",
+        "rev": "4835b1dc898959d8547a871ef484930675cb47f1",
         "type": "github"
       },
       "original": {
         "owner": "ryantm",
-        "ref": "0.15.0",
         "repo": "agenix",
         "type": "github"
       }
@@ -129,11 +129,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1747439237,
-        "narHash": "sha256-5rCGrnkglKKj4cav1U3HC+SIUNJh08pqOK4spQv9RjA=",
+        "lastModified": 1748955489,
+        "narHash": "sha256-OmZXyW2g5qIuo5Te74McwR0TwauCO2sF3/SjGDVuxyg=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "ae755329092c87369b9e9a1510a8cf1ce2b1c708",
+        "rev": "bb846c031be68a96466b683be32704ef6e07b159",
         "type": "github"
       },
       "original": {
@@ -179,11 +179,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742568034,
-        "narHash": "sha256-QaMEhcnscfF2MqB7flZr+sLJMMYZPnvqO4NYf9B4G38=",
+        "lastModified": 1747663185,
+        "narHash": "sha256-Obh50J+O9jhUM/FgXtI3he/QRNiV9+J53+l+RlKSaAk=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "42ee229088490e3777ed7d1162cb9e9d8c3dbb11",
+        "rev": "ee07ba0d36c38e9915c55d2ac5a8fb0f05f2afcc",
         "type": "github"
       },
       "original": {
@@ -194,11 +194,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1747129300,
-        "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=",
+        "lastModified": 1748942041,
+        "narHash": "sha256-HEu2gTct7nY0tAPRgBtqYepallryBKR1U8B4v2zEEqA=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "e81fd167b33121269149c57806599045fd33eeed",
+        "rev": "fc7c4714125cfaa19b048e8aaf86b9c53e04d853",
         "type": "github"
       },
       "original": {
@@ -210,11 +210,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1747327360,
-        "narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=",
+        "lastModified": 1748693115,
+        "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46",
+        "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
         "type": "github"
       },
       "original": {
@@ -226,11 +226,11 @@
     },
     "nixpkgs-small": {
       "locked": {
-        "lastModified": 1747452614,
-        "narHash": "sha256-hSEz6JHZTJJTeIudt0SK3UoZnfThHwKCUGvSe5/zn8g=",
+        "lastModified": 1748942227,
+        "narHash": "sha256-U1oNpFoDO7QaO4iHsue7atK/5mJy7U1Y37mLU/SRk0o=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "e067fb89ac3e59f993f257c799318132f1492f01",
+        "rev": "7ab490624e297ff96f52858bb32b504516b8bb61",
         "type": "github"
       },
       "original": {
@@ -252,7 +252,7 @@
         "nixos-hardware": "nixos-hardware",
         "nixpkgs": "nixpkgs",
         "nixpkgs-small": "nixpkgs-small",
-        "systems": "systems",
+        "systems": "systems_2",
         "treefmt-nix": "treefmt-nix"
       }
     },
@@ -271,6 +271,21 @@
         "type": "github"
       }
     },
+    "systems_2": {
+      "locked": {
+        "lastModified": 1681028828,
+        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+        "owner": "nix-systems",
+        "repo": "default",
+        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-systems",
+        "repo": "default",
+        "type": "github"
+      }
+    },
     "treefmt-nix": {
       "inputs": {
         "nixpkgs": [
@@ -278,11 +293,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1747469671,
-        "narHash": "sha256-bo1ptiFoNqm6m1B2iAhJmWCBmqveLVvxom6xKmtuzjg=",
+        "lastModified": 1748243702,
+        "narHash": "sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "ab0378b61b0d85e73a8ab05d5c6029b5bd58c9fb",
+        "rev": "1f3f7b784643d488ba4bf315638b2b0a4c5fb007",
         "type": "github"
       },
       "original": {
diff --git a/flake.nix b/flake.nix
index 05f7349..801e5a2 100644
--- a/flake.nix
+++ b/flake.nix
@@ -18,7 +18,7 @@
       flake = false;
     };
     agenix = {
-      url = "github:ryantm/agenix/0.15.0";
+      url = "github:ryantm/agenix";
       inputs.nixpkgs.follows = "nixpkgs";
     };
     devshell = {

From 1402ee13cc3454cf1634626aa7e80fe3c7e6f33a Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Tue, 3 Jun 2025 20:04:44 +0200
Subject: [PATCH 123/124] chore: reformat

---
 checks.nix                                    |  24 +--
 flake.nix                                     |   2 +-
 home/dconf.nix                                |  21 ++-
 home/modules.nix                              |  15 +-
 home/modules/alacritty/default.nix            |  12 +-
 home/modules/colors.nix                       |  10 +-
 home/modules/direnv.nix                       |  12 +-
 home/modules/git.nix                          |  12 +-
 home/modules/gpg.nix                          |  10 +-
 home/modules/gtk.nix                          |  12 +-
 home/modules/helix/default.nix                |   7 +-
 home/modules/keyring.nix                      |  10 +-
 home/modules/session.nix                      |  10 +-
 home/modules/ssh.nix                          |  10 +-
 home/modules/syncthing.nix                    |  12 +-
 home/modules/tmux.nix                         |  10 +-
 home/modules/xdg.nix                          |  12 +-
 home/modules/zsh.nix                          |  15 +-
 home/nixpkgs-config.nix                       |   3 +-
 home/pkgs.nix                                 |   8 +-
 hydra-jobs.nix                                |   7 +-
 nixos/agares/configuration.nix                |  23 ++-
 nixos/agares/dns.nix                          |   5 +-
 nixos/agares/network.nix                      |  63 ++++---
 nixos/agares/ppp.nix                          |   7 +-
 nixos/gorgon/configuration.nix                |  59 +++++--
 nixos/gorgon/hardware-configuration.nix       |  23 ++-
 nixos/modules/admin.nix                       |  56 +++---
 nixos/modules/backup.nix                      |  12 +-
 nixos/modules/borg-server.nix                 |  27 ++-
 nixos/modules/ddns.nix                        | 104 ++++++-----
 nixos/modules/default.nix                     |  18 +-
 nixos/modules/element.nix                     |   9 +-
 nixos/modules/fileShare.nix                   |  10 +-
 nixos/modules/gitea.nix                       |   9 +-
 nixos/modules/headphones.nix                  |  12 +-
 nixos/modules/homepage.nix                    |  10 +-
 nixos/modules/inputs.nix                      |   9 +-
 nixos/modules/profiles/backup.nix             |   6 +-
 nixos/modules/profiles/base.nix               |  15 +-
 nixos/modules/profiles/cloud.nix              |  19 +-
 nixos/modules/profiles/laptop.nix             |  13 +-
 nixos/modules/profiles/server.nix             |  16 +-
 nixos/modules/profiles/upgrade-pg-cluster.nix |   7 +-
 nixos/modules/share.nix                       |  12 +-
 nixos/modules/steam.nix                       |  12 +-
 nixos/modules/vpnServer.nix                   |  57 +++---
 nixos/modules/weechat.nix                     |  12 +-
 nixos/modules/yubikey.nix                     |  12 +-
 nixos/ninurta/configuration.nix               |  91 +++++++---
 nixos/ninurta/hardware-configuration.nix      | 166 ++++++++++--------
 nixos/surgat/configuration.nix                |  53 ++++--
 nixos/surgat/hardware-configuration.nix       |  22 ++-
 outputs.nix                                   |   2 +-
 overlays.nix                                  |   3 +-
 pkgs/default.nix                              |   3 +-
 secrets/secrets.nix                           | 100 ++++++++---
 57 files changed, 845 insertions(+), 466 deletions(-)

diff --git a/checks.nix b/checks.nix
index 65d3493..9505c35 100644
--- a/checks.nix
+++ b/checks.nix
@@ -1,20 +1,20 @@
-{ self
-, flake-utils
-, nixpkgs
-, ...
+{
+  self,
+  flake-utils,
+  nixpkgs,
+  ...
 }:
-(flake-utils.lib.eachDefaultSystem (system:
+(flake-utils.lib.eachDefaultSystem (
+  system:
   let
     pkgs = nixpkgs.legacyPackages.${system};
     formatter = self.formatter.${system};
   in
   {
     checks = {
-      format = pkgs.runCommand
-        "check-format"
-        {
-          buildInputs = [ formatter ];
-        }
-        "${formatter}/bin/nixpkgs-fmt --check ${./.} && touch $out";
+      format = pkgs.runCommand "check-format" {
+        buildInputs = [ formatter ];
+      } "${formatter}/bin/nixpkgs-fmt --check ${./.} && touch $out";
     };
-  })).checks
+  }
+)).checks
diff --git a/flake.nix b/flake.nix
index 801e5a2..0cc4b5c 100644
--- a/flake.nix
+++ b/flake.nix
@@ -40,5 +40,5 @@
     };
   };
 
-  outputs = { ... } @ args: import ./outputs.nix args;
+  outputs = { ... }@args: import ./outputs.nix args;
 }
diff --git a/home/dconf.nix b/home/dconf.nix
index db5ca18..5238c97 100644
--- a/home/dconf.nix
+++ b/home/dconf.nix
@@ -33,8 +33,20 @@ with lib.hm.gvariant;
       current = mkUint32 0;
       per-window = false;
       show-all-sources = true;
-      sources = [ (mkTuple [ "xkb" "eu" ]) (mkTuple [ "xkb" "de" ]) ];
-      xkb-options = [ "lv3:ralt_switch" "caps:escape" ];
+      sources = [
+        (mkTuple [
+          "xkb"
+          "eu"
+        ])
+        (mkTuple [
+          "xkb"
+          "de"
+        ])
+      ];
+      xkb-options = [
+        "lv3:ralt_switch"
+        "caps:escape"
+      ];
     };
 
     "org/gnome/desktop/interface" = {
@@ -127,7 +139,10 @@ with lib.hm.gvariant;
       composer-attribution-language = "de_DE";
       composer-reply-start-bottom = false;
       composer-signature-in-new-only = true;
-      composer-spell-languages = [ "de" "en_US" ];
+      composer-spell-languages = [
+        "de"
+        "en_US"
+      ];
       composer-top-signature = false;
       composer-unicode-smileys = false;
       composer-visually-wrap-long-lines = true;
diff --git a/home/modules.nix b/home/modules.nix
index 0e295c9..0a6c961 100644
--- a/home/modules.nix
+++ b/home/modules.nix
@@ -1,8 +1,13 @@
 { lib, ... }:
-with lib; let
-  modules' = dir: filterAttrs (name: type: (hasSuffix ".nix" name) || (type == "directory"))
-    (builtins.readDir dir);
-  modules = dir: mapAttrs' (name: _: nameValuePair (removeSuffix ".nix" name) (import (dir + "/${name}")))
-    (modules' dir);
+with lib;
+let
+  modules' =
+    dir:
+    filterAttrs (name: type: (hasSuffix ".nix" name) || (type == "directory")) (builtins.readDir dir);
+  modules =
+    dir:
+    mapAttrs' (name: _: nameValuePair (removeSuffix ".nix" name) (import (dir + "/${name}"))) (
+      modules' dir
+    );
 in
 (modules ./modules)
diff --git a/home/modules/alacritty/default.nix b/home/modules/alacritty/default.nix
index 086b945..da9f503 100644
--- a/home/modules/alacritty/default.nix
+++ b/home/modules/alacritty/default.nix
@@ -1,9 +1,11 @@
-{ pkgs
-, lib
-, config
-, ...
+{
+  pkgs,
+  lib,
+  config,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.home.alacritty;
 in
 {
diff --git a/home/modules/colors.nix b/home/modules/colors.nix
index 5c197a1..a4dc5c7 100644
--- a/home/modules/colors.nix
+++ b/home/modules/colors.nix
@@ -1,8 +1,10 @@
-{ config
-, lib
-, ...
+{
+  config,
+  lib,
+  ...
 }:
-with lib; {
+with lib;
+{
   options.dadada.home.colors = mkOption {
     type = types.attrs;
     description = "Color scheme";
diff --git a/home/modules/direnv.nix b/home/modules/direnv.nix
index cf36bf1..27a0907 100644
--- a/home/modules/direnv.nix
+++ b/home/modules/direnv.nix
@@ -1,9 +1,11 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.home.direnv;
 in
 {
diff --git a/home/modules/git.nix b/home/modules/git.nix
index 7762612..92c4c12 100644
--- a/home/modules/git.nix
+++ b/home/modules/git.nix
@@ -1,9 +1,11 @@
-{ config
-, lib
-, pkgs
-, ...
+{
+  config,
+  lib,
+  pkgs,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.home.git;
   allowedSigners = pkgs.writeTextFile {
     name = "allowed-signers";
diff --git a/home/modules/gpg.nix b/home/modules/gpg.nix
index d1af776..baa17dd 100644
--- a/home/modules/gpg.nix
+++ b/home/modules/gpg.nix
@@ -1,8 +1,10 @@
-{ config
-, lib
-, ...
+{
+  config,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.home.gpg;
 in
 {
diff --git a/home/modules/gtk.nix b/home/modules/gtk.nix
index eb6dae8..5dcd2e6 100644
--- a/home/modules/gtk.nix
+++ b/home/modules/gtk.nix
@@ -1,9 +1,11 @@
-{ config
-, lib
-, pkgs
-, ...
+{
+  config,
+  lib,
+  pkgs,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.home.gtk;
 in
 {
diff --git a/home/modules/helix/default.nix b/home/modules/helix/default.nix
index 2ffdc51..7717423 100644
--- a/home/modules/helix/default.nix
+++ b/home/modules/helix/default.nix
@@ -1,4 +1,9 @@
-{ config, pkgs, lib, ... }:
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 let
   cfg = config.dadada.home.helix;
 in
diff --git a/home/modules/keyring.nix b/home/modules/keyring.nix
index e82d476..48b8b54 100644
--- a/home/modules/keyring.nix
+++ b/home/modules/keyring.nix
@@ -1,8 +1,10 @@
-{ config
-, lib
-, ...
+{
+  config,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.home.keyring;
 in
 {
diff --git a/home/modules/session.nix b/home/modules/session.nix
index 879400d..ba5c941 100644
--- a/home/modules/session.nix
+++ b/home/modules/session.nix
@@ -1,8 +1,10 @@
-{ config
-, lib
-, ...
+{
+  config,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.home.session;
 in
 {
diff --git a/home/modules/ssh.nix b/home/modules/ssh.nix
index 96f4ed3..b8aab54 100644
--- a/home/modules/ssh.nix
+++ b/home/modules/ssh.nix
@@ -1,8 +1,10 @@
-{ config
-, lib
-, ...
+{
+  config,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.home.ssh;
 in
 {
diff --git a/home/modules/syncthing.nix b/home/modules/syncthing.nix
index fd566b4..8095904 100644
--- a/home/modules/syncthing.nix
+++ b/home/modules/syncthing.nix
@@ -1,9 +1,11 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.home.syncthing;
 in
 {
diff --git a/home/modules/tmux.nix b/home/modules/tmux.nix
index 70f2974..063b8f2 100644
--- a/home/modules/tmux.nix
+++ b/home/modules/tmux.nix
@@ -1,8 +1,10 @@
-{ config
-, lib
-, ...
+{
+  config,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.home.tmux;
 in
 {
diff --git a/home/modules/xdg.nix b/home/modules/xdg.nix
index cccf70e..02cadaf 100644
--- a/home/modules/xdg.nix
+++ b/home/modules/xdg.nix
@@ -1,9 +1,11 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   apps = {
     "x-scheme-handler/mailto" = "evolution.desktop";
     "message/rfc822" = "evolution.desktop";
diff --git a/home/modules/zsh.nix b/home/modules/zsh.nix
index a095bff..96364ff 100644
--- a/home/modules/zsh.nix
+++ b/home/modules/zsh.nix
@@ -1,9 +1,11 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.home.zsh;
 in
 {
@@ -45,8 +47,7 @@ in
         PROMPT="%F{red}%?%f %F{green}%m%f:%F{blue}%~%f"$'\n'"╰─> "
         RPROMPT='$(git_super_status)'
       '';
-      profileExtra = ''
-      '';
+      profileExtra = '''';
       shellAliases = {
         ga = "git add";
         gc = "git commit";
diff --git a/home/nixpkgs-config.nix b/home/nixpkgs-config.nix
index 83fcdbc..6a29a63 100644
--- a/home/nixpkgs-config.nix
+++ b/home/nixpkgs-config.nix
@@ -1,4 +1,5 @@
-{ pkgs }: {
+{ pkgs }:
+{
   allowUnfree = true;
   allowUnfreePredicate = pkg: true;
   allowBroken = false;
diff --git a/home/pkgs.nix b/home/pkgs.nix
index 0facf12..8fd23e8 100644
--- a/home/pkgs.nix
+++ b/home/pkgs.nix
@@ -1,5 +1,6 @@
 { pkgs }:
-with pkgs; [
+with pkgs;
+[
   anki
   aqbanking
   aria2
@@ -105,7 +106,10 @@ with pkgs; [
   prusa-slicer
   pv
   pwgen
-  (python3.withPackages (pkgs: [pkgs.pandas pkgs.requests]))
+  (python3.withPackages (pkgs: [
+    pkgs.pandas
+    pkgs.requests
+  ]))
   ranger
   reptyr
   ripgrep
diff --git a/hydra-jobs.nix b/hydra-jobs.nix
index 1d7dde7..3369943 100644
--- a/hydra-jobs.nix
+++ b/hydra-jobs.nix
@@ -1,5 +1,4 @@
 { self, nixpkgs, ... }:
-(nixpkgs.lib.mapAttrs'
-  (name: config: nixpkgs.lib.nameValuePair name config.config.system.build.toplevel)
-  self.nixosConfigurations
-)
+(nixpkgs.lib.mapAttrs' (
+  name: config: nixpkgs.lib.nameValuePair name config.config.system.build.toplevel
+) self.nixosConfigurations)
diff --git a/nixos/agares/configuration.nix b/nixos/agares/configuration.nix
index c8ab058..ba00c29 100644
--- a/nixos/agares/configuration.nix
+++ b/nixos/agares/configuration.nix
@@ -1,7 +1,8 @@
-{ config
-, modulesPath
-, pkgs
-, ...
+{
+  config,
+  modulesPath,
+  pkgs,
+  ...
 }:
 {
   imports = [
@@ -30,7 +31,10 @@
   fileSystems."/swap" = {
     device = "/dev/sda1";
     fsType = "btrfs";
-    options = [ "subvol=/root/swap" "noatime" ];
+    options = [
+      "subvol=/root/swap"
+      "noatime"
+    ];
   };
 
   #swapDevices = [{
@@ -49,7 +53,14 @@
   networking.hostName = "agares";
   networking.domain = "bs.dadada.li";
 
-  boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "ehci_pci" "usb_storage" "sd_mod" "sdhci_pci" ];
+  boot.initrd.availableKernelModules = [
+    "xhci_pci"
+    "ahci"
+    "ehci_pci"
+    "usb_storage"
+    "sd_mod"
+    "sdhci_pci"
+  ];
   boot.initrd.kernelModules = [ "dm-snapshot" ];
 
   # Use the GRUB 2 boot loader.
diff --git a/nixos/agares/dns.nix b/nixos/agares/dns.nix
index 7e52d8b..fe2843f 100644
--- a/nixos/agares/dns.nix
+++ b/nixos/agares/dns.nix
@@ -66,7 +66,10 @@
       ];
       stub-zone =
         let
-          stubZone = name: addrs: { name = "${name}"; stub-addr = addrs; };
+          stubZone = name: addrs: {
+            name = "${name}";
+            stub-addr = addrs;
+          };
         in
         [
           #(stubZone "li.dadada.bs" ["192.168.128.220" "2a01:4f8:c010:a710::1"])
diff --git a/nixos/agares/network.nix b/nixos/agares/network.nix
index af15e05..6d86d22 100644
--- a/nixos/agares/network.nix
+++ b/nixos/agares/network.nix
@@ -10,7 +10,10 @@ in
     enable = true;
     links = {
       "10-persistent" = {
-        matchConfig.OriginalName = [ "enp1s0" "enp2s0" ]; # takes search domains from the [Network]
+        matchConfig.OriginalName = [
+          "enp1s0"
+          "enp2s0"
+        ]; # takes search domains from the [Network]
         linkConfig.MACAddressPolicy = "persistent";
       };
     };
@@ -49,19 +52,21 @@ in
           PrivateKeyFile = config.age.secrets."wg-privkey-vpn-dadada-li".path;
           ListenPort = 51234;
         };
-        wireguardPeers = [{
-          wireguardPeerConfig =
-            let
-              peerAddresses = i: [
-                "${ipv4Prefix}.120.${i}/32"
-                "${ulaPrefix}:120::${i}/128"
-              ];
-            in
-            {
-              PublicKey = "0eWP1hzkyoXlrjPSOq+6Y1u8tnFH+SejBJs8f8lf+iU=";
-              AllowedIPs = peerAddresses "3";
-            };
-        }];
+        wireguardPeers = [
+          {
+            wireguardPeerConfig =
+              let
+                peerAddresses = i: [
+                  "${ipv4Prefix}.120.${i}/32"
+                  "${ulaPrefix}:120::${i}/128"
+                ];
+              in
+              {
+                PublicKey = "0eWP1hzkyoXlrjPSOq+6Y1u8tnFH+SejBJs8f8lf+iU=";
+                AllowedIPs = peerAddresses "3";
+              };
+          }
+        ];
       };
       "20-wg0" = {
         netdevConfig = {
@@ -137,7 +142,10 @@ in
         "10-mgmt" = lib.mkMerge [
           (subnet "enp1s0" "100")
           {
-            networkConfig.VLAN = [ "lan.10" "ff.11" ];
+            networkConfig.VLAN = [
+              "lan.10"
+              "ff.11"
+            ];
             dhcpServerStaticLeases = [
               {
                 # legion
@@ -158,13 +166,24 @@ in
         ];
         "30-wg0" = {
           matchConfig.Name = "wg0";
-          address = [ "10.3.3.2/32" "fd42:9c3b:f96d:121::2/128" ];
+          address = [
+            "10.3.3.2/32"
+            "fd42:9c3b:f96d:121::2/128"
+          ];
           DHCP = "no";
           networkConfig.IPv6AcceptRA = false;
           linkConfig.RequiredForOnline = false;
           routes = [
-            { routeConfig = { Destination = "10.3.3.1/24"; }; }
-            { routeConfig = { Destination = "fd42:9c3b:f96d:121::1/64"; }; }
+            {
+              routeConfig = {
+                Destination = "10.3.3.1/24";
+              };
+            }
+            {
+              routeConfig = {
+                Destination = "fd42:9c3b:f96d:121::1/64";
+              };
+            }
           ];
         };
         "30-lan" = subnet "lan.10" "101" // {
@@ -266,10 +285,14 @@ in
           linkConfig.RequiredForOnline = false;
           routes = [
             {
-              routeConfig = { Destination = "${ipv4Prefix}.120.1/24"; };
+              routeConfig = {
+                Destination = "${ipv4Prefix}.120.1/24";
+              };
             }
             {
-              routeConfig = { Destination = "${ulaPrefix}::120:1/64"; };
+              routeConfig = {
+                Destination = "${ulaPrefix}::120:1/64";
+              };
             }
           ];
         };
diff --git a/nixos/agares/ppp.nix b/nixos/agares/ppp.nix
index dc26e46..ffa5bc4 100644
--- a/nixos/agares/ppp.nix
+++ b/nixos/agares/ppp.nix
@@ -1,4 +1,9 @@
-{ pkgs, lib, config, ... }:
+{
+  pkgs,
+  lib,
+  config,
+  ...
+}:
 let
   secretsPath = config.dadada.secrets.path;
 in
diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix
index 13b861a..9c8b8e3 100644
--- a/nixos/gorgon/configuration.nix
+++ b/nixos/gorgon/configuration.nix
@@ -1,7 +1,8 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
 let
   xilinxJtag = pkgs.writeTextFile {
@@ -104,13 +105,18 @@ in
     passwordFile = config.age.secrets.paperless.path;
   };
 
-  systemd.tmpfiles.rules = let cfg = config.services.paperless; in [
-    (if cfg.consumptionDirIsPublic then
-      "d '${cfg.consumptionDir}' 777 - - - -"
-    else
-      "d '${cfg.consumptionDir}' 770 ${cfg.user} ${config.users.users.${cfg.user}.group} - -"
-    )
-  ];
+  systemd.tmpfiles.rules =
+    let
+      cfg = config.services.paperless;
+    in
+    [
+      (
+        if cfg.consumptionDirIsPublic then
+          "d '${cfg.consumptionDir}' 777 - - - -"
+        else
+          "d '${cfg.consumptionDir}' 770 ${cfg.user} ${config.users.users.${cfg.user}.group} - -"
+      )
+    ];
 
   age.secrets.paperless = {
     file = "${config.dadada.secrets.path}/paperless.age";
@@ -130,12 +136,14 @@ in
     ];
   };
 
-  hardware.printers.ensurePrinters = [{
-    name = "Brother_HL-L2300D";
-    model = "everywhere";
-    location = "BS";
-    deviceUri = "ipp://192.168.101.29:631/printers/Brother_HL-L2300D";
-  }];
+  hardware.printers.ensurePrinters = [
+    {
+      name = "Brother_HL-L2300D";
+      model = "everywhere";
+      location = "BS";
+      deviceUri = "ipp://192.168.101.29:631/printers/Brother_HL-L2300D";
+    }
+  ];
 
   environment.systemPackages = with pkgs; [
     android-studio
@@ -175,7 +183,7 @@ in
     saleaeLogic
     keychron
     pkgs.libsigrok
-  ]; #noMtpUdevRules ];
+  ]; # noMtpUdevRules ];
 
   virtualisation.libvirtd.enable = true;
 
@@ -187,7 +195,20 @@ in
   users.users = {
     dadada = {
       isNormalUser = true;
-      extraGroups = [ "wheel" "networkmanager" "libvirtd" "adbusers" "kvm" "video" "scanner" "lp" "docker" "dialout" "wireshark" "paperless" ];
+      extraGroups = [
+        "wheel"
+        "networkmanager"
+        "libvirtd"
+        "adbusers"
+        "kvm"
+        "video"
+        "scanner"
+        "lp"
+        "docker"
+        "dialout"
+        "wireshark"
+        "paperless"
+      ];
       shell = "/run/current-system/sw/bin/zsh";
     };
   };
diff --git a/nixos/gorgon/hardware-configuration.nix b/nixos/gorgon/hardware-configuration.nix
index 4155fae..30d7447 100644
--- a/nixos/gorgon/hardware-configuration.nix
+++ b/nixos/gorgon/hardware-configuration.nix
@@ -1,17 +1,26 @@
 # Do not modify this file!  It was generated by ‘nixos-generate-config’
 # and may be overwritten by future invocations.  Please make changes
 # to /etc/nixos/configuration.nix instead.
-{ config
-, lib
-, pkgs
-, modulesPath
-, ...
-}: {
+{
+  config,
+  lib,
+  pkgs,
+  modulesPath,
+  ...
+}:
+{
   imports = [
     (modulesPath + "/installer/scan/not-detected.nix")
   ];
 
-  boot.initrd.availableKernelModules = [ "nvme" "ehci_pci" "xhci_pci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
+  boot.initrd.availableKernelModules = [
+    "nvme"
+    "ehci_pci"
+    "xhci_pci"
+    "usb_storage"
+    "sd_mod"
+    "rtsx_pci_sdmmc"
+  ];
   boot.initrd.kernelModules = [ "dm-snapshot" ];
   boot.kernelModules = [ "kvm-amd" ];
   boot.extraModulePackages = [ ];
diff --git a/nixos/modules/admin.nix b/nixos/modules/admin.nix
index 873832d..07323da 100644
--- a/nixos/modules/admin.nix
+++ b/nixos/modules/admin.nix
@@ -1,11 +1,16 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.admin;
-  extraGroups = [ "wheel" "libvirtd" ];
+  extraGroups = [
+    "wheel"
+    "libvirtd"
+  ];
 
   shells = {
     "bash" = pkgs.bashInteractive;
@@ -16,22 +21,32 @@ with lib; let
   shellNames = builtins.attrNames shells;
 
   adminOpts =
-    { name
-    , config
-    , ...
-    }: {
+    {
+      name,
+      config,
+      ...
+    }:
+    {
       options = {
         keys = mkOption {
           type = types.listOf types.str;
           default = [ ];
-          apply = x: assert (builtins.length x > 0 || abort "Please specify at least one key to be able to log in"); x;
+          apply =
+            x:
+            assert (builtins.length x > 0 || abort "Please specify at least one key to be able to log in");
+            x;
           description = ''
             The keys that should be able to access the account.
           '';
         };
         shell = mkOption {
           type = types.nullOr types.str;
-          apply = x: assert (builtins.elem x shellNames || abort "Please specify one of ${builtins.toString shellNames}"); x;
+          apply =
+            x:
+            assert (
+              builtins.elem x shellNames || abort "Please specify one of ${builtins.toString shellNames}"
+            );
+            x;
           default = "zsh";
           defaultText = literalExpression "zsh";
           example = literalExpression "bash";
@@ -81,15 +96,12 @@ in
     security.sudo.wheelNeedsPassword = false;
     services.openssh.openFirewall = true;
 
-    users.users =
-      mapAttrs
-        (user: keys: {
-          shell = shells."${keys.shell}";
-          extraGroups = extraGroups;
-          isNormalUser = true;
-          openssh.authorizedKeys.keys = keys.keys;
-        })
-        cfg.users;
+    users.users = mapAttrs (user: keys: {
+      shell = shells."${keys.shell}";
+      extraGroups = extraGroups;
+      isNormalUser = true;
+      openssh.authorizedKeys.keys = keys.keys;
+    }) cfg.users;
 
     nix.settings.trusted-users = builtins.attrNames cfg.users;
 
@@ -103,7 +115,7 @@ in
     services.tor.relay.onionServices = {
       "rat" = mkIf cfg.rat.enable {
         name = "rat";
-        map = [{ port = 22; }];
+        map = [ { port = 22; } ];
       };
     };
   };
diff --git a/nixos/modules/backup.nix b/nixos/modules/backup.nix
index 0ec680f..095fd35 100644
--- a/nixos/modules/backup.nix
+++ b/nixos/modules/backup.nix
@@ -1,9 +1,11 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   backupExcludes = [
     "/backup"
     "/dev"
diff --git a/nixos/modules/borg-server.nix b/nixos/modules/borg-server.nix
index c1aceeb..594f356 100644
--- a/nixos/modules/borg-server.nix
+++ b/nixos/modules/borg-server.nix
@@ -1,6 +1,11 @@
 { config, lib, ... }:
 let
-  inherit (lib) mkEnableOption mkIf mkOption types;
+  inherit (lib)
+    mkEnableOption
+    mkIf
+    mkOption
+    types
+    ;
   cfg = config.dadada.borgServer;
 in
 {
@@ -20,31 +25,41 @@ in
     services.borgbackup.repos = {
       "metis" = {
         allowSubRepos = false;
-        authorizedKeysAppendOnly = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDnc1gCi8lbhlLmPKvaExtCxVaAni8RrOuHUQO6wTbzR root@metis" ];
+        authorizedKeysAppendOnly = [
+          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDnc1gCi8lbhlLmPKvaExtCxVaAni8RrOuHUQO6wTbzR root@metis"
+        ];
         path = "${cfg.path}/metis";
         quota = "1T";
       };
       "gorgon" = {
         allowSubRepos = false;
-        authorizedKeysAppendOnly = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP6p9b2D7y2W+9BGee2yk2xsCRewNNaE6oS3CqlW61ti root@gorgon" ];
+        authorizedKeysAppendOnly = [
+          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP6p9b2D7y2W+9BGee2yk2xsCRewNNaE6oS3CqlW61ti root@gorgon"
+        ];
         path = "${cfg.path}/gorgon";
         quota = "1T";
       };
       "surgat" = {
         allowSubRepos = false;
-        authorizedKeysAppendOnly = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINGhatanrNG+M6jAkU7Yi44mJmTreJkqyZ6Z+qiEgV7O root@surgat" ];
+        authorizedKeysAppendOnly = [
+          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINGhatanrNG+M6jAkU7Yi44mJmTreJkqyZ6Z+qiEgV7O root@surgat"
+        ];
         path = "${cfg.path}/surgat";
         quota = "50G";
       };
       "pruflas" = {
         allowSubRepos = false;
-        authorizedKeysAppendOnly = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBk7f9DSnXCOIUsxFsjCKG23vHShV4TSzzPJunPOwa1I root@pruflas" ];
+        authorizedKeysAppendOnly = [
+          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBk7f9DSnXCOIUsxFsjCKG23vHShV4TSzzPJunPOwa1I root@pruflas"
+        ];
         path = "${cfg.path}/pruflas";
         quota = "50G";
       };
       "wohnzimmerpi" = {
         allowSubRepos = false;
-        authorizedKeysAppendOnly = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK6uZ8mPQJWOL984gZKKPyxp7VLcxk42TpTh5iPP6N6k root@wohnzimmerpi" ];
+        authorizedKeysAppendOnly = [
+          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK6uZ8mPQJWOL984gZKKPyxp7VLcxk42TpTh5iPP6N6k root@wohnzimmerpi"
+        ];
         path = "${cfg.path}/wohnzimmerpi";
         quota = "50G";
       };
diff --git a/nixos/modules/ddns.nix b/nixos/modules/ddns.nix
index af7d725..594be6d 100644
--- a/nixos/modules/ddns.nix
+++ b/nixos/modules/ddns.nix
@@ -1,52 +1,70 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.ddns;
-  ddnsConfig = { domains, credentialsPath, interface }: {
-    systemd.timers = listToAttrs (forEach domains (domain:
-      nameValuePair "ddns-${domain}"
-        {
-          wantedBy = [ "timers.target" ];
-          partOf = [ "ddns-${domain}.service" ];
-          timerConfig.OnCalendar = "hourly";
-        }));
+  ddnsConfig =
+    {
+      domains,
+      credentialsPath,
+      interface,
+    }:
+    {
+      systemd.timers = listToAttrs (
+        forEach domains (
+          domain:
+          nameValuePair "ddns-${domain}" {
+            wantedBy = [ "timers.target" ];
+            partOf = [ "ddns-${domain}.service" ];
+            timerConfig.OnCalendar = "hourly";
+          }
+        )
+      );
 
-    systemd.services = listToAttrs (forEach domains (domain:
-      nameValuePair "ddns-${domain}"
-        {
-          serviceConfig = {
-            Type = "oneshot";
-            PrivateTmp = true;
-            PrivateDevices = true;
-            PrivateUsers = true;
-            PrivateMounts = true;
-            PrivateIPC = true;
-            ProtectHome = true;
-            ProtectSystem = "strict";
-            ProtectKernelTunables = true;
-            BindReadOnlyPaths = [ credentialsPath ];
-            NoNewPrivileges = true;
-            CapabilitBoundingSet = [ ];
-          };
-          script = ''
-            function url() {
-              echo "https://svc.joker.com/nic/update?username=$1&password=$2&hostname=$3"
-            }
+      systemd.services = listToAttrs (
+        forEach domains (
+          domain:
+          nameValuePair "ddns-${domain}" {
+            serviceConfig = {
+              Type = "oneshot";
+              PrivateTmp = true;
+              PrivateDevices = true;
+              PrivateUsers = true;
+              PrivateMounts = true;
+              PrivateIPC = true;
+              ProtectHome = true;
+              ProtectSystem = "strict";
+              ProtectKernelTunables = true;
+              BindReadOnlyPaths = [ credentialsPath ];
+              NoNewPrivileges = true;
+              CapabilitBoundingSet = [ ];
+            };
+            script = ''
+              function url() {
+                echo "https://svc.joker.com/nic/update?username=$1&password=$2&hostname=$3"
+              }
 
-            IFS=':'
-            read -r user password < ${credentialsPath}
-            unset IFS
+              IFS=':'
+              read -r user password < ${credentialsPath}
+              unset IFS
 
-            curl_url=$(url "$user" "$password" ${domain})
+              curl_url=$(url "$user" "$password" ${domain})
 
-            ${pkgs.curl}/bin/curl --ipv4 "$curl_url" ${if interface == null then "" else "--interface ${interface}"} || true
-            ${pkgs.curl}/bin/curl --ipv6 "$curl_url" ${if interface == null then "" else "--interface ${interface}"}
-          '';
-        }));
-  };
+              ${pkgs.curl}/bin/curl --ipv4 "$curl_url" ${
+                if interface == null then "" else "--interface ${interface}"
+              } || true
+              ${pkgs.curl}/bin/curl --ipv6 "$curl_url" ${
+                if interface == null then "" else "--interface ${interface}"
+              }
+            '';
+          }
+        )
+      );
+    };
 in
 {
   options = {
diff --git a/nixos/modules/default.nix b/nixos/modules/default.nix
index d0554cc..fa94c8c 100644
--- a/nixos/modules/default.nix
+++ b/nixos/modules/default.nix
@@ -1,8 +1,16 @@
 { lib, ... }:
-with lib; let
-  modules' = dir: filterAttrs (name: type: (name != "default.nix" && name != "profiles" && ((hasSuffix ".nix" name) || (type == "directory"))))
-    (builtins.readDir dir);
-  modules = dir: mapAttrs' (name: _: nameValuePair (removeSuffix ".nix" name) (import (dir + "/${name}")))
-    (modules' dir);
+with lib;
+let
+  modules' =
+    dir:
+    filterAttrs (
+      name: type:
+      (name != "default.nix" && name != "profiles" && ((hasSuffix ".nix" name) || (type == "directory")))
+    ) (builtins.readDir dir);
+  modules =
+    dir:
+    mapAttrs' (name: _: nameValuePair (removeSuffix ".nix" name) (import (dir + "/${name}"))) (
+      modules' dir
+    );
 in
 (modules ./.)
diff --git a/nixos/modules/element.nix b/nixos/modules/element.nix
index 2a45da1..2fcefec 100644
--- a/nixos/modules/element.nix
+++ b/nixos/modules/element.nix
@@ -1,7 +1,8 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
 let
   cfg = config.dadada.element;
diff --git a/nixos/modules/fileShare.nix b/nixos/modules/fileShare.nix
index 5b6a0f2..a3a72ba 100644
--- a/nixos/modules/fileShare.nix
+++ b/nixos/modules/fileShare.nix
@@ -1,8 +1,10 @@
-{ config
-, lib
-, ...
+{
+  config,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.fileShare;
   sharePath = "/mnt/storage/share";
   ipv6 = "fd42:dead:beef::/48";
diff --git a/nixos/modules/gitea.nix b/nixos/modules/gitea.nix
index 259815a..783bf6f 100644
--- a/nixos/modules/gitea.nix
+++ b/nixos/modules/gitea.nix
@@ -1,7 +1,8 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
 let
   cfg = config.dadada.forgejo;
diff --git a/nixos/modules/headphones.nix b/nixos/modules/headphones.nix
index 585a5dd..877be07 100644
--- a/nixos/modules/headphones.nix
+++ b/nixos/modules/headphones.nix
@@ -1,9 +1,11 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.headphones;
 in
 {
diff --git a/nixos/modules/homepage.nix b/nixos/modules/homepage.nix
index b04c3b2..193e71e 100644
--- a/nixos/modules/homepage.nix
+++ b/nixos/modules/homepage.nix
@@ -1,11 +1,13 @@
-{ config
-, lib
-, ...
+{
+  config,
+  lib,
+  ...
 }:
 let
   cfg = config.dadada.homepage;
 in
-with lib; {
+with lib;
+{
   options.dadada.homepage = {
     enable = mkEnableOption "Enable home page";
     package = mkOption {
diff --git a/nixos/modules/inputs.nix b/nixos/modules/inputs.nix
index 4db219c..9d18883 100644
--- a/nixos/modules/inputs.nix
+++ b/nixos/modules/inputs.nix
@@ -1,7 +1,8 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
 let
   cfg = config.dadada.inputs;
diff --git a/nixos/modules/profiles/backup.nix b/nixos/modules/profiles/backup.nix
index a5ad0eb..d333804 100644
--- a/nixos/modules/profiles/backup.nix
+++ b/nixos/modules/profiles/backup.nix
@@ -21,6 +21,8 @@ in
     sshIdentityFile = config.age.secrets."${config.networking.hostName}-backup-ssh-key".path;
   };
 
-  age.secrets."${config.networking.hostName}-backup-passphrase".file = "${secretsPath}/${config.networking.hostName}-backup-passphrase.age";
-  age.secrets."${config.networking.hostName}-backup-ssh-key".file = "${secretsPath}/${config.networking.hostName}-backup-ssh-key.age";
+  age.secrets."${config.networking.hostName}-backup-passphrase".file =
+    "${secretsPath}/${config.networking.hostName}-backup-passphrase.age";
+  age.secrets."${config.networking.hostName}-backup-ssh-key".file =
+    "${secretsPath}/${config.networking.hostName}-backup-ssh-key.age";
 }
diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix
index bc08040..b681d72 100644
--- a/nixos/modules/profiles/base.nix
+++ b/nixos/modules/profiles/base.nix
@@ -1,4 +1,9 @@
-{ config, lib, pkgs, ... }:
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
 let
   mkDefault = lib.mkDefault;
   inputs = config.dadada.inputs;
@@ -27,7 +32,7 @@ in
 
   nix.package = pkgs.lix;
 
-  nix.settings.substituters = [ https://cache.nixos.org/ ];
+  nix.settings.substituters = [ "https://cache.nixos.org/" ];
 
   nix.settings.trusted-public-keys = [
     "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
@@ -56,7 +61,10 @@ in
 
   services.resolved = {
     enable = mkDefault true;
-    fallbackDns = [ "9.9.9.9#dns.quad9.net" "2620:fe::fe:11#dns11.quad9.net" ];
+    fallbackDns = [
+      "9.9.9.9#dns.quad9.net"
+      "2620:fe::fe:11#dns11.quad9.net"
+    ];
   };
 
   programs.zsh.enable = mkDefault true;
@@ -64,4 +72,3 @@ in
   # Avoid some bots
   services.openssh.ports = [ 2222 ];
 }
-
diff --git a/nixos/modules/profiles/cloud.nix b/nixos/modules/profiles/cloud.nix
index ba131e1..de57714 100644
--- a/nixos/modules/profiles/cloud.nix
+++ b/nixos/modules/profiles/cloud.nix
@@ -21,14 +21,13 @@ in
       hostKeys = [
         config.age.secrets."${initrdHostKey}".path
       ];
-      authorizedKeys = with lib;
-        concatLists (mapAttrsToList
-          (name: user:
-            if elem "wheel" user.extraGroups then
-              user.openssh.authorizedKeys.keys
-            else
-              [ ])
-          config.users.users);
+      authorizedKeys =
+        with lib;
+        concatLists (
+          mapAttrsToList (
+            name: user: if elem "wheel" user.extraGroups then user.openssh.authorizedKeys.keys else [ ]
+          ) config.users.users
+        );
     };
     postCommands = ''
       echo 'cryptsetup-askpass' >> /root/.profile
@@ -36,7 +35,9 @@ in
   };
 
   assertions = lib.singleton {
-    assertion = (config.boot.initrd.network.ssh.hostKeys != [ ]) -> config.boot.loader.supportsInitrdSecrets == true;
+    assertion =
+      (config.boot.initrd.network.ssh.hostKeys != [ ])
+      -> config.boot.loader.supportsInitrdSecrets == true;
     message = "Refusing to store private keys in store";
   };
 
diff --git a/nixos/modules/profiles/laptop.nix b/nixos/modules/profiles/laptop.nix
index bdba617..d9f0bde 100644
--- a/nixos/modules/profiles/laptop.nix
+++ b/nixos/modules/profiles/laptop.nix
@@ -1,12 +1,14 @@
-{ config
-, lib
-, ...
+{
+  config,
+  lib,
+  ...
 }:
 let
   inputs = config.dadada.inputs;
   secretsPath = config.dadada.secrets.path;
 in
-with lib; {
+with lib;
+{
   imports = [
     ./backup.nix
     ./base.nix
@@ -53,5 +55,6 @@ with lib; {
     passphrasePath = config.age.secrets."${config.networking.hostName}-backup-passphrase-gs".path;
   };
 
-  age.secrets."${config.networking.hostName}-backup-passphrase-gs".file = "${secretsPath}/${config.networking.hostName}-backup-passphrase-gs.age";
+  age.secrets."${config.networking.hostName}-backup-passphrase-gs".file =
+    "${secretsPath}/${config.networking.hostName}-backup-passphrase-gs.age";
 }
diff --git a/nixos/modules/profiles/server.nix b/nixos/modules/profiles/server.nix
index 1aeab43..724655f 100644
--- a/nixos/modules/profiles/server.nix
+++ b/nixos/modules/profiles/server.nix
@@ -1,9 +1,11 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; {
+with lib;
+{
   imports = [
     ./backup.nix
     ./base.nix
@@ -16,7 +18,9 @@ with lib; {
   documentation.enable = mkDefault false;
   documentation.nixos.enable = mkDefault false;
 
-  services.btrfs.autoScrub.enable = mkDefault ((filterAttrs (name: fs: fs.fsType == "btrfs") config.fileSystems) != { });
+  services.btrfs.autoScrub.enable = mkDefault (
+    (filterAttrs (name: fs: fs.fsType == "btrfs") config.fileSystems) != { }
+  );
 
   services.journald.extraConfig = ''
     SystemKeepFree = 2G
diff --git a/nixos/modules/profiles/upgrade-pg-cluster.nix b/nixos/modules/profiles/upgrade-pg-cluster.nix
index 3042265..486bf29 100644
--- a/nixos/modules/profiles/upgrade-pg-cluster.nix
+++ b/nixos/modules/profiles/upgrade-pg-cluster.nix
@@ -1,4 +1,9 @@
-{ config, pkgs, lib, ... }:
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 {
   environment.systemPackages = lib.mkIf config.services.postgresql.enable [
     (
diff --git a/nixos/modules/share.nix b/nixos/modules/share.nix
index a4e5f9c..7c7410b 100644
--- a/nixos/modules/share.nix
+++ b/nixos/modules/share.nix
@@ -1,9 +1,11 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.share;
 in
 {
diff --git a/nixos/modules/steam.nix b/nixos/modules/steam.nix
index 82944eb..b6b0846 100644
--- a/nixos/modules/steam.nix
+++ b/nixos/modules/steam.nix
@@ -1,9 +1,11 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.steam;
 in
 {
diff --git a/nixos/modules/vpnServer.nix b/nixos/modules/vpnServer.nix
index 6c0513f..ee2298e 100644
--- a/nixos/modules/vpnServer.nix
+++ b/nixos/modules/vpnServer.nix
@@ -1,28 +1,32 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.vpnServer;
-  wgPeer = { name, ... }: {
-    options = {
-      name = mkOption {
-        internal = true;
-        default = name;
-      };
-      id = mkOption {
-        description = "VPN client id";
-        default = 0;
-        type = types.str;
-      };
-      key = mkOption {
-        description = "VPN client public key";
-        default = "";
-        type = types.str;
+  wgPeer =
+    { name, ... }:
+    {
+      options = {
+        name = mkOption {
+          internal = true;
+          default = name;
+        };
+        id = mkOption {
+          description = "VPN client id";
+          default = 0;
+          type = types.str;
+        };
+        key = mkOption {
+          description = "VPN client public key";
+          default = "";
+          type = types.str;
+        };
       };
     };
-  };
 in
 {
   options.dadada.vpnServer = {
@@ -41,13 +45,10 @@ in
         privateKeyFile = "/var/lib/wireguard/wg0-key";
         ips = [ "fd42:9c3b:f96d:0201::0/64" ];
         listenPort = 51234;
-        peers =
-          map
-            (peer: {
-              allowedIPs = [ "fd42:9c3b:f96d:0201::${peer.id}/128" ];
-              publicKey = peer.key;
-            })
-            (attrValues cfg.peers);
+        peers = map (peer: {
+          allowedIPs = [ "fd42:9c3b:f96d:0201::${peer.id}/128" ];
+          publicKey = peer.key;
+        }) (attrValues cfg.peers);
         postSetup = ''
           wg set wg0 fwmark 51234
           ip -6 route add table 2468 fd42:9c3b:f96d::/48 dev ens3
diff --git a/nixos/modules/weechat.nix b/nixos/modules/weechat.nix
index e3d8f48..6ff0106 100644
--- a/nixos/modules/weechat.nix
+++ b/nixos/modules/weechat.nix
@@ -1,9 +1,11 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   cfg = config.dadada.weechat;
 in
 {
diff --git a/nixos/modules/yubikey.nix b/nixos/modules/yubikey.nix
index 77f4394..4be4492 100644
--- a/nixos/modules/yubikey.nix
+++ b/nixos/modules/yubikey.nix
@@ -1,9 +1,11 @@
-{ config
-, pkgs
-, lib
-, ...
+{
+  config,
+  pkgs,
+  lib,
+  ...
 }:
-with lib; let
+with lib;
+let
   yubikey = config.dadada.yubikey;
 in
 {
diff --git a/nixos/ninurta/configuration.nix b/nixos/ninurta/configuration.nix
index 15c8a24..d4eed97 100644
--- a/nixos/ninurta/configuration.nix
+++ b/nixos/ninurta/configuration.nix
@@ -1,4 +1,9 @@
-{ config, pkgs, lib, ... }:
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 let
   hostAliases = [
     "ifrit.dadada.li"
@@ -37,7 +42,10 @@ in
     };
   };
 
-  services.openssh.ports = [ 22 2222 ];
+  services.openssh.ports = [
+    22
+    2222
+  ];
 
   dadada.backupClient.bs.enable = false;
   dadada.backupClient.backup1.enable = false;
@@ -59,7 +67,9 @@ in
   boot.loader.efi.canTouchEfiVariables = true;
 
   assertions = lib.singleton {
-    assertion = (config.boot.initrd.network.ssh.hostKeys != [ ]) -> config.boot.loader.supportsInitrdSecrets == true;
+    assertion =
+      (config.boot.initrd.network.ssh.hostKeys != [ ])
+      -> config.boot.loader.supportsInitrdSecrets == true;
     message = "Refusing to store private keys in store";
   };
 
@@ -183,7 +193,12 @@ in
     {
       hostName = "localhost";
       system = "x86_64-linux";
-      supportedFeatures = [ "kvm" "nixos-test" "big-parallel" "benchmark" ];
+      supportedFeatures = [
+        "kvm"
+        "nixos-test"
+        "big-parallel"
+        "benchmark"
+      ];
       maxJobs = 16;
     }
   ];
@@ -277,26 +292,48 @@ in
       };
       "30-wg0" = {
         matchConfig.Name = "wg0";
-        address = [ "10.3.3.3/32" "fd42:9c3b:f96d:121::3/128" ];
+        address = [
+          "10.3.3.3/32"
+          "fd42:9c3b:f96d:121::3/128"
+        ];
         DHCP = "no";
         networkConfig.IPv6AcceptRA = false;
         linkConfig.RequiredForOnline = false;
         routes = [
-          { routeConfig = { Destination = "10.3.3.1/24"; }; }
-          { routeConfig = { Destination = "fd42:9c3b:f96d:121::1/64"; }; }
+          {
+            routeConfig = {
+              Destination = "10.3.3.1/24";
+            };
+          }
+          {
+            routeConfig = {
+              Destination = "fd42:9c3b:f96d:121::1/64";
+            };
+          }
         ];
       };
       "30-uwu" = {
         matchConfig.Name = "uwu";
-        address = [ "10.11.0.39/24" "fc00:1337:dead:beef::10.11.0.39/128" ];
+        address = [
+          "10.11.0.39/24"
+          "fc00:1337:dead:beef::10.11.0.39/128"
+        ];
         dns = [ "10.11.0.1%uwu#uwu" ];
         domains = [ "uwu" ];
         DHCP = "no";
         networkConfig.IPv6AcceptRA = false;
         linkConfig.RequiredForOnline = false;
         routes = [
-          { routeConfig = { Destination = "10.11.0.0/22"; }; }
-          { routeConfig = { Destination = "fc00:1337:dead:beef::10.11.0.0/118"; }; }
+          {
+            routeConfig = {
+              Destination = "10.11.0.0/22";
+            };
+          }
+          {
+            routeConfig = {
+              Destination = "fc00:1337:dead:beef::10.11.0.0/118";
+            };
+          }
         ];
       };
       "20-br0" = {
@@ -337,7 +374,10 @@ in
           {
             wireguardPeerConfig = {
               PublicKey = "KzL+PKlv4LktIqqTqC9Esw8dkSZN2qSn/vq76UHbOlY=";
-              AllowedIPs = [ "10.3.3.1/32" "fd42:9c3b:f96d:121::1/128" ];
+              AllowedIPs = [
+                "10.3.3.1/32"
+                "fd42:9c3b:f96d:121::1/128"
+              ];
               PersistentKeepalive = 25;
               Endpoint = "surgat.dadada.li:51235";
             };
@@ -345,7 +385,10 @@ in
           {
             wireguardPeerConfig = {
               PublicKey = "INfv++4R+Kd2jdh/3CooM70ZeeoN6aeU6mo+T4C8gWU=";
-              AllowedIPs = [ "10.3.3.2/32" "fd42:9c3b:f96d:121::2/128" ];
+              AllowedIPs = [
+                "10.3.3.2/32"
+                "fd42:9c3b:f96d:121::2/128"
+              ];
               Endpoint = "192.168.101.1:51235";
             };
           }
@@ -359,15 +402,21 @@ in
         wireguardConfig = {
           PrivateKeyFile = config.age.secrets.${uwuPrivKey}.path;
         };
-        wireguardPeers = [{
-          wireguardPeerConfig = {
-            PublicKey = "tuoiOWqgHz/lrgTcLjX+xIhvxh9jDH6gmDw2ZMvX5T8=";
-            AllowedIPs = [ "10.11.0.0/22" "fc00:1337:dead:beef::10.11.0.0/118" "192.168.178.0/23" ];
-            PersistentKeepalive = 25;
-            PresharedKeyFile = config.age.secrets.${uwuPresharedKey}.path;
-            Endpoint = "53c70r.de:51820";
-          };
-        }];
+        wireguardPeers = [
+          {
+            wireguardPeerConfig = {
+              PublicKey = "tuoiOWqgHz/lrgTcLjX+xIhvxh9jDH6gmDw2ZMvX5T8=";
+              AllowedIPs = [
+                "10.11.0.0/22"
+                "fc00:1337:dead:beef::10.11.0.0/118"
+                "192.168.178.0/23"
+              ];
+              PersistentKeepalive = 25;
+              PresharedKeyFile = config.age.secrets.${uwuPresharedKey}.path;
+              Endpoint = "53c70r.de:51820";
+            };
+          }
+        ];
       };
     };
   };
diff --git a/nixos/ninurta/hardware-configuration.nix b/nixos/ninurta/hardware-configuration.nix
index 8de34e8..cd6b64b 100644
--- a/nixos/ninurta/hardware-configuration.nix
+++ b/nixos/ninurta/hardware-configuration.nix
@@ -1,89 +1,115 @@
 # Do not modify this file!  It was generated by ‘nixos-generate-config’
 # and may be overwritten by future invocations.  Please make changes
 # to /etc/nixos/configuration.nix instead.
-{ config, lib, modulesPath, ... }:
+{
+  config,
+  lib,
+  modulesPath,
+  ...
+}:
 
 {
-  imports =
-    [
-      (modulesPath + "/installer/scan/not-detected.nix")
-    ];
+  imports = [
+    (modulesPath + "/installer/scan/not-detected.nix")
+  ];
 
-  boot.initrd.availableKernelModules = [ "igc" "xhci_pci" "thunderbolt" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
+  boot.initrd.availableKernelModules = [
+    "igc"
+    "xhci_pci"
+    "thunderbolt"
+    "ahci"
+    "nvme"
+    "usbhid"
+    "usb_storage"
+    "sd_mod"
+  ];
   boot.initrd.kernelModules = [ ];
   boot.kernelModules = [ "kvm-intel" ];
   boot.extraModulePackages = [ ];
 
-  fileSystems."/" =
-    {
-      device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
-      fsType = "btrfs";
-      options = [ "compress=zstd" ];
-    };
+  fileSystems."/" = {
+    device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
+    fsType = "btrfs";
+    options = [ "compress=zstd" ];
+  };
 
   boot.initrd.luks.devices."luks".device = "/dev/disk/by-uuid/bac4ee0e-e393-414f-ac3e-1ec20739abae";
 
-  fileSystems."/swap" =
+  fileSystems."/swap" = {
+    device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
+    fsType = "btrfs";
+    options = [
+      "subvol=swap"
+      "noatime"
+    ];
+  };
+
+  fileSystems."/nix" = {
+    device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
+    fsType = "btrfs";
+    options = [
+      "subvol=nix"
+      "noatime"
+      "compress=zstd"
+    ];
+  };
+
+  fileSystems."/var" = {
+    device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
+    fsType = "btrfs";
+    options = [
+      "subvol=var"
+      "compress=zstd"
+    ];
+  };
+
+  fileSystems."/home" = {
+    device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
+    fsType = "btrfs";
+    options = [
+      "subvol=home"
+      "compress=zstd"
+    ];
+  };
+
+  fileSystems."/root" = {
+    device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
+    fsType = "btrfs";
+    options = [
+      "subvol=root"
+      "compress=zstd"
+    ];
+  };
+
+  fileSystems."/boot" = {
+    device = "/dev/disk/by-uuid/2E20-49CB";
+    fsType = "vfat";
+  };
+
+  swapDevices = [
     {
-      device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
-      fsType = "btrfs";
-      options = [ "subvol=swap" "noatime" ];
-    };
+      device = "/swap/swapfile";
+      size = 32 * 1024; # 32 GByte
+    }
+  ];
 
-  fileSystems."/nix" =
-    {
-      device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
-      fsType = "btrfs";
-      options = [ "subvol=nix" "noatime" "compress=zstd" ];
-    };
+  fileSystems."/mnt/storage" = {
+    device = "/dev/disk/by-uuid/ce483e75-5886-4b03-a3f9-675b80560ac9";
+    fsType = "btrfs";
+    options = [
+      "subvol=root"
+      "compress=zstd"
+    ];
+  };
 
-  fileSystems."/var" =
-    {
-      device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
-      fsType = "btrfs";
-      options = [ "subvol=var" "compress=zstd" ];
-    };
-
-  fileSystems."/home" =
-    {
-      device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
-      fsType = "btrfs";
-      options = [ "subvol=home" "compress=zstd" ];
-    };
-
-  fileSystems."/root" =
-    {
-      device = "/dev/disk/by-uuid/7ca5fd2a-2a56-48fe-bd48-1e51b6a66714";
-      fsType = "btrfs";
-      options = [ "subvol=root" "compress=zstd" ];
-    };
-
-  fileSystems."/boot" =
-    {
-      device = "/dev/disk/by-uuid/2E20-49CB";
-      fsType = "vfat";
-    };
-
-  swapDevices = [{
-    device = "/swap/swapfile";
-    size = 32 * 1024; # 32 GByte
-  }];
-
-
-  fileSystems."/mnt/storage" =
-    {
-      device = "/dev/disk/by-uuid/ce483e75-5886-4b03-a3f9-675b80560ac9";
-      fsType = "btrfs";
-      options = [ "subvol=root" "compress=zstd" ];
-    };
-
-
-  fileSystems."/mnt/storage/backups" =
-    {
-      device = "/dev/disk/by-uuid/ce483e75-5886-4b03-a3f9-675b80560ac9";
-      fsType = "btrfs";
-      options = [ "subvol=backups" "noatime" ];
-    };
+  fileSystems."/mnt/storage/backups" = {
+    device = "/dev/disk/by-uuid/ce483e75-5886-4b03-a3f9-675b80560ac9";
+    fsType = "btrfs";
+    options = [
+      "subvol=backups"
+      "noatime"
+    ];
+  };
 
   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
diff --git a/nixos/surgat/configuration.nix b/nixos/surgat/configuration.nix
index f2c7ba2..5cd9596 100644
--- a/nixos/surgat/configuration.nix
+++ b/nixos/surgat/configuration.nix
@@ -1,6 +1,7 @@
-{ config
-, pkgs
-, ...
+{
+  config,
+  pkgs,
+  ...
 }:
 let
   hostName = "surgat";
@@ -85,14 +86,29 @@ in
       };
       "10-ninurta" = {
         matchConfig.Name = "ninurta";
-        address = [ "10.3.3.1/32" "fd42:9c3b:f96d:121::1/128" ];
+        address = [
+          "10.3.3.1/32"
+          "fd42:9c3b:f96d:121::1/128"
+        ];
         DHCP = "no";
         networkConfig.IPv6AcceptRA = false;
         linkConfig.RequiredForOnline = "no";
         routes = [
-          { routeConfig = { Destination = "10.3.3.3/24"; }; }
-          { routeConfig = { Destination = "fd42:9c3b:f96d:121::/64"; }; }
-          { routeConfig = { Destination = "fd42:9c3b:f96d:101::/64"; }; }
+          {
+            routeConfig = {
+              Destination = "10.3.3.3/24";
+            };
+          }
+          {
+            routeConfig = {
+              Destination = "fd42:9c3b:f96d:121::/64";
+            };
+          }
+          {
+            routeConfig = {
+              Destination = "fd42:9c3b:f96d:101::/64";
+            };
+          }
         ];
       };
     };
@@ -106,12 +122,18 @@ in
           PrivateKeyFile = "/var/lib/wireguard/hydra";
           ListenPort = 51235;
         };
-        wireguardPeers = [{
-          wireguardPeerConfig = {
-            PublicKey = "Kw2HVRb1zeA7NAzBvI3UzmOj45VqM358EBuZWdlAUDE=";
-            AllowedIPs = [ "10.3.3.3/32" "fd42:9c3b:f96d:121::3/128" "fd42:9c3b:f96d:101:4a21:bff:fe3e:9cfe/128" ];
-          };
-        }];
+        wireguardPeers = [
+          {
+            wireguardPeerConfig = {
+              PublicKey = "Kw2HVRb1zeA7NAzBvI3UzmOj45VqM358EBuZWdlAUDE=";
+              AllowedIPs = [
+                "10.3.3.3/32"
+                "fd42:9c3b:f96d:121::3/128"
+                "fd42:9c3b:f96d:101:4a21:bff:fe3e:9cfe/128"
+              ];
+            };
+          }
+        ];
       };
     };
   };
@@ -143,7 +165,10 @@ in
 
   services.resolved = {
     enable = true;
-    fallbackDns = [ "9.9.9.9" "2620:fe::fe" ];
+    fallbackDns = [
+      "9.9.9.9"
+      "2620:fe::fe"
+    ];
   };
 
   system.autoUpgrade.allowReboot = false;
diff --git a/nixos/surgat/hardware-configuration.nix b/nixos/surgat/hardware-configuration.nix
index 71b7257..8476779 100644
--- a/nixos/surgat/hardware-configuration.nix
+++ b/nixos/surgat/hardware-configuration.nix
@@ -1,17 +1,25 @@
 # Do not modify this file!  It was generated by ‘nixos-generate-config’
 # and may be overwritten by future invocations.  Please make changes
 # to /etc/nixos/configuration.nix instead.
-{ config
-, lib
-, pkgs
-, modulesPath
-, ...
-}: {
+{
+  config,
+  lib,
+  pkgs,
+  modulesPath,
+  ...
+}:
+{
   imports = [
     (modulesPath + "/profiles/qemu-guest.nix")
   ];
 
-  boot.initrd.availableKernelModules = [ "ata_piix" "virtio_pci" "xhci_pci" "sd_mod" "sr_mod" ];
+  boot.initrd.availableKernelModules = [
+    "ata_piix"
+    "virtio_pci"
+    "xhci_pci"
+    "sd_mod"
+    "sr_mod"
+  ];
   boot.initrd.kernelModules = [ ];
   boot.kernelModules = [ ];
   boot.extraModulePackages = [ ];
diff --git a/outputs.nix b/outputs.nix
index d588f6e..aea7953 100644
--- a/outputs.nix
+++ b/outputs.nix
@@ -26,7 +26,7 @@
       in
       import ./devshell.nix { inherit pkgs extraModules; };
 
-    formatter = pkgs.nixpkgs-fmt;
+    formatter = pkgs.nixfmt-tree;
 
     packages = import ./pkgs { inherit pkgs; } // {
       installer-iso = self.nixosConfigurations.installer.config.system.build.isoImage;
diff --git a/overlays.nix b/overlays.nix
index 2c63c08..ffcd441 100644
--- a/overlays.nix
+++ b/overlays.nix
@@ -1,2 +1 @@
-{
-}
+{ }
diff --git a/pkgs/default.nix b/pkgs/default.nix
index c78fe50..9fce6e9 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -1,2 +1 @@
-{ pkgs }:
-{ }
+{ pkgs }: { }
diff --git a/secrets/secrets.nix b/secrets/secrets.nix
index 946d855..1da186e 100644
--- a/secrets/secrets.nix
+++ b/secrets/secrets.nix
@@ -9,30 +9,82 @@ let
     surgat = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOOJ9UgAle5sX0pAawfRztckVwaQm2U8o0Bawv7cZfXE root@surgat";
   };
   backupSecrets = hostName: {
-    "${hostName}-backup-passphrase.age".publicKeys = [ systems.${hostName} dadada ];
-    "${hostName}-backup-ssh-key.age".publicKeys = [ systems.${hostName} dadada ];
+    "${hostName}-backup-passphrase.age".publicKeys = [
+      systems.${hostName}
+      dadada
+    ];
+    "${hostName}-backup-ssh-key.age".publicKeys = [
+      systems.${hostName}
+      dadada
+    ];
   };
 in
 {
-  "pruflas-wg0-key.age".publicKeys = [ systems.ninurta dadada ];
-  "pruflas-wg0-preshared-key.age".publicKeys = [ systems.ninurta dadada ];
-  "pruflas-wg-hydra-key.age".publicKeys = [ systems.ninurta dadada ];
-  "hydra-github-authorization.age".publicKeys = [ systems.ninurta dadada ];
-  "miniflux-admin-credentials.age".publicKeys = [ systems.surgat dadada ];
-  "gorgon-backup-passphrase-gs.age".publicKeys = [ systems.gorgon dadada ];
-  "paperless.age".publicKeys = [ systems.gorgon dadada ];
-  "initrd-surgat-ssh_host_ed25519_key.age".publicKeys = [ systems.surgat dadada ];
-  "surgat-ssh_host_ed25519_key.age".publicKeys = [ systems.surgat dadada ];
-  "ninurta-initrd-ssh-key.age".publicKeys = [ systems.ninurta dadada ];
-  "ddns-credentials.age".publicKeys = [ systems.agares systems.ninurta dadada ];
-  "etc-ppp-chap-secrets.age".publicKeys = [ systems.agares dadada ];
-  "etc-ppp-telekom-secret.age".publicKeys = [ systems.agares dadada ];
-  "wg-privkey-vpn-dadada-li.age".publicKeys = [ systems.agares dadada ];
-  "agares-wg0-key.age".publicKeys = [ systems.agares dadada ];
-} //
-backupSecrets "ninurta" //
-backupSecrets "gorgon" //
-backupSecrets "ifrit" //
-backupSecrets "pruflas" //
-backupSecrets "surgat" //
-backupSecrets "agares"
+  "pruflas-wg0-key.age".publicKeys = [
+    systems.ninurta
+    dadada
+  ];
+  "pruflas-wg0-preshared-key.age".publicKeys = [
+    systems.ninurta
+    dadada
+  ];
+  "pruflas-wg-hydra-key.age".publicKeys = [
+    systems.ninurta
+    dadada
+  ];
+  "hydra-github-authorization.age".publicKeys = [
+    systems.ninurta
+    dadada
+  ];
+  "miniflux-admin-credentials.age".publicKeys = [
+    systems.surgat
+    dadada
+  ];
+  "gorgon-backup-passphrase-gs.age".publicKeys = [
+    systems.gorgon
+    dadada
+  ];
+  "paperless.age".publicKeys = [
+    systems.gorgon
+    dadada
+  ];
+  "initrd-surgat-ssh_host_ed25519_key.age".publicKeys = [
+    systems.surgat
+    dadada
+  ];
+  "surgat-ssh_host_ed25519_key.age".publicKeys = [
+    systems.surgat
+    dadada
+  ];
+  "ninurta-initrd-ssh-key.age".publicKeys = [
+    systems.ninurta
+    dadada
+  ];
+  "ddns-credentials.age".publicKeys = [
+    systems.agares
+    systems.ninurta
+    dadada
+  ];
+  "etc-ppp-chap-secrets.age".publicKeys = [
+    systems.agares
+    dadada
+  ];
+  "etc-ppp-telekom-secret.age".publicKeys = [
+    systems.agares
+    dadada
+  ];
+  "wg-privkey-vpn-dadada-li.age".publicKeys = [
+    systems.agares
+    dadada
+  ];
+  "agares-wg0-key.age".publicKeys = [
+    systems.agares
+    dadada
+  ];
+}
+// backupSecrets "ninurta"
+// backupSecrets "gorgon"
+// backupSecrets "ifrit"
+// backupSecrets "pruflas"
+// backupSecrets "surgat"
+// backupSecrets "agares"

From 56af1ef2219d7033c33760c48c133f1c52bc1d87 Mon Sep 17 00:00:00 2001
From: Tim Schubert <dadada@dadada.li>
Date: Sun, 8 Jun 2025 15:37:30 +0200
Subject: [PATCH 124/124] chore: update dependencies

---
 flake.lock | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/flake.lock b/flake.lock
index 41a9b46..0aba46f 100644
--- a/flake.lock
+++ b/flake.lock
@@ -31,11 +31,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1673295039,
-        "narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
+        "lastModified": 1744478979,
+        "narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
         "owner": "lnl7",
         "repo": "nix-darwin",
-        "rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
+        "rev": "43975d782b418ebf4969e9ccba82466728c2851b",
         "type": "github"
       },
       "original": {
@@ -109,11 +109,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1682203081,
-        "narHash": "sha256-kRL4ejWDhi0zph/FpebFYhzqlOBrk0Pl3dzGEKSAlEw=",
+        "lastModified": 1745494811,
+        "narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "32d3e39c491e2f91152c84f8ad8b003420eab0a1",
+        "rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be",
         "type": "github"
       },
       "original": {
@@ -129,11 +129,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1748955489,
-        "narHash": "sha256-OmZXyW2g5qIuo5Te74McwR0TwauCO2sF3/SjGDVuxyg=",
+        "lastModified": 1749358668,
+        "narHash": "sha256-V91nN4Q9ZwX0N+Gzu+F8SnvzMcdURYnMcIvpfLQzD5M=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "bb846c031be68a96466b683be32704ef6e07b159",
+        "rev": "06451df423dd5e555f39857438ffc16c5b765862",
         "type": "github"
       },
       "original": {
@@ -194,11 +194,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1748942041,
-        "narHash": "sha256-HEu2gTct7nY0tAPRgBtqYepallryBKR1U8B4v2zEEqA=",
+        "lastModified": 1749195551,
+        "narHash": "sha256-W5GKQHgunda/OP9sbKENBZhMBDNu2QahoIPwnsF6CeM=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "fc7c4714125cfaa19b048e8aaf86b9c53e04d853",
+        "rev": "4602f7e1d3f197b3cb540d5accf5669121629628",
         "type": "github"
       },
       "original": {
@@ -210,11 +210,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1748693115,
-        "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
+        "lastModified": 1749143949,
+        "narHash": "sha256-QuUtALJpVrPnPeozlUG/y+oIMSLdptHxb3GK6cpSVhA=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
+        "rev": "d3d2d80a2191a73d1e86456a751b83aa13085d7d",
         "type": "github"
       },
       "original": {
@@ -226,11 +226,11 @@
     },
     "nixpkgs-small": {
       "locked": {
-        "lastModified": 1748942227,
-        "narHash": "sha256-U1oNpFoDO7QaO4iHsue7atK/5mJy7U1Y37mLU/SRk0o=",
+        "lastModified": 1749289455,
+        "narHash": "sha256-FmG/5HlnBrPNTCQv91GPUV2RKUw2WvDtyhXcN2fN280=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "7ab490624e297ff96f52858bb32b504516b8bb61",
+        "rev": "6dbd508802ef3f74cf792a25b653861ed8360a80",
         "type": "github"
       },
       "original": {
@@ -293,11 +293,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1748243702,
-        "narHash": "sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8=",
+        "lastModified": 1749194973,
+        "narHash": "sha256-eEy8cuS0mZ2j/r/FE0/LYBSBcIs/MKOIVakwHVuqTfk=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "1f3f7b784643d488ba4bf315638b2b0a4c5fb007",
+        "rev": "a05be418a1af1198ca0f63facb13c985db4cb3c5",
         "type": "github"
       },
       "original": {