From 7e0b85be456d906f8342e0b99b9c2e5463d49e56 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Sat, 17 Jan 2026 16:28:31 +0100 Subject: [PATCH 01/26] flake: switch to stable; adds `nixocaine` --- flake.lock | 446 +++++++++++++++++++++++++++++++++++++++++------------ flake.nix | 6 +- 2 files changed, 354 insertions(+), 98 deletions(-) diff --git a/flake.lock b/flake.lock index 3645bff..6b68155 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "ai-robots-txt": { + "flake": false, + "locked": { + "lastModified": 1766279226, + "narHash": "sha256-O/W/gX7EazxzR+ghdxg4i6S0SHEUZoX1afB//HKUNgY=", + "owner": "ai-robots-txt", + "repo": "ai.robots.txt", + "rev": "aa8519ec107d7cfa29b03005c9176708e1269965", + "type": "github" + }, + "original": { + "owner": "ai-robots-txt", + "repo": "ai.robots.txt", + "type": "github" + } + }, "alejandra": { "inputs": { "fenix": "fenix", @@ -41,11 +57,11 @@ ] }, "locked": { - "lastModified": 1765900596, - "narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=", + "lastModified": 1767024902, + "narHash": "sha256-sMdk6QkMDhIOnvULXKUM8WW8iyi551SWw2i6KQHbrrU=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace", + "rev": "b8a0c5ba5a9fbd2c660be7dd98bdde0ff3798556", "type": "github" }, "original": { @@ -54,6 +70,40 @@ "type": "github" } }, + "avalanche": { + "inputs": { + "nixpkgs": [ + "nixocaine", + "nam-shub-of-enki", + "nixpkgs" + ], + "nixpkgs-2505": "nixpkgs-2505", + "pre-commit-hooks": [ + "nixocaine", + "nam-shub-of-enki", + "pre-commit-hooks" + ], + "systems": "systems_3", + "treefmt-nix": [ + "nixocaine", + "nam-shub-of-enki", + "treefmt-nix" + ] + }, + "locked": { + "lastModified": 1765198317, + "narHash": "sha256-IQoB7lK8cJzWG3hEZrPe0Zoa8/1LRwcgTSoX9mpr20E=", + "ref": "refs/heads/main", + "rev": "01af515b690125cb0b636a86ab95cace3c0cc8c6", + "revCount": 160, + "type": "git", + "url": "https://git.madhouse-project.org/algernon/avalanche.git" + }, + "original": { + "type": "git", + "url": "https://git.madhouse-project.org/algernon/avalanche.git" + } + }, "disko": { "inputs": { "nixpkgs": "nixpkgs_2" @@ -98,11 +148,27 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1761588595, - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -174,7 +240,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_2" + "systems": "systems_5" }, "locked": { "lastModified": 1731533236, @@ -206,24 +272,6 @@ "type": "github" } }, - "funkwhale": { - "inputs": { - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1715161072, - "narHash": "sha256-idIdylmqPibBVePO2T67X4y6b9EZoAQq5w1hZZn38rY=", - "owner": "mmai", - "repo": "funkwhale-flake", - "rev": "4a744ac59a55323eefc6a0f263aa55ebdc61146e", - "type": "github" - }, - "original": { - "owner": "mmai", - "repo": "funkwhale-flake", - "type": "github" - } - }, "gitignore": { "inputs": { "nixpkgs": [ @@ -246,6 +294,28 @@ "type": "github" } }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "nixocaine", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -253,11 +323,11 @@ ] }, "locked": { - "lastModified": 1767104570, - "narHash": "sha256-GKgwu5//R+cLdKysZjGqvUEEOGXXLdt93sNXeb2M/Lk=", + "lastModified": 1768018810, + "narHash": "sha256-WREj1ZQ2wSGtyPAhQJ3SX/7PJ29PNKv04h/7NgqUS+M=", "owner": "nix-community", "repo": "home-manager", - "rev": "e4e78a2cbeaddd07ab7238971b16468cc1d14daf", + "rev": "7c5d9345ad7cc38832cd4007f5cd03daad64d75b", "type": "github" }, "original": { @@ -268,7 +338,7 @@ }, "hypr-contrib": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1766066098, @@ -329,11 +399,11 @@ ] }, "locked": { - "lastModified": 1763733840, - "narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=", + "lastModified": 1766946335, + "narHash": "sha256-MRD+Jr2bY11MzNDfenENhiK6pvN+nHygxdHoHbZ1HtE=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a", + "rev": "4af02a3925b454deb1c36603843da528b67ded6c", "type": "github" }, "original": { @@ -361,11 +431,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1767300597, - "narHash": "sha256-lGE1j1bEuNp7XoDP+oyyF/c+MzYAs6S+sz0NK71nXZE=", + "lastModified": 1768000181, + "narHash": "sha256-7p4kVQGlhlt6em/yDV787uSKs9C8WzkvtjwXHWZ34Ok=", "ref": "refs/heads/main", - "rev": "31d3181e1ee91e338fb4fb8207d64b8d689310fc", - "revCount": 6766, + "rev": "81e7498ec27156ee97aabba6fe4993412d98d1ab", + "revCount": 6803, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -409,11 +479,11 @@ ] }, "locked": { - "lastModified": 1765643131, - "narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=", + "lastModified": 1767023960, + "narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=", "owner": "hyprwm", "repo": "hyprland-guiutils", - "rev": "e50ae912813bdfa8372d62daf454f48d6df02297", + "rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660", "type": "github" }, "original": { @@ -439,11 +509,11 @@ ] }, "locked": { - "lastModified": 1767304464, - "narHash": "sha256-HsdfmPf5291Y3yXScMoj53P/9SS1DK3KgbprBuR8A4k=", + "lastModified": 1767723101, + "narHash": "sha256-jObY8O7OI+91hoE137APsDxm0235/Yx+HhFIip187zM=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "7a8521112361997d071fd1fef06d6becc7e53240", + "rev": "fef398ed5e4faf59bc43b915e46a75cfe8b16697", "type": "github" }, "original": { @@ -570,11 +640,11 @@ ] }, "locked": { - "lastModified": 1766160771, - "narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=", + "lastModified": 1766253372, + "narHash": "sha256-1+p4Kw8HdtMoFSmJtfdwjxM4bPxDK9yg27SlvUMpzWA=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f", + "rev": "51a4f93ce8572e7b12b7284eb9e6e8ebf16b4be9", "type": "github" }, "original": { @@ -624,11 +694,11 @@ ] }, "locked": { - "lastModified": 1766253200, - "narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=", + "lastModified": 1767473322, + "narHash": "sha256-RGOeG+wQHeJ6BKcsSB8r0ZU77g9mDvoQzoTKj2dFHwA=", "owner": "hyprwm", "repo": "hyprwire", - "rev": "1079777525b30a947c8d657fac158e00ae85de9d", + "rev": "d5e7d6b49fe780353c1cf9a1cf39fa8970bd9d11", "type": "github" }, "original": { @@ -637,6 +707,34 @@ "type": "github" } }, + "iocaine-stable": { + "inputs": { + "nixpkgs": [ + "nixocaine", + "nixpkgs" + ], + "pre-commit-hooks": [ + "nixocaine", + "pre-commit-hooks" + ], + "systems": "systems_2", + "treefmt-nix": [ + "nixocaine", + "treefmt-nix" + ] + }, + "locked": { + "lastModified": 1766482669, + "narHash": "sha256-4aSH+StMUiWbscwvZcqaWOsnAMaxueNEx+FK85Mro/w=", + "rev": "bfecc81e0164a8f248c88d40d968be50e66fbdda", + "type": "tarball", + "url": "https://git.madhouse-project.org/api/v1/repos/iocaine/iocaine/archive/bfecc81e0164a8f248c88d40d968be50e66fbdda.tar.gz?rev=bfecc81e0164a8f248c88d40d968be50e66fbdda" + }, + "original": { + "type": "tarball", + "url": "https://git.madhouse-project.org/iocaine/iocaine/archive/iocaine-3.1.0.tar.gz" + } + }, "ixx": { "inputs": { "flake-utils": [ @@ -667,6 +765,59 @@ "type": "github" } }, + "nam-shub-of-enki": { + "inputs": { + "avalanche": "avalanche", + "iocaine": [ + "nixocaine", + "iocaine-stable" + ], + "nixpkgs": [ + "nixocaine", + "nixpkgs" + ], + "pre-commit-hooks": [ + "nixocaine", + "pre-commit-hooks" + ], + "treefmt-nix": [ + "nixocaine", + "treefmt-nix" + ] + }, + "locked": { + "lastModified": 1766487857, + "narHash": "sha256-Inkx0g6Dvn/lAC2bQh/rNKvoP8NGpm/YqPDiagfAdKQ=", + "rev": "9e333811b45c7245b8744c0d9f292912513459b0", + "type": "tarball", + "url": "https://git.madhouse-project.org/api/v1/repos/iocaine/nam-shub-of-enki/archive/9e333811b45c7245b8744c0d9f292912513459b0.tar.gz?rev=9e333811b45c7245b8744c0d9f292912513459b0" + }, + "original": { + "type": "tarball", + "url": "https://git.madhouse-project.org/iocaine/nam-shub-of-enki/archive/iocaine-3.x.tar.gz" + } + }, + "nixocaine": { + "inputs": { + "iocaine-stable": "iocaine-stable", + "nam-shub-of-enki": "nam-shub-of-enki", + "nixpkgs": "nixpkgs_4", + "pre-commit-hooks": "pre-commit-hooks_2", + "systems": "systems_4", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1766487985, + "narHash": "sha256-1lf9iyBmFrDdoH1r5h56FvximUHs+PQktU/S5EFGlrI=", + "rev": "1e607be339fd1864328708dc80ec9b266a2bd7f5", + "type": "tarball", + "url": "https://git.madhouse-project.org/api/v1/repos/iocaine/nixocaine/archive/1e607be339fd1864328708dc80ec9b266a2bd7f5.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://git.madhouse-project.org/iocaine/nixocaine/archive/stable.tar.gz" + } + }, "nixos-hardware": { "locked": { "lastModified": 1767185284, @@ -698,6 +849,22 @@ "type": "github" } }, + "nixpkgs-2505": { + "locked": { + "lastModified": 1764939437, + "narHash": "sha256-4TLFHUwXraw9Df5mXC/vCrJgb50CRr3CzUzF0Mn3CII=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "00d2457e2f608b4be6fe8b470b0a36816324b0ae", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-lib": { "locked": { "lastModified": 1740877520, @@ -715,11 +882,11 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1766651565, - "narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=", + "lastModified": 1767379071, + "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539", + "rev": "fb7944c166a3b630f177938e478f0378e64ce108", "type": "github" }, "original": { @@ -746,22 +913,6 @@ } }, "nixpkgs_3": { - "locked": { - "lastModified": 1704290814, - "narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { "locked": { "lastModified": 1712163089, "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", @@ -777,18 +928,34 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_4": { "locked": { - "lastModified": 1767116409, - "narHash": "sha256-5vKw92l1GyTnjoLzEagJy5V5mDFck72LiQWZSOnSicw=", + "lastModified": 1766201043, + "narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cad22e7d996aea55ecab064e84834289143e44a0", + "rev": "b3aad468604d3e488d627c0b43984eb60e75e782", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1767799921, + "narHash": "sha256-r4GVX+FToWVE2My8VVZH4V0pTIpnu2ZE8/Z4uxGEMBE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d351d0653aeb7877273920cd3e823994e7579b0b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } @@ -827,11 +994,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1767116409, - "narHash": "sha256-5vKw92l1GyTnjoLzEagJy5V5mDFck72LiQWZSOnSicw=", + "lastModified": 1767892417, + "narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=", "owner": "nixos", "repo": "nixpkgs", - "rev": "cad22e7d996aea55ecab064e84834289143e44a0", + "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", "type": "github" }, "original": { @@ -843,11 +1010,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1766840161, - "narHash": "sha256-Ss/LHpJJsng8vz1Pe33RSGIWUOcqM1fjrehjUkdrWio=", + "lastModified": 1767364772, + "narHash": "sha256-fFUnEYMla8b7UKjijLnMe+oVFOz6HjijGGNS1l7dYaQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3edc4a30ed3903fdf6f90c837f961fa6b49582d1", + "rev": "16c7794d0a28b5a37904d55bcca36003b9109aaa", "type": "github" }, "original": { @@ -903,11 +1070,11 @@ "nixpkgs": "nixpkgs_8" }, "locked": { - "lastModified": 1767347500, - "narHash": "sha256-v+O3SCBPq5qSmz+trAvcizq+cKrd8qco7Z2XG+YLRC8=", + "lastModified": 1768038731, + "narHash": "sha256-1M1EhmredaBSkT/IsHWEVDXJjNyvsM6slDBiNfDj+HA=", "owner": "nix-community", "repo": "NUR", - "rev": "91f6328555690ffc84ab2ada1d21f544940811ac", + "rev": "3cb7022a0e5b669bc765dcb9c280b6653730362c", "type": "github" }, "original": { @@ -943,7 +1110,7 @@ "oisd": { "flake": false, "locked": { - "narHash": "sha256-FAfdtuHCMBZtkhSqHUCQj5AtMcfiem8/D3VuV+pOfo4=", + "narHash": "sha256-wEkqluvwxLyfwqhKKn0d4NohXzenTZjX3gJGxtDes74=", "type": "file", "url": "https://big.oisd.nl/domainswild" }, @@ -962,11 +1129,11 @@ ] }, "locked": { - "lastModified": 1765911976, - "narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=", + "lastModified": 1767281941, + "narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "b68b780b69702a090c8bb1b973bab13756cc7a27", + "rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa", "type": "github" }, "original": { @@ -975,15 +1142,39 @@ "type": "github" } }, + "pre-commit-hooks_2": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore_2", + "nixpkgs": [ + "nixocaine", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1763032142, + "narHash": "sha256-M+2QBQoC0lzkCdUQRXylR2RkcT6BCRfW3KDs+c/IGLw=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "84255025dee4c8701a99fbff65ac3c9095952f99", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { + "ai-robots-txt": "ai-robots-txt", "alejandra": "alejandra", "disko": "disko", - "funkwhale": "funkwhale", "home-manager": "home-manager", "hypr-contrib": "hypr-contrib", "hyprland": "hyprland", "hyprland-plugins": "hyprland-plugins", + "nixocaine": "nixocaine", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_5", "nixvim": "nixvim", @@ -1015,11 +1206,11 @@ "nixpkgs": "nixpkgs_9" }, "locked": { - "lastModified": 1766894905, - "narHash": "sha256-pn8AxxfajqyR/Dmr1wnZYdUXHgM3u6z9x0Z1Ijmz2UQ=", + "lastModified": 1768032389, + "narHash": "sha256-BVpTd93G0XmAK1iXiBdhUA5Uvt+WmM1YL0mA4REcT68=", "owner": "Mic92", "repo": "sops-nix", - "rev": "61b39c7b657081c2adc91b75dd3ad8a91d6f07a7", + "rev": "a8cfe238b93166f9f96c0df67a94e572554ee624", "type": "github" }, "original": { @@ -1031,14 +1222,14 @@ "spicetify-nix": { "inputs": { "nixpkgs": "nixpkgs_10", - "systems": "systems_3" + "systems": "systems_6" }, "locked": { - "lastModified": 1767195736, - "narHash": "sha256-0xvPSbhIGeJzsJXNTkgJ3PjwdVItKm85wzYKA9NmSzI=", + "lastModified": 1767502559, + "narHash": "sha256-om0IPjW850vhhIrNZ5tiXjsYuqyoI44IdE+I9AwZ96I=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "465adc0ab6ff0c4b9b1db1c6e7fd7eeb553b3261", + "rev": "806c1fdeb7af3e013215d14f5d9f06685fa6650f", "type": "github" }, "original": { @@ -1072,9 +1263,8 @@ "type": "github" }, "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" + "id": "systems", + "type": "indirect" } }, "systems_3": { @@ -1087,8 +1277,72 @@ "type": "github" }, "original": { + "id": "systems", + "type": "indirect" + } + }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "id": "systems", + "type": "indirect" + } + }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_6": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixocaine", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1762938485, + "narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", "type": "github" } }, diff --git a/flake.nix b/flake.nix index 9424688..caffa19 100644 --- a/flake.nix +++ b/flake.nix @@ -10,7 +10,7 @@ hyprland-plugins.url = "github:hyprwm/hyprland-plugins"; hyprland-plugins.inputs.hyprland.follows = "hyprland"; hypr-contrib.url = "github:hyprwm/contrib"; - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nur.url = "github:nix-community/NUR"; nixos-hardware.url = "github:nixos/nixos-hardware"; nixvim.url = "github:ahwxorg/nixvim-config"; @@ -19,7 +19,9 @@ spicetify-nix.url = "github:Gerg-L/spicetify-nix"; oisd.url = "https://big.oisd.nl/domainswild"; oisd.flake = false; - funkwhale.url = "github:mmai/funkwhale-flake"; + nixocaine.url = "https://git.madhouse-project.org/iocaine/nixocaine/archive/stable.tar.gz"; + ai-robots-txt.url = "github:ai-robots-txt/ai.robots.txt"; + ai-robots-txt.flake = false; }; outputs = From b5e2d7ef1e86cfcd9d0d1e56862d12bb40e29397 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Sat, 17 Jan 2026 16:28:57 +0100 Subject: [PATCH 02/26] chore: acme things; stupidity --- modules/services/nginx.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/services/nginx.nix b/modules/services/nginx.nix index 0cf7bff..3eac497 100644 --- a/modules/services/nginx.nix +++ b/modules/services/nginx.nix @@ -6,10 +6,17 @@ }: { + #imports = [ + # (import ./iocaine.nix) + #]; + security.acme = { acceptTerms = true; defaults.email = lib.mkDefault "ahwx@ahwx.org"; + maxConcurrentRenewals = 1; defaults = { + validMinDays = 30; + renewInterval = "daily"; # server = "https://acme-staging-v02.api.letsencrypt.org/directory"; # dnsPropagationCheck = false; extraLegoFlags = [ "--dns.propagation-wait=300s" ]; From 33b7e751208f843c83c9f77cb126de5aaf372c22 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Sat, 17 Jan 2026 16:29:24 +0100 Subject: [PATCH 03/26] chore: remove empty import block --- modules/services/mumble.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/services/mumble.nix b/modules/services/mumble.nix index febfefc..e085116 100644 --- a/modules/services/mumble.nix +++ b/modules/services/mumble.nix @@ -1,4 +1,3 @@ -{ ... }: { services.murmur = { enable = true; From 6895cff885684dff74be281500b03a15da734544 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Sat, 17 Jan 2026 16:30:25 +0100 Subject: [PATCH 04/26] feat: proxy services from `dandelion` through `violet` to not require vpn for `immich` --- modules/services/dandelion-proxies.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 modules/services/dandelion-proxies.nix diff --git a/modules/services/dandelion-proxies.nix b/modules/services/dandelion-proxies.nix new file mode 100644 index 0000000..c2c5fea --- /dev/null +++ b/modules/services/dandelion-proxies.nix @@ -0,0 +1,14 @@ +{ + services = { + nginx.virtualHosts."photos.liv.town" = { + forceSSL = true; + sslCertificate = "/var/lib/acme/liv.town/cert.pem"; + sslCertificateKey = "/var/lib/acme/liv.town/key.pem"; + locations."/" = { + # proxyPass = "http://unix:${toString config.services.anubis.instances.librey.settings.BIND}"; + proxyPass = "http://172.16.10.130:2283"; + proxyWebsockets = true; + }; + }; + }; +} From 80de195146bacc971f6fe4eedf2730f0414034a4 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Sat, 17 Jan 2026 16:31:11 +0100 Subject: [PATCH 05/26] feat: import `virtualization` everywhere, toggle inside `virtualization.nix` which hosts have access to it --- modules/core/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/core/default.nix b/modules/core/default.nix index 31e123e..e2f0671 100644 --- a/modules/core/default.nix +++ b/modules/core/default.nix @@ -18,5 +18,6 @@ ++ [ (import ./user.nix) ] ++ [ (import ./bluetooth.nix) ] ++ [ (import ./yubikey.nix) ] - ++ [ (import ./wayland.nix) ]; + ++ [ (import ./wayland.nix) ] + ++ [ (import ./virtualization.nix) ]; } From 6f900e4339ec9eb7fba30a75f8b11aa8841d30d0 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Sat, 17 Jan 2026 16:36:31 +0100 Subject: [PATCH 06/26] chore: enable/disable services --- modules/services/violet.nix | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/services/violet.nix b/modules/services/violet.nix index 6705874..87475fd 100644 --- a/modules/services/violet.nix +++ b/modules/services/violet.nix @@ -7,22 +7,21 @@ ++ [ (import ./borg.nix) ] ++ [ (import ./binternet-proxy.nix) ] ++ [ (import ./bluemap-proxy.nix) ] + ++ [ (import ./dandelion-proxies.nix) ] + ++ [ (import ./torrent.nix) ] ++ [ (import ./docker.nix) ] ++ [ (import ./email.nix) ] ++ [ (import ./forgejo.nix) ] - # ++ [ (import ./funkwhale.nix) ] ++ [ (import ./grafana.nix) ] - ++ [ (import ./guacamole.nix) ] ++ [ (import ./gokapi.nix) ] ++ [ (import ./jellyfin.nix) ] - # ++ [ (import ./jitsi-meet.nix) ] ++ [ (import ./librey-proxy.nix) ] ++ [ (import ./lidarr.nix) ] ++ [ (import ./matrix/default.nix) ] ++ [ (import ./mumble.nix) ] ++ [ (import ./monitoring.nix) ] # ++ [ (import ./minio.nix) ] - # ++ [ (import ./nextcloud.nix) ] + ++ [ (import ./nextcloud.nix) ] ++ [ (import ./ntfy.nix) ] ++ [ (import ./nginx.nix) ] ++ [ (import ./nix-serve.nix) ] @@ -33,7 +32,6 @@ ++ [ (import ./remote-build.nix) ] ++ [ (import ./readarr.nix) ] ++ [ (import ./sharkey-proxy.nix) ] - # ++ [ (import ./komga.nix) ] ++ [ (import ./tailscale.nix) ] ++ [ (import ./uptime-kuma.nix) ] ++ [ (import ./vaultwarden.nix) ]; From 5853cc3a4efc1939cf637ba6f9bf3ef62c4cc55a Mon Sep 17 00:00:00 2001 From: Ahwx Date: Sat, 17 Jan 2026 16:36:39 +0100 Subject: [PATCH 07/26] feat: import `nixocaine` --- modules/core/system.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/core/system.nix b/modules/core/system.nix index 3d2e0a1..29852e7 100644 --- a/modules/core/system.nix +++ b/modules/core/system.nix @@ -47,6 +47,7 @@ overlays = [ self.overlays.default inputs.nur.overlay + inputs.nixocaine.overlays.default ]; }; From cdbfd663becaa0a0b90bddbb6cc9bbc1a69c4673 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 19 Jan 2026 21:57:41 +0100 Subject: [PATCH 08/26] chore: adds things --- modules/core/sops.nix | 6 ++++++ secrets/violet/secrets.yaml | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/core/sops.nix b/modules/core/sops.nix index 2d33e6a..8163c21 100644 --- a/modules/core/sops.nix +++ b/modules/core/sops.nix @@ -25,6 +25,12 @@ "matrixRegistrationSecret" = { owner = "matrix-synapse"; }; + "matrixWhatsAppBridgeSecret" = { + owner = "mautrix-signal"; + }; + "matrixSignalBridgeSecret" = { + owner = "mautrix-whatsapp"; + }; "smbLoginDetails" = { }; "syncplay" = { }; "funkwhaleDjangoSecret" = { }; diff --git a/secrets/violet/secrets.yaml b/secrets/violet/secrets.yaml index 799fcc4..e2c57fc 100644 --- a/secrets/violet/secrets.yaml +++ b/secrets/violet/secrets.yaml @@ -1,6 +1,8 @@ systemMailerPassword: ENC[AES256_GCM,data:b1fvCLZMiA9xDu/9BKQGnCTbwj46uixlo37qer66DK09U7CEB8ZBqe+Y+DqjcOJUHHHSo8Qk1XGvGQWypkGICxmxNP8KWvmY42Woh3677APvotUdjW5fVKTgB+Y1m/6/cvXKicJFjbw5LOzZ2/JcXP01KPSkRxWb/X4xzvawSMY=,iv:vbchTqHaH2PB9Mll/s8q4zLhN6ThAsCVvhoggOhj7H4=,tag:6b+TiV1YYHWOn0P9qJZ/bQ==,type:str] forgejoWorkerSecret: ENC[AES256_GCM,data:AEWtWSjEPMbArrPYa6sTjiYp0GiePcTQ4gXKk1LP6UDK7auX1y7eOQ==,iv:TGEerZVCfL0TMka4/vBGb0ejhqxA5GbUpQIRbXnuCNs=,tag:IUKoyT9dmq65oWu/D7K1ag==,type:str] matrixRegistrationSecret: ENC[AES256_GCM,data:xDFYVpBJa+FHWjmLlZspJAzJcoav53nWPoctQ5+gAnDYMurtSCkmoQn8r5j6fOmiy56KQyk8AD2/kT1HeFFNKA==,iv:82eIoh1ePc0VxfTbBPxpwGhYrcdRMI6WjFhlUJhxuHk=,tag:FAYUXUy0lEQU56ni2dxvbg==,type:str] +matrixSignalBridgeSecret: ENC[AES256_GCM,data:eDkFyLMXd4qk3XjYtMeaspSgCy2tfvLwwJPJ4cg9TPywSb68jq9r0r5r8/mKTiS/4ViAvnSrl6irkeam5fOG6g==,iv:tUVKWRm+uH9Qb1Uji6vz4qCo6ZMmGKss4X0XgQhjS1s=,tag:lNYvdcUTYJr7psXSZg6kRA==,type:str] +matrixWhatsAppBridgeSecret: ENC[AES256_GCM,data:RzIJ+2tkDZkDLiXxeN8yZvtTigvqhRXNdPBXNb+o8OR/LqIYQ/I3mjB+hlne3mCvTnXTAGX+992Y9BQLMuPdUA==,iv:JhkxdbjC9Gkth+FbOV/QI3PnQVQQ84FlVWIaX/W66C4=,tag:5hFDdP0hDWuIxl8Ad/i95g==,type:str] minioRootCredentials: ENC[AES256_GCM,data:/IrpspB6Puy+6scHheBSBp6zQVh8uwpu4nFPLSkueuohSUESPHbRb0w1XAp4V5HraMtOThFqlm0JeBW0XbhY4E8L1P+S3/aMLKjp2voA928l9AjF6sTaSKsO7qh6LEmo90qm9Jo0nDo=,iv:M5NOGfSsl+LggLyEjV49vcWCaYmbG0eJcgwI2v7AKcI=,tag:A+CrDTL+TkEayOqBUII4aQ==,type:str] smbLoginDetails: ENC[AES256_GCM,data:Puv+Vewv0TDpiYM+Uym180CLT+vXKoeSW/uNxAX7f9y0NvG2Uqqglj/HcCMhyQn9GpCIQyb+xidlLWn3Ywdg6ybaf4WN5EdAEXMK/FRQyVIvvOcCcwG+IeUc1Wc5NmM2qEbxLqLNDWxiH8/QsrT9rWWxxx4c4eD1HOpIv9LCuavXXLmKy6JvtxYwtOv4u8ukp+e0uP7pLN7d,iv:XH+6soi7lZiGz9ZGlQb49f44API715ib/Y7Zh3hFnDM=,tag:iz8RYRSwNxrMxy+rqeM07Q==,type:str] syncplay: ENC[AES256_GCM,data:Vrn1GmmUnIikiTKIQtP3qBfZIZRW2Za2Xhhegp7PAulujxumLGMAz9lBnTPBy3uofpayP8NJuU9v8cpU4a4w5A==,iv:s4RFaZwftqmI3BhpO1msvpfO2u3AGlPik7nMX2hjnyE=,tag:13zft7dmd85udoi7CnfWYg==,type:str] @@ -28,7 +30,7 @@ sops: S3pjSjlhZjZiSDBNakhLVzNKMjd3bWsKC2geLVXFp190lkjxtmZKq8aLN0XMNeAI VqbwIY3a30iuWAaxqf8h1ZuCGJvbAZZBevFZraj9yktRHc54JV3Aww== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-12-24T10:35:47Z" - mac: ENC[AES256_GCM,data:PTxBUZtXp11oBJhMM7oLJ2kj7xQRyuopfF1Ab5A22vxCncJV4utMa0IkL374rWCZWmBREVb7SykezN+5tDvhr0e8Bmq0Xy1wLfvFscD2PH2BNjpcTe6bhHatMCkRlkL3GMMv/UHjqEilIzoTAw+BC0Oxq/X08xhIyHIBHg38d3s=,iv:kgOzQTTSG5Oqfs85n20SB5MwsnyB8mFjnVG573nFH+4=,tag:+U5Tus51DqCASBSfNIBDsA==,type:str] + lastmodified: "2026-01-17T16:49:19Z" + mac: ENC[AES256_GCM,data:v2fmXdzWYHAmYYdneyb7+FotqpqsSJS/8EAHmL2BBftIw3Ia7K+6NXVbmWdqYFlgPBysRoTHHwiylt5sXKKjPs70iBmsnoxmuu7gDyneGOArHXhRstRY5wnWp/u2Lfw18jCsQkgiC3SIiEka1X+usOHtk65hhHG3Qrdggh22BqI=,iv:lb0VMvQ11eux47tFTWBMTX+9ouwhmab+IXGi2m/n8yU=,tag:N/U8nziBu9SXdLs+oMnU9A==,type:str] unencrypted_suffix: _unencrypted version: 3.11.0 From 576a8a378084b4dbad068278d9e8d5c9e2e4761f Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:00:04 +0100 Subject: [PATCH 09/26] feat: set new power profiles; move displaylink to laptop role as it is wasted cpu usage on desktops --- roles/laptop.nix | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/roles/laptop.nix b/roles/laptop.nix index 6f1fa7a..f256e9a 100644 --- a/roles/laptop.nix +++ b/roles/laptop.nix @@ -30,11 +30,7 @@ in }; # DisplayLink - services.xserver.videoDrivers = [ - "displaylink" - "modesetting" - ]; - systemd.services.dlm.wantedBy = [ "multi-user.target" ]; + import = [ (../modules/core/displaylink.nix) ]; networking.networkmanager.enable = true; @@ -48,6 +44,13 @@ in thermald.enable = true; power-profiles-daemon.enable = true; + udev.extraRules = '' + # Switch to power-save profile when on battery + SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="${pkgs.power-profiles-daemon}/bin/powerprofilesctl set power-saver", RUN+="/bin/sh -c 'echo 30 | tee /sys/class/backlight/amdgpu_bl1/brightness'" + # Switch to balanced profile when plugged in + SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="${pkgs.power-profiles-daemon}/bin/powerprofilesctl set balanced", RUN+="/bin/sh -c 'cat /sys/class/backlight/amdgpu_bl1/max_brightness > /sys/class/backlight/amdgpu_bl1/brightness'" + ''; + upower = { enable = true; percentageLow = 20; @@ -55,6 +58,21 @@ in percentageAction = 5; criticalPowerAction = "Hibernate"; }; + #auto-cpufreq = { + # enable = true; + # settings = { + # battery = { + # governor = "powersave"; + # turbo = "never"; + # energy_performance_preference = "balance_power"; + # }; + # charger = { + # governor = "performance"; + # turbo = "auto"; + # energy_performance_preference = "performance"; + # }; + # }; + #}; }; # powerManagement.powertop.enable = false; # somehow figure out how to let this not apply to specific USB devices, as they will auto suspend and that is annoying. }; From f2abfb68e418df5219823ae7dbee56e961d224d1 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:00:11 +0100 Subject: [PATCH 10/26] feat: enable envfs --- modules/core/system.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/core/system.nix b/modules/core/system.nix index 3d2e0a1..0301029 100644 --- a/modules/core/system.nix +++ b/modules/core/system.nix @@ -30,6 +30,8 @@ libraries = with pkgs; [ ]; }; + services.envfs.enable = true; + nixpkgs = { overlays = [ self.overlays.default From 30e5f08e767098eb0fcfef2d7c8e819bedfbeefb Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:00:22 +0100 Subject: [PATCH 11/26] chore: cleanup --- modules/core/program.nix | 7 ------- 1 file changed, 7 deletions(-) diff --git a/modules/core/program.nix b/modules/core/program.nix index 3acaa58..f82b534 100644 --- a/modules/core/program.nix +++ b/modules/core/program.nix @@ -8,11 +8,4 @@ # pinentryFlavor = ""; }; }; - - environment.systemPackages = with pkgs; [ - wget - git - dig - traceroute - ]; } From 378ca5fa00c48c39134de8e10e7ff2c3734402a9 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:00:51 +0100 Subject: [PATCH 12/26] feat: adds various networking programs/packages, move tailscale to `core` instead of `services` --- modules/core/network.nix | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/modules/core/network.nix b/modules/core/network.nix index 9cb9355..c6031a3 100644 --- a/modules/core/network.nix +++ b/modules/core/network.nix @@ -12,5 +12,29 @@ }; services = { avahi.enable = lib.mkDefault false; + tailscale = { + enable = true; + useRoutingFeatures = "client"; + extraUpFlags = [ + # "--accept-dns=false" + "--accept-routes" + ]; + }; }; + + programs = { + wireshark.enable = true; + }; + + environment.systemPackages = with pkgs; [ + dig + iftop + inetutils + ipcalc + iperf + nmap + tcpdump + traceroute + tshark + ]; } From 81516955ec9ec13be969d1cdbb59269068e30947 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:01:03 +0100 Subject: [PATCH 13/26] feat: enable logitech wireless hardware support for trackball --- modules/core/hardware.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/core/hardware.nix b/modules/core/hardware.nix index ca598dc..20dd4c1 100644 --- a/modules/core/hardware.nix +++ b/modules/core/hardware.nix @@ -1,7 +1,11 @@ { pkgs, ... }: -{ +{ services.smartd = { enable = true; autodetect = true; }; + hardware.logitech.wireless = { + enable = true; + enableGraphical = true; + }; } From 00eab67bfb64f1e70f2701666233c715c423e806 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:01:13 +0100 Subject: [PATCH 14/26] chore: move displaylink over to laptop role --- modules/core/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/core/default.nix b/modules/core/default.nix index 31e123e..c896eec 100644 --- a/modules/core/default.nix +++ b/modules/core/default.nix @@ -4,7 +4,6 @@ [ (import ./docker.nix) ] ++ [ (import ../security/default.nix) ] ++ [ (import ./hardware.nix) ] - ++ [ (import ./displaylink.nix) ] # ++ [(import ./printing.nix)] ++ [ (import ./xserver.nix) ] ++ [ (import ./network.nix) ] From a2ae9bfa4b72c1cff9a4d495ac5247fc802777b6 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:01:35 +0100 Subject: [PATCH 15/26] feat: write first little bit of `xdg.mimeApps` options --- modules/home/xdg.nix | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 modules/home/xdg.nix diff --git a/modules/home/xdg.nix b/modules/home/xdg.nix new file mode 100644 index 0000000..794dc7f --- /dev/null +++ b/modules/home/xdg.nix @@ -0,0 +1,9 @@ +{ + xdg.mimeApps = { + enable = true; + defaultApplications = { + "x-scheme-handler/sgnl" = "signal-desktop.desktop"; + "x-scheme-handler/signalcaptcha" = "signal-desktop.desktop"; + }; + }; +} From ad76b07bbca5931a5e2c2938a7988c78930609a7 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:01:57 +0100 Subject: [PATCH 16/26] feat: import `ssh` and `xdg` --- modules/home/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/home/default.nix b/modules/home/default.nix index aaec9da..c6bb4d7 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -16,8 +16,10 @@ ++ [ (import ./packages.nix) ] ++ [ (import ./scripts/scripts.nix) ] ++ [ (import ./spotify.nix) ] + ++ [ (import ./ssh.nix) ] ++ [ (import ./waybar) ] ++ [ (import ./zsh.nix) ] ++ [ (import ./qutebrowser.nix) ] + ++ [ (import ./xdg.nix) ] ++ [ (import ./tmux.nix) ]; } From d3dac79665678b1c85482c65ef01154d5b6ab613 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:02:13 +0100 Subject: [PATCH 17/26] feat: adds `matchBlocks` for git hosts --- modules/home/ssh.nix | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 modules/home/ssh.nix diff --git a/modules/home/ssh.nix b/modules/home/ssh.nix new file mode 100644 index 0000000..f9b3df5 --- /dev/null +++ b/modules/home/ssh.nix @@ -0,0 +1,9 @@ +{ + programs.ssh = { + matchBlocks = { + "github.com gitlab.com" = { + user = "git"; + }; + }; + }; +} From 4846b393d0da0db8906d24d4bce46742a6bb977b Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:02:35 +0100 Subject: [PATCH 18/26] feat: adds spellcheck dictionaries --- modules/home/packages.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/home/packages.nix b/modules/home/packages.nix index 9069d0b..17f39e3 100644 --- a/modules/home/packages.nix +++ b/modules/home/packages.nix @@ -66,6 +66,19 @@ nmap aerc + aspell + aspellDicts.de + aspellDicts.nl + aspellDicts.uk + + # Hunspell dictionaries for spell checking + hunspell + hunspellDicts.de_DE # German + hunspellDicts.en_GB-ise # UK English with -ise spellings + hunspellDicts.en_US + hunspellDicts.nl_NL # Dutch + hunspellDicts.nl_nl # Dutch (alternative) + # Install pip packages # python3 # python3Packages.pip From 7a844ee3cbabebe39d9439cfa12a4458440e6276 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:03:02 +0100 Subject: [PATCH 19/26] chore: disable `eDP-1` on `sakura` when connected to monitor at main desk --- modules/home/kanshi.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/kanshi.nix b/modules/home/kanshi.nix index 015b7b7..f7c1f6c 100644 --- a/modules/home/kanshi.nix +++ b/modules/home/kanshi.nix @@ -86,7 +86,7 @@ } { criteria = "eDP-1"; - status = if (host == "sakura") then "enable" else "disable"; + status = if (host == "sakura") then "disable" else "disable"; position = if (host == "sakura") then "152,1440" else "300,1440"; } ]; From 299b2f1a5618fe01917e10af55e2b71b0a1fb5ca Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 21:05:18 +0100 Subject: [PATCH 20/26] feat: adds `power-profiles-daemon` to `waybar`; remove tooltip for `powerdraw` module --- modules/home/waybar/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/home/waybar/default.nix b/modules/home/waybar/default.nix index 193dd32..8dfb270 100644 --- a/modules/home/waybar/default.nix +++ b/modules/home/waybar/default.nix @@ -288,7 +288,8 @@ "orientation": "horizontal", "modules": [ "battery", - "custom/powerdraw" + "custom/powerdraw", + "power-profiles-daemon" ], "drawer": { "transition-left-to-right": false, @@ -318,6 +319,14 @@ "custom/powerdraw": { "interval": 60, "exec": "~/.local/bin/waybar-powerdraw", + "tooltip": false, + }, + + "power-profiles-daemon": { + "interval": 60, + "format": "{profile}", + "tooltip-format": "Power profile: {profile}\nDriver: {driver}", + "tooltip": true, }, "group/clock": { From a5223cd0c073090ab9552f138606c80ffd8526e3 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 22:39:00 +0100 Subject: [PATCH 21/26] fix: do not import `displaylink` for now --- roles/laptop.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/laptop.nix b/roles/laptop.nix index f256e9a..f747485 100644 --- a/roles/laptop.nix +++ b/roles/laptop.nix @@ -30,7 +30,7 @@ in }; # DisplayLink - import = [ (../modules/core/displaylink.nix) ]; + # imports = [ ../modules/core/displaylink.nix ]; networking.networkmanager.enable = true; From 17f3a7f07f97a6c2782a08d6519d2dac12c42170 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 22:39:30 +0100 Subject: [PATCH 22/26] feat: adds move `xdg` defaults --- modules/home/xdg.nix | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/modules/home/xdg.nix b/modules/home/xdg.nix index 794dc7f..3bfd17c 100644 --- a/modules/home/xdg.nix +++ b/modules/home/xdg.nix @@ -2,8 +2,40 @@ xdg.mimeApps = { enable = true; defaultApplications = { + "image/tiff" = "nsxiv.desktop"; + "image/jp2" = "nsxiv.desktop"; + "image/jxl" = "nsxiv.desktop"; + "image/jpeg" = "nsxiv.desktop"; + "image/x-canon-cr2" = "nsxiv.desktop"; + "image/x-jp2-codestream" = "nsxiv.desktop"; + "image/webp" = "nsxiv.desktop"; + "image/x-nikon-nef" = "nsxiv.desktop"; + "image/x-sony-arw" = "nsxiv.desktop"; + "image/gif" = "nsxiv.desktop"; + "image/x-fuji-raf" = "nsxiv.desktop"; + "image/heif" = "nsxiv.desktop"; + "audio/mpeg" = "mpv.desktop"; + "audio/mp3" = "mpv.desktop"; + "audio/vnd.wave" = "mpv.desktop"; + "video/mp4" = "mpv.desktop"; + "video/mkv" = "mpv.desktop"; "x-scheme-handler/sgnl" = "signal-desktop.desktop"; "x-scheme-handler/signalcaptcha" = "signal-desktop.desktop"; + "x-scheme-handler/http" = "chromium-browser.desktop"; + "x-scheme-handler/https" = "chromium-browser.desktop"; + "x-scheme-handler/about" = "chromium-browser.desktop"; + "x-scheme-handler/unknown" = "chromium-browser.desktop"; + "x-scheme-handler/mailto" = "thunderbird.desktop"; + "x-scheme-handler/chrome" = "thunderbird.desktop"; + "text/calendar" = "thunderbird.desktop"; + "application/pdf" = "org.pwmt.zathura-pdf-mupdf.desktop"; + "application/x-extension-htm" = "chromium-browser.desktop"; + "application/x-extension-html" = "chromium-browser.desktop"; + "application/x-extension-shtml" = "chromium-browser.desktop"; + "application/x-extension-xht" = "chromium-browser.desktop"; + "application/x-extension-xhtml" = "chromium-browser.desktop"; + "application/x-zerosize" = "nsxiv.desktop"; + "application/xhtml+xml" = "chromium-browser.desktop"; }; }; } From 36aa522f607e1e4f0e654855e20deb1176d79639 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 22:40:10 +0100 Subject: [PATCH 23/26] feat: adds `htop` configuration (and thus move htop to own file) --- modules/home/htop.nix | 59 +++++++++++++++++++++++++++++++++++++++ modules/home/packages.nix | 1 - 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 modules/home/htop.nix diff --git a/modules/home/htop.nix b/modules/home/htop.nix new file mode 100644 index 0000000..f9555fd --- /dev/null +++ b/modules/home/htop.nix @@ -0,0 +1,59 @@ +{ pkgs, ... }: +{ + + programs.htop = { + enable = true; + package = pkgs.htop; + }; + + home.file.".config/htop/htoprc" = { + text = '' + fields=0 48 38 39 40 2 46 109 110 47 49 1 + hide_kernel_threads=1 + hide_userland_threads=0 + hide_running_in_container=0 + shadow_other_users=0 + show_thread_names=0 + show_program_path=1 + highlight_base_name=1 + highlight_deleted_exe=1 + shadow_distribution_path_prefix=0 + highlight_megabytes=1 + highlight_threads=1 + highlight_changes=0 + highlight_changes_delay_secs=5 + find_comm_in_cmdline=1 + strip_exe_from_cmdline=1 + show_merged_command=0 + header_margin=1 + screen_tabs=1 + detailed_cpu_time=1 + cpu_count_from_one=0 + show_cpu_usage=1 + show_cpu_frequency=1 + show_cpu_temperature=1 + degree_fahrenheit=0 + show_cached_memory=1 + update_process_names=0 + account_guest_in_cpu_meter=0 + color_scheme=6 + enable_mouse=1 + delay=15 + hide_function_bar=0 + header_layout=two_50_50 + column_meters_0=LeftCPUs2 MemorySwap PressureStallMemoryFull PressureStallIOFull DiskIO NetworkIO Uptime + column_meter_modes_0=1 1 2 2 2 2 2 + column_meters_1=RightCPUs2 CPU PressureStallCPUSome LoadAverage Tasks System Systemd Battery + column_meter_modes_1=1 1 2 2 2 2 2 2 + tree_view=0 + sort_key=46 + tree_sort_key=0 + sort_direction=-1 + tree_sort_direction=1 + tree_view_always_by_pid=0 + all_branches_collapsed=0 + screen:Main=PID USER M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU IO_READ_RATE IO_WRITE_RATE PERCENT_MEM TIME Command + ''; + }; + +} diff --git a/modules/home/packages.nix b/modules/home/packages.nix index 17f39e3..c039254 100644 --- a/modules/home/packages.nix +++ b/modules/home/packages.nix @@ -43,7 +43,6 @@ pwgen jq tmux - htop eza file fzf From 71a935e805013d812d81c6eef3420f8a52b6905a Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 22:40:26 +0100 Subject: [PATCH 24/26] feat: import `htop` --- modules/home/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/home/default.nix b/modules/home/default.nix index c6bb4d7..dac5f89 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -5,6 +5,7 @@ ++ [ (import ./swaync/default.nix) ] ++ [ (import ./sway/default.nix) ] ++ [ (import ./fonts.nix) ] + ++ [ (import ./htop.nix) ] ++ [ (import ./hyprland) ] ++ [ (import ./hyprlock) ] ++ [ (import ./kitty.nix) ] From 887dc41b02c644b5bd3e4d2794308177678a7bed Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 22:40:53 +0100 Subject: [PATCH 25/26] feat: switch to `vicinae`; adds various window rules --- modules/home/hyprland/config.nix | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/home/hyprland/config.nix b/modules/home/hyprland/config.nix index d37d4cb..94ce71a 100644 --- a/modules/home/hyprland/config.nix +++ b/modules/home/hyprland/config.nix @@ -124,6 +124,7 @@ "nwg-dock-hyprland -l top &" "nextcloud &" "hyprland-monitor-attached dock-on-all-monitors dock-on-all-monitors &" + "vicinae server &" ]; input = { @@ -279,7 +280,8 @@ "$mainMod SHIFT, X, exec, footclient --title 'float_foot' zsh -c 'bash ~/.local/src/bw-fzf/bw-fzf.sh" # clipboard manager - "$mainMod SHIFT, V, exec, cliphist list | bemenu -l 5 --ignorecase | cliphist decode | wl-copy" + # "$mainMod SHIFT, V, exec, cliphist list | bemenu -l 5 --ignorecase | cliphist decode | wl-copy" + "$mainMod SHIFT, V, exec, vicinae vicinae://extensions/vicinae/clipboard/history" "$mainMod SHIFT, F, exec, librewolf" "$mainMod SHIFT, C, exec, chromium" @@ -398,6 +400,14 @@ # "opacity 0.5 0.5, match:class nwg-dock-hyprland" "no_blur on, match:class ungoogled-chromium" "no_blur on, match:class librewolf" + "no_screen_share on, match:class element-desktop" + "match:title ^(.*Bitwarden Password Manager.*)$, float on" + "match:title ^(Picture-in-Picture)$, float on" + "match:title ^(Picture-in-Picture)$, pin on" + # stop idle when watching videos + "match:class ^(mpv|.+exe|celluloid)$, idle_inhibit focus" + "match:class ^(chromium)$, match:title ^(.*YouTube.*)$, idle_inhibit focus" + "match:class ^(chromium)$, idle_inhibit fullscreen" # "noanim, class:^(bemenu)$" # "float, title:^(Picture-in-Picture)$" # "opacity 1.0 override 1.0 override, title:^(Picture-in-Picture)$" @@ -430,7 +440,10 @@ # "float,title:^(float_foot)$" # "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0" ]; - + layerrule = [ + "match:class vicinae, blur on" + "match:class vicinae, ignore_alpha 0" + ]; }; extraConfig = " From 1b640675b3a1260eb7acff36d49fb8b1a50965df Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 26 Jan 2026 22:51:44 +0100 Subject: [PATCH 26/26] chore(mpd): stable isn't this far yet --- modules/services/mpd.nix | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/modules/services/mpd.nix b/modules/services/mpd.nix index e43b7fa..f0051b3 100644 --- a/modules/services/mpd.nix +++ b/modules/services/mpd.nix @@ -14,19 +14,17 @@ services.mpd = { enable = true; - settings = { - playlist_directory = "/home/${username}/Music/.playlists"; - music_directory = "/home/${username}/Music"; - restore_paused = "yes"; - auto_update = "yes"; + playlistDirectory = "/home/${username}/Music/.playlists"; + musicDirectory = "/home/${username}/Music"; + extraConfig = '' + restore_paused "yes" + auto_update "yes" - audio_output = [ - { - type = "pipewire"; - name = "pipewire"; - } - ]; - }; + audio_output { + type "pipewire" + name "pipewire" + } + ''; user = "${username}"; # PipeWire requires this as it runs as the normal user and mpd normally runs as a system user. # Optional: