My NixOS config Part 3: Flake-Parts Crusaders nix.ladas552.me
hjem nix nixos impermanence flake-parts nvfetcher niri noctalia

Merge remote-tracking branch 'origin/HEAD'

Ladas552 abda861e 56f79f32

+913 -366
+1
AGENTS.md
··· 1 + DIE
+4 -3
README.md
··· 25 25 - [NixOS-WSL](https://github.com/nix-community/NixOS-WSL) for Windows partition 26 26 - NixVM for testing, you shouldn't use it unless testing breaking changes 27 27 - NixIso for my portable NixOS image 28 + - NixWool is my Hetzner cloud that runs [Tangled.sh](https://tangled.org/) knot 28 29 ## Modular 29 30 I adopted [Dendritic layout](https://github.com/mightyiam/dendritic) for my config. 30 31 Making all files their own modules that I can import, and if module isn't imported, it doesn't exist. This way most of my config is fairy atomic and you can pop in and out modules as you wish. ··· 38 39 39 40 Also, I have [Norg document](./nix.norg), containing notes and TODO for the config 40 41 41 - I also write some [blog posts about Nix](https://ladas552.me/Flake-Ocean/), feel free to check it out 42 + I also write some [blog posts about Nix](https://nix.ladas552.me/), feel free to check it out 42 43 43 44 ## Nvfetcher 44 45 ··· 54 55 55 56 I also use nvfetcher to fetch nixos modules, the method described in the `flake.nix` file. 56 57 57 - [Check out a blog post about it](https://ladas552.me/Flake-Ocean/posts/Nvfetcher/) 58 + [Check out a blog post about it](https://nix.ladas552.me/posts/Nvfetcher/) 58 59 59 60 ## Screenshot if you care 60 - ![desktop](https://ladas552.me/assets/desktop/desktop.png) 61 + ![desktop](https://blog.ladas552.me/assets/desktop/desktop.png) 61 62 62 63 ## Name 63 64
+19 -19
_sources/generated.json
··· 50 50 "pinned": false, 51 51 "src": { 52 52 "name": null, 53 - "sha256": "sha256-jFSLLDsHB/NiJqFmn8S+JpdM8iCy3Zgyq+8l4RkBecM=", 53 + "sha256": "sha256-4c7tIra7SriBQe3ii4bLFTV1chLPQSNdOWNUR6dxfP0=", 54 54 "type": "url", 55 - "url": "https://github.com/imputnet/helium-linux/releases/download/0.8.5.1/helium-0.8.5.1-x86_64.AppImage" 55 + "url": "https://github.com/imputnet/helium-linux/releases/download/0.9.3.1/helium-0.9.3.1-x86_64_linux.tar.xz" 56 56 }, 57 - "version": "0.8.5.1" 57 + "version": "0.9.3.1" 58 58 }, 59 59 "impermanence": { 60 60 "cargoLock": null, ··· 141 141 }, 142 142 "nixos-hardware": { 143 143 "cargoLock": null, 144 - "date": "2026-02-09", 144 + "date": "2026-02-18", 145 145 "extract": null, 146 146 "name": "nixos-hardware", 147 147 "passthru": null, ··· 151 151 "fetchSubmodules": false, 152 152 "leaveDotGit": false, 153 153 "name": null, 154 - "rev": "2889685785848de940375bf7fea5e7c5a3c8d502", 155 - "sha256": "sha256-b7iK/x+zOXbjhRqa+XBlYla4zFvPZyU5Ln2HJkiSnzc=", 154 + "rev": "740a22363033e9f1bb6270fbfb5a9574067af15b", 155 + "sha256": "sha256-yRKJ7gpVmXbX2ZcA8nFi6CMPkJXZGjie2unsiMzj3Ig=", 156 156 "sparseCheckout": [], 157 157 "type": "git", 158 158 "url": "https://github.com/nixos/nixos-hardware" 159 159 }, 160 - "version": "2889685785848de940375bf7fea5e7c5a3c8d502" 160 + "version": "740a22363033e9f1bb6270fbfb5a9574067af15b" 161 161 }, 162 162 "nixos-wsl": { 163 163 "cargoLock": null, 164 - "date": "2026-02-09", 164 + "date": "2026-02-20", 165 165 "extract": null, 166 166 "name": "nixos-wsl", 167 167 "passthru": null, ··· 171 171 "fetchSubmodules": false, 172 172 "leaveDotGit": false, 173 173 "name": null, 174 - "rev": "5b50ea1aaa14945d4794c80fcc99c4aa1db84d2d", 175 - "sha256": "sha256-v/LA5ZSJ+JQYzMSKB4sySM0wKfsAqddNzzxLLnbsV/E=", 174 + "rev": "379d20c55f552e91fb9f3f0382e4a97d3f452943", 175 + "sha256": "sha256-vA5hocvdGhr+jfBN7A7ogeZqIz2qx01EixXwdVsQcnE=", 176 176 "sparseCheckout": [], 177 177 "type": "git", 178 178 "url": "https://github.com/nix-community/NixOS-WSL" 179 179 }, 180 - "version": "5b50ea1aaa14945d4794c80fcc99c4aa1db84d2d" 180 + "version": "379d20c55f552e91fb9f3f0382e4a97d3f452943" 181 181 }, 182 182 "noctalia-dev": { 183 183 "cargoLock": null, 184 - "date": "2026-02-10", 184 + "date": "2026-02-21", 185 185 "extract": null, 186 186 "name": "noctalia-dev", 187 187 "passthru": null, ··· 191 191 "fetchSubmodules": false, 192 192 "leaveDotGit": false, 193 193 "name": null, 194 - "rev": "c1b63e1153fec1e6db5aa95b1423c5bd4de4eb6a", 195 - "sha256": "sha256-JLkzqAts3GfWcx9VH1aHoaMIhk5R+gfZ5o1GapG9Ylc=", 194 + "rev": "198a9f740d82997c0de7f1b52cfb92907f30bfca", 195 + "sha256": "sha256-c7O9D30C145cI5QlDxO/IemLbZHyU3SfP+ptOmyJdY0=", 196 196 "sparseCheckout": [], 197 197 "type": "git", 198 198 "url": "https://github.com/noctalia-dev/noctalia-shell" 199 199 }, 200 - "version": "c1b63e1153fec1e6db5aa95b1423c5bd4de4eb6a" 200 + "version": "198a9f740d82997c0de7f1b52cfb92907f30bfca" 201 201 }, 202 202 "sops-nix": { 203 203 "cargoLock": null, 204 - "date": "2026-02-10", 204 + "date": "2026-02-19", 205 205 "extract": null, 206 206 "name": "sops-nix", 207 207 "passthru": null, ··· 211 211 "fetchSubmodules": false, 212 212 "leaveDotGit": false, 213 213 "name": null, 214 - "rev": "8b89f44c2cc4581e402111d928869fe7ba9f7033", 215 - "sha256": "sha256-xVfPvXDf9QN3Eh9dV+Lw6IkWG42KSuQ1u2260HKvpnc=", 214 + "rev": "e85540ffe97322dc1fea14dd11cdc2f59d540ac7", 215 + "sha256": "sha256-eksVUcUsfS9mQx4D9DrYu88u9w70bAf+n6KmTDuIGEE=", 216 216 "sparseCheckout": [], 217 217 "type": "git", 218 218 "url": "https://github.com/Mic92/sops-nix" 219 219 }, 220 - "version": "8b89f44c2cc4581e402111d928869fe7ba9f7033" 220 + "version": "e85540ffe97322dc1fea14dd11cdc2f59d540ac7" 221 221 } 222 222 }
+19 -19
_sources/generated.nix
··· 32 32 }; 33 33 helium = { 34 34 pname = "helium"; 35 - version = "0.8.5.1"; 35 + version = "0.9.3.1"; 36 36 src = fetchurl { 37 - url = "https://github.com/imputnet/helium-linux/releases/download/0.8.5.1/helium-0.8.5.1-x86_64.AppImage"; 38 - sha256 = "sha256-jFSLLDsHB/NiJqFmn8S+JpdM8iCy3Zgyq+8l4RkBecM="; 37 + url = "https://github.com/imputnet/helium-linux/releases/download/0.9.3.1/helium-0.9.3.1-x86_64_linux.tar.xz"; 38 + sha256 = "sha256-4c7tIra7SriBQe3ii4bLFTV1chLPQSNdOWNUR6dxfP0="; 39 39 }; 40 40 }; 41 41 impermanence = { ··· 90 90 }; 91 91 nixos-hardware = { 92 92 pname = "nixos-hardware"; 93 - version = "2889685785848de940375bf7fea5e7c5a3c8d502"; 93 + version = "740a22363033e9f1bb6270fbfb5a9574067af15b"; 94 94 src = fetchgit { 95 95 url = "https://github.com/nixos/nixos-hardware"; 96 - rev = "2889685785848de940375bf7fea5e7c5a3c8d502"; 96 + rev = "740a22363033e9f1bb6270fbfb5a9574067af15b"; 97 97 fetchSubmodules = false; 98 98 deepClone = false; 99 99 leaveDotGit = false; 100 100 sparseCheckout = [ ]; 101 - sha256 = "sha256-b7iK/x+zOXbjhRqa+XBlYla4zFvPZyU5Ln2HJkiSnzc="; 101 + sha256 = "sha256-yRKJ7gpVmXbX2ZcA8nFi6CMPkJXZGjie2unsiMzj3Ig="; 102 102 }; 103 - date = "2026-02-09"; 103 + date = "2026-02-18"; 104 104 }; 105 105 nixos-wsl = { 106 106 pname = "nixos-wsl"; 107 - version = "5b50ea1aaa14945d4794c80fcc99c4aa1db84d2d"; 107 + version = "379d20c55f552e91fb9f3f0382e4a97d3f452943"; 108 108 src = fetchgit { 109 109 url = "https://github.com/nix-community/NixOS-WSL"; 110 - rev = "5b50ea1aaa14945d4794c80fcc99c4aa1db84d2d"; 110 + rev = "379d20c55f552e91fb9f3f0382e4a97d3f452943"; 111 111 fetchSubmodules = false; 112 112 deepClone = false; 113 113 leaveDotGit = false; 114 114 sparseCheckout = [ ]; 115 - sha256 = "sha256-v/LA5ZSJ+JQYzMSKB4sySM0wKfsAqddNzzxLLnbsV/E="; 115 + sha256 = "sha256-vA5hocvdGhr+jfBN7A7ogeZqIz2qx01EixXwdVsQcnE="; 116 116 }; 117 - date = "2026-02-09"; 117 + date = "2026-02-20"; 118 118 }; 119 119 noctalia-dev = { 120 120 pname = "noctalia-dev"; 121 - version = "c1b63e1153fec1e6db5aa95b1423c5bd4de4eb6a"; 121 + version = "198a9f740d82997c0de7f1b52cfb92907f30bfca"; 122 122 src = fetchgit { 123 123 url = "https://github.com/noctalia-dev/noctalia-shell"; 124 - rev = "c1b63e1153fec1e6db5aa95b1423c5bd4de4eb6a"; 124 + rev = "198a9f740d82997c0de7f1b52cfb92907f30bfca"; 125 125 fetchSubmodules = false; 126 126 deepClone = false; 127 127 leaveDotGit = false; 128 128 sparseCheckout = [ ]; 129 - sha256 = "sha256-JLkzqAts3GfWcx9VH1aHoaMIhk5R+gfZ5o1GapG9Ylc="; 129 + sha256 = "sha256-c7O9D30C145cI5QlDxO/IemLbZHyU3SfP+ptOmyJdY0="; 130 130 }; 131 - date = "2026-02-10"; 131 + date = "2026-02-21"; 132 132 }; 133 133 sops-nix = { 134 134 pname = "sops-nix"; 135 - version = "8b89f44c2cc4581e402111d928869fe7ba9f7033"; 135 + version = "e85540ffe97322dc1fea14dd11cdc2f59d540ac7"; 136 136 src = fetchgit { 137 137 url = "https://github.com/Mic92/sops-nix"; 138 - rev = "8b89f44c2cc4581e402111d928869fe7ba9f7033"; 138 + rev = "e85540ffe97322dc1fea14dd11cdc2f59d540ac7"; 139 139 fetchSubmodules = false; 140 140 deepClone = false; 141 141 leaveDotGit = false; 142 142 sparseCheckout = [ ]; 143 - sha256 = "sha256-xVfPvXDf9QN3Eh9dV+Lw6IkWG42KSuQ1u2260HKvpnc="; 143 + sha256 = "sha256-eksVUcUsfS9mQx4D9DrYu88u9w70bAf+n6KmTDuIGEE="; 144 144 }; 145 - date = "2026-02-10"; 145 + date = "2026-02-19"; 146 146 }; 147 147 }
+131 -45
flake.lock
··· 20 20 "type": "github" 21 21 } 22 22 }, 23 + "flake-utils": { 24 + "inputs": { 25 + "systems": [ 26 + "systems" 27 + ] 28 + }, 29 + "locked": { 30 + "lastModified": 1731533236, 31 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 32 + "owner": "numtide", 33 + "repo": "flake-utils", 34 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 35 + "type": "github" 36 + }, 37 + "original": { 38 + "owner": "numtide", 39 + "repo": "flake-utils", 40 + "type": "github" 41 + } 42 + }, 43 + "gomod2nix": { 44 + "inputs": { 45 + "flake-utils": "flake-utils", 46 + "nixpkgs": [ 47 + "tangled", 48 + "nixpkgs" 49 + ] 50 + }, 51 + "locked": { 52 + "lastModified": 1763982521, 53 + "narHash": "sha256-ur4QIAHwgFc0vXiaxn5No/FuZicxBr2p0gmT54xZkUQ=", 54 + "owner": "nix-community", 55 + "repo": "gomod2nix", 56 + "rev": "02e63a239d6eabd595db56852535992c898eba72", 57 + "type": "github" 58 + }, 59 + "original": { 60 + "owner": "nix-community", 61 + "repo": "gomod2nix", 62 + "type": "github" 63 + } 64 + }, 23 65 "hjem": { 24 66 "inputs": { 25 67 "nix-darwin": [], ··· 29 71 "smfh": "smfh" 30 72 }, 31 73 "locked": { 32 - "lastModified": 1769053318, 33 - "narHash": "sha256-cKETEBrseo7Iz+bOzflwy1xTpDuUj3QaLA+P49yJw8k=", 74 + "lastModified": 1771212460, 75 + "narHash": "sha256-1RfmXbDIxgwP2/SrYSYd9zdArUaJEm6C3FXpdRlmeso=", 34 76 "owner": "feel-co", 35 77 "repo": "hjem", 36 - "rev": "9d0c8d4b44f661910595b07e6480557644c1431c", 78 + "rev": "7f2880d705edf541955d98f56cb78f9507384423", 37 79 "type": "github" 38 80 }, 39 81 "original": { ··· 54 96 "treefmt-nix": [] 55 97 }, 56 98 "locked": { 57 - "lastModified": 1766394058, 58 - "narHash": "sha256-P+59TbVusYqdx2Jt2liwvQ+hslUzU6M1ezRDy6c66Tc=", 99 + "lastModified": 1771501078, 100 + "narHash": "sha256-Z2bux6QPs4lBzdiw5NdgPqk+BPF1H4lEu3C68ID7bYg=", 59 101 "owner": "snugnug", 60 102 "repo": "hjem-rum", 61 - "rev": "edac54b7d57ad72cc4b124da2f44e7b2e584f3c6", 103 + "rev": "57175e2f6ab7caf212dd985ef810ec1cd9abf755", 62 104 "type": "github" 63 105 }, 64 106 "original": { ··· 74 116 ] 75 117 }, 76 118 "locked": { 77 - "lastModified": 1770654520, 78 - "narHash": "sha256-mg5WZMIPGsFu9MxSrUcuJUPMbfMsF77el5yb/7rc10k=", 119 + "lastModified": 1771647911, 120 + "narHash": "sha256-18liNHHwOmcaKCpOptE3wLW97fm5v7RTLiZBecX7km0=", 79 121 "owner": "nix-community", 80 122 "repo": "home-manager", 81 - "rev": "6c4fdbe1ad198fac36c320fd45c5957324a80b8e", 123 + "rev": "436b27742c996b75e2baf8e835e3b3eae0c9fbd4", 82 124 "type": "github" 83 125 }, 84 126 "original": { ··· 89 131 }, 90 132 "mnw": { 91 133 "locked": { 92 - "lastModified": 1769981889, 93 - "narHash": "sha256-ndI7AxL/6auelkLHngdUGVImBiHkG8w2N2fOTKZKn4k=", 134 + "lastModified": 1770419553, 135 + "narHash": "sha256-b1XqsH7AtVf2dXmq2iyRr2NC1yG7skY7Z6N2MpWHlK4=", 94 136 "owner": "Gerg-L", 95 137 "repo": "mnw", 96 - "rev": "332fed8f43b77149c582f1782683d6aeee1f07cf", 138 + "rev": "2aaffa8030d0b262176146adbb6b0e6374ce2957", 97 139 "type": "github" 98 140 }, 99 141 "original": { ··· 110 152 "xwayland-satellite-unstable": "xwayland-satellite-unstable" 111 153 }, 112 154 "locked": { 113 - "lastModified": 1770682715, 114 - "narHash": "sha256-3yEtMRAhKcQ8rLdy3xyD/BWcUsBkeG4jm4vVYExcl3E=", 155 + "lastModified": 1771201162, 156 + "narHash": "sha256-2ecVvWTeanuLqSRIpKj+Y2QeaDyAeG/iNJdMwAOAgII=", 115 157 "ref": "refs/heads/main", 116 - "rev": "30a736dd3b6c8129a395c934af92355a0debcb92", 117 - "revCount": 60, 158 + "rev": "4ebc410878b0dc943eafb941f534e9b6c43726ef", 159 + "revCount": 64, 118 160 "type": "git", 119 161 "url": "https://codeberg.org/BANanaD3V/niri-nix" 120 162 }, ··· 126 168 "niri-unstable": { 127 169 "flake": false, 128 170 "locked": { 129 - "lastModified": 1770394959, 130 - "narHash": "sha256-if7bIsomdceIufOhkFwN74rFY/pLCWPynRxGyol2viQ=", 171 + "lastModified": 1771182017, 172 + "narHash": "sha256-lrXBx91NQAVoFeFUNZi46ZWP9M6tbBmT5BNsqSh8QOY=", 131 173 "owner": "YaLTeR", 132 174 "repo": "niri", 133 - "rev": "ab47f5cec4c1c5758afeb91c0c98554ffd3433db", 175 + "rev": "1fa0338a172a69b05a1a35d55b291693ff1bc29f", 134 176 "type": "github" 135 177 }, 136 178 "original": { ··· 168 210 }, 169 211 "nixpkgs": { 170 212 "locked": { 171 - "lastModified": 1770562336, 172 - "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", 213 + "lastModified": 1771008912, 214 + "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", 173 215 "owner": "nixos", 174 216 "repo": "nixpkgs", 175 - "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", 217 + "rev": "a82ccc39b39b621151d6732718e3e250109076fa", 176 218 "type": "github" 177 219 }, 178 220 "original": { ··· 184 226 }, 185 227 "nixpkgs_2": { 186 228 "locked": { 187 - "lastModified": 1770562336, 188 - "narHash": "sha256-MIMad536rq4nepqzYDTwuSDNQP+YuM0cfsvtcJJJItM=", 189 - "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", 229 + "lastModified": 1771008912, 230 + "narHash": "sha256-MUxwjvnO2hZitXm52phpSCcCv5Zx4DeVTAPZa8jcxtw=", 231 + "rev": "a82ccc39b39b621151d6732718e3e250109076fa", 190 232 "type": "tarball", 191 - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre942779.d6c719321308/nixexprs.tar.xz?lastModified=1770562336&rev=d6c71932130818840fc8fe9509cf50be8c64634f" 233 + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre945868.a82ccc39b39b/nixexprs.tar.xz?lastModified=1771008912&rev=a82ccc39b39b621151d6732718e3e250109076fa" 192 234 }, 193 235 "original": { 194 236 "type": "tarball", ··· 197 239 }, 198 240 "nixpkgs_3": { 199 241 "locked": { 200 - "lastModified": 1769461804, 201 - "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", 242 + "lastModified": 1771008912, 243 + "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", 202 244 "owner": "nixos", 203 245 "repo": "nixpkgs", 204 - "rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d", 246 + "rev": "a82ccc39b39b621151d6732718e3e250109076fa", 205 247 "type": "github" 206 248 }, 207 249 "original": { ··· 224 266 ] 225 267 }, 226 268 "locked": { 227 - "lastModified": 1770630823, 228 - "narHash": "sha256-5SEmOnJ61vmbap39vzWEsCX5UQ+3Ul8J4mXWKdqSn3w=", 269 + "lastModified": 1771135771, 270 + "narHash": "sha256-wyvBIhDuyCRyjB3yPg77qoyxrlgQtBR1rVW3c9knV3E=", 229 271 "owner": "nix-community", 230 272 "repo": "nixvim", 231 - "rev": "6acc964664ac916c64fe4e394edd467af4d90790", 273 + "rev": "ed0424f0b08d303a7348f52f7850ad1b2704f9ba", 232 274 "type": "github" 233 275 }, 234 276 "original": { ··· 251 293 ] 252 294 }, 253 295 "locked": { 254 - "lastModified": 1770703021, 255 - "narHash": "sha256-gqb5psh3ydigaeAnOby4KwXAXtzU0uZK9AeRAYIw53g=", 296 + "lastModified": 1771667684, 297 + "narHash": "sha256-EED6YOg3DdRwaehpt4oS3xDESKaGRH202N0WZEkl9iY=", 256 298 "owner": "notashelf", 257 299 "repo": "nvf", 258 - "rev": "4d0d1884a00b32c034299fcd3e96f9e0cb68d23b", 300 + "rev": "39345e58341597b654c3331749b45e29686ca254", 259 301 "type": "github" 260 302 }, 261 303 "original": { ··· 275 317 "nixpkgs": "nixpkgs_2", 276 318 "nixvim": "nixvim", 277 319 "nvf": "nvf", 278 - "systems": "systems" 320 + "systems": "systems", 321 + "tangled": "tangled" 279 322 } 280 323 }, 281 324 "rust-overlay": { ··· 287 330 ] 288 331 }, 289 332 "locked": { 290 - "lastModified": 1763347184, 291 - "narHash": "sha256-6QH8hpCYJxifvyHEYg+Da0BotUn03BwLIvYo3JAxuqQ=", 333 + "lastModified": 1771125043, 334 + "narHash": "sha256-ldf/s49n6rOAxl7pYLJGGS1N/assoHkCOWdEdLyNZkc=", 292 335 "owner": "oxalica", 293 336 "repo": "rust-overlay", 294 - "rev": "08895cce80433978d5bfd668efa41c5e24578cbd", 337 + "rev": "4912f951a26dc8142b176be2c2ad834319dc06e8", 295 338 "type": "github" 296 339 }, 297 340 "original": { ··· 312 355 ] 313 356 }, 314 357 "locked": { 315 - "lastModified": 1763430012, 316 - "narHash": "sha256-06G7pXUdpMnUqR0JWWvV7sA8oNGOZU1cSLqQS1GMf7Y=", 358 + "lastModified": 1771208268, 359 + "narHash": "sha256-6zMgOPzBbTSm8jzPqmGcotjvkN3HzxcnMM8pW64JpZQ=", 317 360 "owner": "feel-co", 318 361 "repo": "smfh", 319 - "rev": "eddda76e3dd4c6deaea5f819f174fc16dbe70f90", 362 + "rev": "dd0a33fc9d1fe7c29da86225af4b4a47b1714839", 320 363 "type": "github" 321 364 }, 322 365 "original": { ··· 325 368 "type": "github" 326 369 } 327 370 }, 371 + "sqlite-lib-src": { 372 + "flake": false, 373 + "locked": { 374 + "lastModified": 1706631843, 375 + "narHash": "sha256-bJoMjirsBjm2Qk9KPiy3yV3+8b/POlYe76/FQbciHro=", 376 + "type": "tarball", 377 + "url": "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip" 378 + }, 379 + "original": { 380 + "type": "tarball", 381 + "url": "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip" 382 + } 383 + }, 328 384 "systems": { 329 385 "locked": { 330 386 "lastModified": 1689347949, ··· 340 396 "type": "github" 341 397 } 342 398 }, 399 + "tangled": { 400 + "inputs": { 401 + "actor-typeahead-src": [], 402 + "flake-compat": [], 403 + "gomod2nix": "gomod2nix", 404 + "htmx-src": [], 405 + "htmx-ws-src": [], 406 + "ibm-plex-mono-src": [], 407 + "indigo": [], 408 + "inter-fonts-src": [], 409 + "lucide-src": [], 410 + "nixpkgs": [ 411 + "nixpkgs" 412 + ], 413 + "sqlite-lib-src": "sqlite-lib-src" 414 + }, 415 + "locked": { 416 + "lastModified": 1771411022, 417 + "narHash": "sha256-em6gASXvT/UQvXTTOAiirQQCeBNLC/eI+noYqFIig+k=", 418 + "ref": "refs/heads/master", 419 + "rev": "1d0c1d8c05cb58d4ead517a1f41cb19d84dbe02f", 420 + "revCount": 1977, 421 + "type": "git", 422 + "url": "https://tangled.org/@tangled.org/core" 423 + }, 424 + "original": { 425 + "type": "git", 426 + "url": "https://tangled.org/@tangled.org/core" 427 + } 428 + }, 343 429 "xwayland-satellite-unstable": { 344 430 "flake": false, 345 431 "locked": { 346 - "lastModified": 1770583271, 347 - "narHash": "sha256-Q75S8cEqJoZ92s1y4zArvk2U1ayAy2E4SaF7gbNXkYQ=", 432 + "lastModified": 1771195969, 433 + "narHash": "sha256-BUE41HjLIGPjq3U8VXPjf8asH8GaMI7FYdgrIHKFMXA=", 348 434 "owner": "Supreeeme", 349 435 "repo": "xwayland-satellite", 350 - "rev": "86f5bd5d867ad6e120935dfe825f6b903ebbeddd", 436 + "rev": "536bd32efc935bf876d6de385ec18a1b715c9358", 351 437 "type": "github" 352 438 }, 353 439 "original": {
+21 -9
flake.nix
··· 17 17 inputs.nixpkgs.follows = "nixpkgs"; 18 18 # No useless inputs 19 19 inputs.nix-darwin.follows = ""; # I don't use nix-darwin machine 20 + # inputs.smfh.follows = ""; 20 21 inputs.smfh.inputs.systems.follows = "systems"; 21 22 }; 22 23 # Modules for hjem ··· 72 73 inputs.git-hooks.follows = ""; 73 74 }; 74 75 76 + # Tangled, git hosting 77 + tangled = { 78 + url = "git+https://tangled.org/@tangled.org/core"; 79 + # No useless inputs 80 + inputs.nixpkgs.follows = "nixpkgs"; 81 + inputs.gomod2nix.inputs.flake-utils.inputs.systems.follows = "systems"; 82 + inputs.flake-compat.follows = ""; 83 + inputs.indigo.follows = ""; 84 + inputs.htmx-src.follows = ""; 85 + inputs.htmx-ws-src.follows = ""; 86 + inputs.lucide-src.follows = ""; 87 + inputs.inter-fonts-src.follows = ""; 88 + inputs.actor-typeahead-src.follows = ""; 89 + inputs.ibm-plex-mono-src.follows = ""; 90 + # inputs.sqlite-lib-src.follows = ""; 91 + }; 92 + 75 93 # Boilerplate 76 94 systems.url = "github:nix-systems/default-linux"; 77 95 ··· 124 142 inputs: 125 143 let 126 144 # Function to stop using `import-tree` by Vic. 127 - # Just to lighten the config a bit, written by https://codeberg.org/BANanaD3V 128 - # Adaptation stolen from @iynai 129 - inherit (inputs.nixpkgs.lib.fileset) toList fileFilter; 130 - import-tree = 131 - paths: 132 - toList ( 133 - fileFilter (file: file.hasExt "nix" && !(inputs.nixpkgs.lib.hasPrefix "_" file.name)) paths 134 - ); 145 + # Just to lighten the config a bit, written by @llakala https://github.com/llakala/synaptic-standard/blob/main/demo/recursivelyImport.nix 146 + import-tree = import ./stuff/recursivelyImport.nix { lib = inputs.nixpkgs.lib; }; 135 147 136 148 # a way to fetch nix files via nvfetcher and import them in the config 137 149 # basically parse the json crated by nvfetcher, and use fetchTarball ··· 156 168 specialArgs = { inherit modules; }; 157 169 } 158 170 { 159 - imports = import-tree ./modules; 171 + imports = import-tree [ ./modules ]; 160 172 flake.templates = import ./templates; 161 173 }; 162 174 }
install/impermanence.norg stuff/impermanence.norg
install/zfs.norg stuff/zfs.norg
+1 -1
modules/hjemModules/Terminals/git.nix
··· 11 11 init.defaultBranch = "master"; 12 12 gpg.format = "ssh"; 13 13 #it can't read it. permission error or something 14 - user.signingkey = "~/.ssh/NixToks.pub"; 14 + user.signingkey = "~/.ssh/NixToks"; 15 15 # commit.gpgsign = true; 16 16 aliases = { 17 17 cm = "commit -m";
-1
modules/hjemModules/imv.nix
··· 1 1 { 2 2 flake.modules.hjem.imv = { 3 - # imv rum module from https://github.com/snugnug/hjem-rum/pull/160 4 3 rum.programs.imv = { 5 4 enable = true; 6 5 settings = {
-50
modules/homeBrew/chawan.nix
··· 1 - { 2 - flake.modules.hjem.chawan-brew = 3 - { 4 - config, 5 - lib, 6 - pkgs, 7 - ... 8 - }: 9 - let 10 - inherit (lib.modules) mkIf; 11 - inherit (lib.options) mkOption mkEnableOption mkPackageOption; 12 - 13 - toml = pkgs.formats.toml { }; 14 - 15 - cfg = config.rum.programs.chawan; 16 - in 17 - { 18 - options.rum.programs.chawan = { 19 - enable = mkEnableOption "chawan"; 20 - 21 - package = mkPackageOption pkgs "chawan" { nullable = true; }; 22 - 23 - settings = mkOption { 24 - type = toml.type; 25 - default = { }; 26 - example = { 27 - buffer = { 28 - images = true; 29 - autofocus = true; 30 - }; 31 - page."C-k" = "() => pager.load('ddg:')"; 32 - }; 33 - description = '' 34 - Configuration written to {file}`$XDG_CONFIG_HOME/chawan/config.toml`. 35 - Please reference [chawan's documentation] for config options. 36 - 37 - [chawan's documentation]: https://git.sr.ht/~bptato/chawan/tree/master/doc/config.md 38 - ''; 39 - }; 40 - }; 41 - 42 - config = mkIf cfg.enable { 43 - packages = mkIf (cfg.package != null) [ cfg.package ]; 44 - xdg.config.files."chawan/config.toml" = mkIf (cfg.settings != { }) { 45 - source = toml.generate "chawan-config.toml" cfg.settings; 46 - }; 47 - }; 48 - }; 49 - 50 - }
-3
modules/homeBrew/default.nix
··· 6 6 mpdris2-brew 7 7 syncthing-brew 8 8 userDirs-brew 9 - fastfetch-brew 10 - imv-brew 11 - chawan-brew 12 9 ]; 13 10 }
-62
modules/homeBrew/fastfetch.nix
··· 1 - { 2 - flake.modules.hjem.fastfetch-brew = 3 - { 4 - lib, 5 - pkgs, 6 - config, 7 - ... 8 - }: 9 - let 10 - inherit (lib) 11 - mkEnableOption 12 - mkPackageOption 13 - mkOption 14 - mkIf 15 - ; 16 - json = pkgs.formats.json { }; 17 - cfg = config.rum.programs.fastfetch; 18 - 19 - in 20 - { 21 - 22 - options.rum.programs.fastfetch = { 23 - enable = mkEnableOption "Fastfetch"; 24 - 25 - package = mkPackageOption pkgs "fastfetch" { nullable = true; }; 26 - 27 - settings = mkOption { 28 - type = json.type; 29 - default = { }; 30 - example = { 31 - logo.source = "nixos_old_small"; 32 - display = { 33 - constants = [ "██ " ]; 34 - }; 35 - modules = [ 36 - { 37 - key = "{$1}Distro"; 38 - keyColor = "38;5;210"; 39 - type = "os"; 40 - } 41 - ]; 42 - }; 43 - description = '' 44 - The configuration written to {file}`$XDG_CONFIG_HOME/fastfetch/config.jsonc`. 45 - Please reference [Json Schema] for more information. 46 - 47 - [Json Schema]: https://gitlab.com/CarterLi/fastfetch/-/wikis/Json-Schema 48 - ''; 49 - }; 50 - }; 51 - 52 - config = mkIf cfg.enable { 53 - packages = lib.mkIf (cfg.package != null) [ cfg.package ]; 54 - 55 - xdg.config.files = { 56 - "fastfetch/config.jsonc" = mkIf (cfg.settings != { }) { 57 - source = json.generate "fastfetch-config.jsonc" cfg.settings; 58 - }; 59 - }; 60 - }; 61 - }; 62 - }
-59
modules/homeBrew/imv.nix
··· 1 - { 2 - flake.modules.hjem.imv-brew = 3 - { 4 - lib, 5 - pkgs, 6 - config, 7 - ... 8 - }: 9 - let 10 - inherit (lib.modules) mkIf; 11 - inherit (lib.options) mkOption mkEnableOption mkPackageOption; 12 - 13 - ini = pkgs.formats.ini { }; 14 - 15 - cfg = config.rum.programs.imv; 16 - 17 - optionsFile = ini.generate "imv-options.ini" { 18 - options = cfg.settings.options or { }; 19 - }; 20 - aliasesFile = ini.generate "imv-aliases.ini" { 21 - aliases = cfg.settings.aliases or { }; 22 - }; 23 - bindsFile = ini.generate "imv-binds.ini" { 24 - binds = cfg.settings.binds or { }; 25 - }; 26 - in 27 - { 28 - options.rum.programs.imv = { 29 - enable = mkEnableOption "imv"; 30 - 31 - package = mkPackageOption pkgs "imv" { nullable = true; }; 32 - 33 - settings = mkOption { 34 - type = ini.type; 35 - default = { }; 36 - example = { 37 - options.background = "ffffff"; 38 - aliases.x = "close"; 39 - }; 40 - description = '' 41 - Settings are written as an INI file to {file}`$XDG_CONFIG_HOME/imv/config`. 42 - The lists are separated between options, aliases, and binds. 43 - Please reference {manpage}`IMV(5)` to configure it accordingly. 44 - ''; 45 - }; 46 - }; 47 - 48 - config = mkIf cfg.enable { 49 - packages = mkIf (cfg.package != null) [ cfg.package ]; 50 - xdg.config.files."imv/config" = mkIf (cfg.settings != { }) { 51 - source = pkgs.concatText "imv-config.ini" [ 52 - optionsFile 53 - aliasesFile 54 - bindsFile 55 - ]; 56 - }; 57 - }; 58 - }; 59 - }
+3 -1
modules/hosts/NixToks/imports.nix
··· 17 17 cat-mocha 18 18 general 19 19 cache 20 - grub 20 + grub-efi 21 21 nix 22 22 sops 23 23 tailscale ··· 45 45 fish 46 46 yt-dlp-NixToks 47 47 48 + # temporary 49 + # tangled 48 50 # Modules 49 51 # Users 50 52 root
+44
modules/hosts/NixWool/hardware-configuration.nix
··· 1 + { 2 + flake.modules.nixos.NixWool = 3 + { 4 + lib, 5 + modulesPath, 6 + pkgs, 7 + ... 8 + }: 9 + { 10 + imports = [ 11 + (modulesPath + "/installer/scan/not-detected.nix") 12 + (modulesPath + "/profiles/qemu-guest.nix") 13 + ]; 14 + 15 + boot.initrd.availableKernelModules = [ 16 + "ahci" 17 + "virtio_pci" 18 + "sd_mod" 19 + "sr_mod" 20 + "xhci_pci" 21 + "virtio_scsi" 22 + ]; 23 + boot.initrd.kernelModules = [ "virtio_gpu" ]; 24 + boot.kernelModules = [ 25 + "nls_cp437" 26 + "nls_iso8859-1" 27 + ]; 28 + boot.kernelParams = [ "console=tty" ]; 29 + boot.extraModulePackages = [ ]; 30 + # Xanmod broken on aarch64-linux, idk 31 + boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_18; 32 + 33 + swapDevices = [ { label = "SWAP"; } ]; 34 + 35 + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 36 + # (the default) this is the recommended approach. When using systemd-networkd it's 37 + # still possible to use this option, but it's recommended to use it in conjunction 38 + # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. 39 + networking.useDHCP = lib.mkDefault true; 40 + # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; 41 + 42 + nixpkgs.hostPlatform = "aarch64-linux"; 43 + }; 44 + }
+59
modules/hosts/NixWool/imports.nix
··· 1 + { config, ... }: 2 + let 3 + custom.meta = { 4 + hostname = "NixWool"; 5 + self = "git+https://tangled.org/ladas552.me/flake-ocean"; 6 + isTermux = false; 7 + norg = null; 8 + }; 9 + in 10 + { 11 + flake.modules.nixvim.NixWool.imports = [ { inherit custom; } ]; 12 + flake.modules.nvf.NixWool.imports = [ { inherit custom; } ]; 13 + flake.modules.nixos."hosts/NixWool".imports = 14 + with config.flake.modules.nixos; 15 + [ 16 + { inherit custom; } 17 + NixWool 18 + # Modules 19 + cache 20 + general 21 + imp 22 + nh 23 + nix 24 + openssh 25 + systemd-boot 26 + sops 27 + tailscale 28 + zfs 29 + network-manager 30 + fish 31 + bluesky-pds 32 + tangled 33 + # Users 34 + root 35 + ladas552 36 + ] 37 + # Specific Home-Manager modules 38 + ++ [ 39 + { 40 + home-manager.users."${config.custom.meta.user}".imports = with config.flake.modules.homeManager; [ 41 + { inherit custom; } 42 + NixWool 43 + lf 44 + ]; 45 + } 46 + ] 47 + 48 + ++ [ 49 + { 50 + hjem.users."${config.custom.meta.user}".imports = with config.flake.modules.hjem; [ 51 + { inherit custom; } 52 + direnv 53 + git 54 + fastfetch 55 + nvf 56 + ]; 57 + } 58 + ]; 59 + }
+69
modules/hosts/NixWool/install.sh
··· 1 + # installation script for Hetzner VPS, I just loaded a standart nix iso in there 2 + # Stolen from @Jet https://github.com/Michael-C-Buckley/nixos/blob/master/modules/hosts/o1/tools/format.sh 3 + 4 + # find a way to put keys for secrets into respective directories yourself 5 + # My way is to `sudo passwd` a new root password and `ssh root@ip` into the vps 6 + # Then just `scp ./keys.txt root@ip:/root` 7 + 8 + #!/usr/bin/env bash 9 + set -euo pipefail 10 + 11 + ZFS_OPTS="-o ashift=12 \ 12 + -O compression=zstd \ 13 + -O atime=off \ 14 + -O xattr=sa \ 15 + -O acltype=posixacl \ 16 + -O dnodesize=auto \ 17 + -O normalization=formD \ 18 + -O mountpoint=none" 19 + 20 + hostname="NixWool" 21 + 22 + read -rp "This will erase the drives, as you sure? [y/N]" confirm 23 + if [[ $confirm =~ ^[Yy]$ ]]; then 24 + echo "Proceeding..." 25 + else 26 + echo "Aborted." 27 + exit 1 28 + fi 29 + 30 + echo "Wiping drives..." 31 + # Wipe the NVMe 32 + wipefs -a /dev/sda 33 + sgdisk --zap-all /dev/sda 34 + 35 + echo "Formatting drives..." 36 + # Put boot on the NVMe then fill the rest with ZFS 37 + sgdisk -n1:1M:+512M -t1:EF00 -c1:"NIXBOOT" /dev/sda 38 + sgdisk -n2:0:+4G -t2:8200 -c2:"Linux Swap" /dev/sda 39 + sgdisk -n3:0:0 -t3:BF01 -c3:"ZROOT" /dev/sda 40 + 41 + # Format the boot partition 42 + mkfs.vfat -n NIXBOOT -F32 /dev/sda1 43 + 44 + # Swap 45 + mkswap -L SWAP /dev/sda2 46 + swapon /dev/sda2 47 + 48 + # Create the pool on the drive, use reasonable settings 49 + echo "Creating zroot..." 50 + zpool create -f $ZFS_OPTS zroot /dev/sda3 51 + 52 + # Mount the drives and prepare for the install 53 + mkdir -p /mnt 54 + mkdir -p /mnt/{cache,nix,persist,tmp,boot} 55 + mount /dev/sda1 /mnt/boot 56 + 57 + # This create the zvols used in this cluster 58 + for zvol in "tmp" "nix" "cache" "persist"; do 59 + zfs create -o mountpoint=legacy zroot/$zvol 60 + mount -t zfs zroot/$zvol /mnt/$zvol 61 + done 62 + 63 + mkdir -p /mnt/persist/home/ladas552/.ssh 64 + mkdir -p /mnt/persist/home/ladas552/.config/sops/age 65 + cp ./NixToks /mnt/persist/home/ladas552/.ssh/ 66 + cp ./keys.txt /mnt/persist/home/ladas552/.config/sops/age/ 67 + 68 + nixos-install --no-root-password --flake "github:Ladas552/Flake-Ocean#NixWool" 69 +
+110
modules/hosts/NixWool/nixwool.nix
··· 1 + { 2 + flake.modules = { 3 + nixos.NixWool = 4 + { 5 + pkgs, 6 + lib, 7 + config, 8 + ... 9 + }: 10 + { 11 + nix = { 12 + distributedBuilds = true; 13 + buildMachines = [ 14 + { 15 + hostName = "NixToks"; 16 + sshUser = "ladas552"; 17 + protocol = "ssh-ng"; 18 + systems = [ 19 + "x86_64-linux" 20 + "aarch64-linux" 21 + ]; 22 + maxJobs = 16; 23 + speedFactor = 6; 24 + supportedFeatures = [ 25 + "big-parallel" 26 + "kvm" 27 + "nixos-test" 28 + ]; 29 + } 30 + ]; 31 + }; 32 + # Standalone Packages 33 + environment.systemPackages = with pkgs; [ 34 + libqalculate 35 + lshw 36 + ]; 37 + 38 + # Environmental Variables 39 + environment.variables = { 40 + NIX_REMOTE = "daemon"; 41 + }; 42 + 43 + services.sshguard.enable = true; 44 + # I chowned this directories `sudo chown -R ladas552:caddy /var/www` 45 + users.users."${config.custom.meta.user}".extraGroups = [ "caddy" ]; 46 + services.caddy = { 47 + enable = true; 48 + globalConfig = '' 49 + email me@ladas552.me 50 + ''; 51 + virtualHosts = { 52 + "www.ladas552.me" = { 53 + extraConfig = ''respond "Blog: https://blog.ladas552.me Nix-Docs: https://nix.ladas552.me Git-Hosting: https://tangled.org/did:plc:6ikdlkw64mrjygj6cea62kn4 GitHub: https://github.com/Ladas552"''; 54 + }; 55 + "blog.ladas552.me" = { 56 + extraConfig = '' 57 + root * /var/www/blog 58 + file_server 59 + encode gzip 60 + ''; 61 + }; 62 + "nix.ladas552.me" = { 63 + extraConfig = '' 64 + root * /var/www/nix 65 + file_server 66 + encode gzip 67 + ''; 68 + }; 69 + }; 70 + }; 71 + 72 + # ZFS needs it 73 + networking.hostId = "fcb8b0b0"; 74 + 75 + # No 76 + system.stateVersion = "26.05"; # Did you read the comment? 77 + 78 + # It's a 2 vCPU server 79 + nix.settings = { 80 + cores = lib.mkForce 1; 81 + max-jobs = lib.mkForce 1; 82 + }; 83 + 84 + # I don't have firewall enabled, firewall is managed by hetzner, but just to be sure I added these ports 85 + networking.firewall.allowedTCPPorts = [ 86 + 80 87 + 443 88 + 22 89 + 3000 90 + ]; 91 + networking.firewall.allowedUDPPorts = [ 92 + 443 93 + 22 94 + ]; 95 + 96 + environment.persistence."/cache".directories = [ 97 + { 98 + directory = "/var/www"; 99 + mode = "0755"; 100 + user = "ladas552"; 101 + group = "caddy"; 102 + } 103 + ]; 104 + }; 105 + homeManager.NixWool = { 106 + # Don't change 107 + home.stateVersion = "26.05"; # Please read the comment before changing. 108 + }; 109 + }; 110 + }
+14
modules/nixosModules/Boot/grub-legacy.nix
··· 1 + { 2 + flake.modules.nixos.grub-legacy = { 3 + # GRUB Bootloader for legacy (no efi, msdos table) systems 4 + boot = { 5 + initrd.systemd.enable = true; 6 + loader.grub = { 7 + enable = true; 8 + efiSupport = false; 9 + device = "/dev/sda"; 10 + timeoutStyle = "hidden"; 11 + }; 12 + }; 13 + }; 14 + }
+1 -1
modules/nixosModules/Boot/grub.nix modules/nixosModules/Boot/grub-efi.nix
··· 1 1 { 2 - flake.modules.nixos.grub = { 2 + flake.modules.nixos.grub-efi = { 3 3 # GRUB Bootloader 4 4 boot = { 5 5 initrd.systemd.enable = true;
+6
modules/nixosModules/Connections/openssh/home.nix
··· 25 25 identityFile = [ "~/.ssh/NixToks.pub" ]; 26 26 }; 27 27 28 + matchBlocks."git.ladas552.me" = { 29 + host = "git.ladas552.me"; 30 + user = "git"; 31 + identityFile = [ "~/.ssh/NixToks" ]; 32 + }; 33 + 28 34 matchBlocks."aur.archlinux.org" = { 29 35 host = "aur.archlinux.org"; 30 36 user = "aur";
+6 -6
modules/nixosModules/Desktops/niri/niri-flake.nix
··· 276 276 # GUI apps 277 277 "Super+F".spawn = "thunar"; 278 278 "Super+W".spawn = "librewolf"; 279 - "Shift+Super+W".spawn-sh = "helium"; 279 + "Shift+Super+W".spawn-sh = "helium &"; 280 280 # MPD 281 281 "Shift+Alt+P" = { 282 282 spawn = [ ··· 640 640 }; 641 641 }; 642 642 }; 643 + 643 644 homeManager.niri-flake = { 644 645 imports = [ inputs.niri.homeModules.default ]; 645 646 wayland.windowManager.niri = { ··· 647 648 inherit settings; 648 649 }; 649 650 }; 650 - hjem.niri-flake = 651 - { pkgs, ... }: 652 - { 653 - xdg.config.files."niri/config.kdl".text = inputs.niri.lib.mkNiriKDL settings; 654 - }; 651 + 652 + hjem.niri-flake = { 653 + xdg.config.files."niri/config.kdl".text = inputs.niri.lib.mkNiriKDL settings; 654 + }; 655 655 }; 656 656 }
+55 -25
modules/nixosModules/Desktops/niri/noct/settings.json
··· 1 1 { 2 - "settingsVersion": 49, 2 + "settingsVersion": 53, 3 3 "bar": { 4 4 "barType": "simple", 5 5 "position": "left", ··· 99 99 "labelMode": "index", 100 100 "occupiedColor": "secondary", 101 101 "pillSize": 0.6, 102 - "reverseScroll": false, 103 102 "showApplications": true, 104 103 "showBadge": true, 105 104 "showLabelsOnlyWhenOccupied": true, ··· 191 190 "animationSpeed": 1.5, 192 191 "animationDisabled": false, 193 192 "compactLockScreen": false, 194 - "lockScreenAnimations": false, 193 + "lockScreenAnimations": true, 195 194 "lockOnSuspend": true, 196 195 "showSessionButtonsOnLockScreen": true, 197 196 "showHibernateOnLockScreen": false, ··· 207 206 "lockScreenCountdownDuration": 10000, 208 207 "autoStartAuth": false, 209 208 "allowPasswordWithFprintd": false, 210 - "clockStyle": "custom", 209 + "clockStyle": "digital", 211 210 "clockFormat": "hh\\nmm", 211 + "passwordChars": false, 212 212 "lockScreenMonitors": [], 213 + "lockScreenBlur": 0.8, 214 + "lockScreenTint": 0.8, 213 215 "keybinds": { 214 - "keyUp": "Up", 215 - "keyDown": "Down", 216 - "keyLeft": "Left", 217 - "keyRight": "Right", 218 - "keyEnter": "Return", 219 - "keyEscape": "Esc" 220 - } 216 + "keyUp": [ 217 + "Up" 218 + ], 219 + "keyDown": [ 220 + "Down" 221 + ], 222 + "keyLeft": [ 223 + "Left" 224 + ], 225 + "keyRight": [ 226 + "Right" 227 + ], 228 + "keyEnter": [ 229 + "Return" 230 + ], 231 + "keyEscape": [ 232 + "Esc" 233 + ], 234 + "keyRemove": [ 235 + "Del" 236 + ] 237 + }, 238 + "reverseScroll": false 221 239 }, 222 240 "ui": { 223 241 "fontDefault": "JetBrainsMono Nerd Font Mono", ··· 282 300 "randomIntervalSec": 600, 283 301 "transitionDuration": 1500, 284 302 "transitionType": "random", 303 + "skipStartupTransition": true, 285 304 "transitionEdgeSmoothness": 0.05, 286 305 "panelPosition": "top_left", 287 306 "hideWallpaperFilenames": true, ··· 298 317 "wallhavenResolutionMode": "atleast", 299 318 "wallhavenResolutionWidth": "", 300 319 "wallhavenResolutionHeight": "", 301 - "sortOrder": "name" 320 + "sortOrder": "name", 321 + "favorites": [] 302 322 }, 303 323 "appLauncher": { 304 324 "enableClipboardHistory": false, ··· 320 340 "showIconBackground": false, 321 341 "enableSettingsSearch": false, 322 342 "enableWindowsSearch": true, 343 + "enableSessionSearch": true, 323 344 "ignoreMouseInput": false, 324 345 "screenshotAnnotationTool": "", 325 346 "overviewLayer": true, ··· 396 417 "diskAvailCriticalThreshold": 10, 397 418 "batteryWarningThreshold": 30, 398 419 "batteryCriticalThreshold": 5, 399 - "cpuPollingInterval": 1000, 400 - "gpuPollingInterval": 3000, 401 420 "enableDgpuMonitoring": false, 402 - "memPollingInterval": 1000, 403 - "diskPollingInterval": 3000, 404 - "networkPollingInterval": 1000, 405 - "loadAvgPollingInterval": 3000, 406 421 "useCustomColors": false, 407 422 "warningColor": "#94e2d5", 408 423 "criticalColor": "#f38ba8", ··· 412 427 "enabled": false, 413 428 "position": "bottom", 414 429 "displayMode": "auto_hide", 430 + "dockType": "floating", 415 431 "backgroundOpacity": 1, 416 432 "floatingRatio": 0, 417 433 "size": 1, ··· 422 438 "pinnedStatic": false, 423 439 "inactiveIndicators": false, 424 440 "deadOpacity": 0.6, 425 - "animationSpeed": 1 441 + "animationSpeed": 1, 442 + "sitOnFrame": false, 443 + "showFrameIndicator": true 426 444 }, 427 445 "network": { 428 446 "wifiEnabled": true, 447 + "airplaneModeEnabled": false, 429 448 "bluetoothRssiPollingEnabled": false, 430 449 "bluetoothRssiPollIntervalMs": 10000, 431 450 "wifiDetailsViewMode": "grid", 432 451 "bluetoothDetailsViewMode": "grid", 433 - "bluetoothHideUnnamedDevices": false 452 + "bluetoothHideUnnamedDevices": false, 453 + "disableDiscoverability": false 434 454 }, 435 455 "sessionMenu": { 436 456 "enableCountdown": false, 437 457 "countdownDuration": 10000, 438 458 "position": "center", 439 459 "showHeader": false, 460 + "showKeybinds": true, 440 461 "largeButtonsStyle": false, 441 462 "largeButtonsLayout": "single-row", 442 - "showNumberLabels": true, 443 463 "powerOptions": [ 444 464 { 445 465 "action": "lock", 446 466 "command": "", 447 467 "countdownEnabled": false, 448 468 "enabled": true, 449 - "keybind": "" 469 + "keybind": "1" 450 470 }, 451 471 { 452 472 "action": "suspend", 453 473 "command": "", 454 474 "countdownEnabled": false, 455 475 "enabled": true, 456 - "keybind": "" 476 + "keybind": "2" 457 477 }, 458 478 { 459 479 "action": "hibernate", ··· 467 487 "command": "", 468 488 "countdownEnabled": false, 469 489 "enabled": true, 470 - "keybind": "" 490 + "keybind": "3" 471 491 }, 472 492 { 473 493 "action": "logout", ··· 481 501 "command": "", 482 502 "countdownEnabled": false, 483 503 "enabled": true, 504 + "keybind": "4" 505 + }, 506 + { 507 + "action": "rebootToUefi", 508 + "command": "", 509 + "countdownEnabled": true, 510 + "enabled": true, 484 511 "keybind": "" 485 512 } 486 513 ] 487 514 }, 488 515 "notifications": { 489 516 "enabled": true, 517 + "enableMarkdown": false, 518 + "density": "default", 490 519 "monitors": [], 491 520 "location": "top_right", 492 521 "overlayLayer": true, ··· 495 524 "lowUrgencyDuration": 3, 496 525 "normalUrgencyDuration": 3, 497 526 "criticalUrgencyDuration": 30, 527 + "clearDismissed": true, 498 528 "saveToHistory": { 499 529 "low": false, 500 530 "normal": true, ··· 530 560 "volumeStep": 5, 531 561 "volumeOverdrive": false, 532 562 "cavaFrameRate": 30, 533 - "visualizerType": "mirrored", 563 + "visualizerType": "wave", 534 564 "mprisBlacklist": [], 535 565 "preferredPlayer": "mpd", 536 566 "volumeFeedback": false
+1 -1
modules/nixosModules/Games/emulators.nix
··· 11 11 # snes9x-gtk 12 12 # https://github.com/NixOS/nixpkgs/issues/461665 13 13 # punes 14 - melonDS 14 + melonds 15 15 # doesn't work retroarchFull 16 16 # too complex and need a special controller mame 17 17 ];
+50
modules/nixosModules/Server/bluesky-pds.nix
··· 1 + # bluesky social federation 2 + # stolen from @SapphoSys https://github.com/SapphoSys/flake/blob/1d8ef92b389c467a83403cbaf7681352d7a53434/services/bluesky-pds/default.nix 3 + { 4 + flake.modules.nixos.bluesky-pds = 5 + { lib, config, ... }: 6 + { 7 + # secrets 8 + sops.secrets."mystuff/bluesky-pdsJWT" = { }; 9 + sops.secrets."mystuff/bluesky-pdsADMIN" = { }; 10 + sops.secrets."mystuff/bluesky-pdsKEY" = { }; 11 + sops.templates."bluesky-pds-secrets".content = '' 12 + PDS_JWT_SECRET="${config.sops.placeholder."mystuff/bluesky-pdsJWT"}" 13 + PDS_ADMIN_PASSWORD="${config.sops.placeholder."mystuff/bluesky-pdsADMIN"}" 14 + PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX="${config.sops.placeholder."mystuff/bluesky-pdsKEY"}" 15 + ''; 16 + 17 + # module 18 + services.bluesky-pds = { 19 + enable = true; 20 + goat.enable = true; 21 + pdsadmin.enable = true; 22 + settings = { 23 + PDS_HOSTNAME = "social.ladas552.me"; 24 + PDS_PORT = 3000; 25 + PDS_BLOB_UPLOAD_LIMIT = "200000000"; # 200 MB 26 + PDS_CRAWLERS = lib.concatStringsSep "," [ 27 + "https://bsky.network" 28 + "https://relay.cerulea.blue" 29 + "https://relay.upcloud.world" 30 + "https://atproto.africa" 31 + ]; 32 + }; 33 + environmentFiles = [ 34 + config.sops.templates."bluesky-pds-secrets".path 35 + ]; 36 + }; 37 + 38 + # Reverse proxy 39 + services.caddy.virtualHosts."social.ladas552.me" = { 40 + extraConfig = '' 41 + handle { 42 + reverse_proxy http://127.0.0.1:${toString config.services.bluesky-pds.settings.PDS_PORT} 43 + } 44 + ''; 45 + }; 46 + 47 + # persist for Impermanence 48 + custom.imp.root.directories = [ "/var/lib/pds/" ]; 49 + }; 50 + }
+25 -23
modules/nixosModules/Server/miniflux.nix
··· 1 1 { 2 - flake.modules.nixos.miniflux = args: { 3 - # secrets 4 - sops.secrets."mystuff/minifluxl" = { }; 5 - sops.secrets."mystuff/minifluxp" = { }; 6 - sops.templates."miniflux-admin-credentials".content = '' 7 - ADMIN_USERNAME="${args.config.sops.placeholder."mystuff/minifluxl"}" 8 - ADMIN_PASSWORD="${args.config.sops.placeholder."mystuff/minifluxp"}" 9 - ''; 2 + flake.modules.nixos.miniflux = 3 + { config, ... }: 4 + { 5 + # secrets 6 + sops.secrets."mystuff/minifluxl" = { }; 7 + sops.secrets."mystuff/minifluxp" = { }; 8 + sops.templates."miniflux-admin-credentials".content = '' 9 + ADMIN_USERNAME="${config.sops.placeholder."mystuff/minifluxl"}" 10 + ADMIN_PASSWORD="${config.sops.placeholder."mystuff/minifluxp"}" 11 + ''; 10 12 11 - # module 12 - services.miniflux = { 13 - enable = true; 14 - adminCredentialsFile = "${args.config.sops.templates."miniflux-admin-credentials".path}"; 15 - config = { 16 - LISTEN_ADDR = "100.74.112.27:8067"; 17 - CREATE_ADMIN = true; 18 - LOG_DATE_TIME = "1"; 13 + # module 14 + services.miniflux = { 15 + enable = true; 16 + adminCredentialsFile = "${config.sops.templates."miniflux-admin-credentials".path}"; 17 + config = { 18 + LISTEN_ADDR = "100.74.112.27:8067"; 19 + CREATE_ADMIN = true; 20 + LOG_DATE_TIME = "1"; 19 21 20 - FETCH_BILIBILI_WATCH_TIME = "1"; 21 - FETCH_NEBULA_WATCH_TIME = "1"; 22 - FETCH_ODYSEE_WATCH_TIME = "1"; 23 - FETCH_YOUTUBE_WATCH_TIME = "1"; 22 + FETCH_BILIBILI_WATCH_TIME = "1"; 23 + FETCH_NEBULA_WATCH_TIME = "1"; 24 + FETCH_ODYSEE_WATCH_TIME = "1"; 25 + FETCH_YOUTUBE_WATCH_TIME = "1"; 24 26 27 + }; 25 28 }; 29 + # Only allow Tailscale 30 + networking.firewall.interfaces.tailscale0.allowedTCPPorts = [ 8067 ]; 26 31 }; 27 - # Only allow Tailscale 28 - networking.firewall.interfaces.tailscale0.allowedTCPPorts = [ 8067 ]; 29 - }; 30 32 }
+70
modules/nixosModules/Server/tangled.nix
··· 1 + { inputs, ... }: 2 + { 3 + flake.modules.nixos.tangled = 4 + { config, ... }: 5 + let 6 + cfg = config.services.tangled.knot; 7 + in 8 + { 9 + imports = [ 10 + # git 11 + inputs.tangled.nixosModules.knot 12 + # UI 13 + # inputs.tangled.nixosModules.appview 14 + # CI 15 + # inputs.tangled.nixosModules.spindle 16 + ]; 17 + 18 + # module 19 + services = { 20 + tangled = { 21 + knot = { 22 + enable = true; 23 + gitUser = "git"; 24 + repo.scanPath = "${cfg.stateDir}/repos"; 25 + server = { 26 + listenAddr = "0.0.0.0:3050"; 27 + hostname = "knot.ladas552.me"; 28 + internalListenAddr = "127.0.0.1:5444"; 29 + owner = "did:plc:6ikdlkw64mrjygj6cea62kn4"; # @ladas552.me 30 + }; 31 + }; 32 + # My VPS is too weak for docker containers 33 + # spindle = { 34 + # enable = true; 35 + # server = { 36 + # listenAddr = "0.0.0.0:6555"; 37 + # hostname = "spindle.ladas552.me"; 38 + # owner = "did:plc:6ikdlkw64mrjygj6cea62kn4"; 39 + # }; 40 + # pipelines.workflowTimeout = "10m"; 41 + # }; 42 + }; 43 + }; 44 + 45 + # Reverse proxy 46 + services.caddy.virtualHosts = { 47 + "knot.ladas552.me".extraConfig = '' 48 + handle { 49 + reverse_proxy http://127.0.0.1:3050 50 + } 51 + ''; 52 + # "spindle.ladas552.me".extraConfig = '' 53 + # handle { 54 + # reverse_proxy http://127.0.0.1:6555 55 + # } 56 + # ''; 57 + }; 58 + 59 + # persist for Impermanence 60 + custom.imp.root = { 61 + directories = [ 62 + "/home/git" 63 + ]; 64 + cache.directories = [ 65 + # "/var/lib/containers" 66 + # "/var/log/spindle" 67 + ]; 68 + }; 69 + }; 70 + }
+1
modules/nixosModules/Users/HJEM.nix
··· 5 5 { 6 6 imports = [ inputs.hjem.nixosModules.default ]; 7 7 hjem = { 8 + # linker = pkgs.smfh; 8 9 linker = inputs.hjem.packages.${pkgs.stdenv.hostPlatform.system}.smfh; 9 10 clobberByDefault = true; 10 11 users.${config.custom.meta.user} = {
+3
modules/nixosModules/Users/ladas552.nix
··· 13 13 hashedPasswordFile = config.sops.secrets."mystuff/host_pwd".path; 14 14 openssh.authorizedKeys.keys = [ 15 15 "ssh-ed25520 AAAAC3NzaC1lZDI1NTE5AAAAIPiFWLpIrKZ1+8PPSegYpNrRaPlE4t7iVUnHucvWQJJx ladas552@NixPort" 16 + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPiFWLpIrKZ1+8PPSegYpNrRaPlE4t7iVUnHucvWQJJx ladas552@NixToks-2024-06-25" 17 + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJOZaAO4vfV5kiLiHrrKTO8Y/YLVi72e/918YfWdgQBJ u0_a595@localhost" 18 + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEyzumytf6gU/PgXAqlKTMASUg3NJbdq4weMfnxZJmEG u0_a189@localhost" 16 19 ]; 17 20 }; 18 21 nix.settings.trusted-users = [ "ladas552" ];
+7 -2
modules/nixosModules/general.nix
··· 1 1 { 2 2 flake.modules.nixos.general = 3 - { pkgs, config, ... }: 3 + { 4 + pkgs, 5 + config, 6 + lib, 7 + ... 8 + }: 4 9 { 5 10 # Define hostname. 6 11 networking.hostName = "${config.custom.meta.hostname}"; 7 12 # Set kernel 8 - boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod; 13 + boot.kernelPackages = lib.mkDefault pkgs.linuxKernel.packages.linux_xanmod; 9 14 # boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen; 10 15 11 16 # Updates firmware directly from vendors
-1
modules/userModules/chawan.nix
··· 45 45 in 46 46 { 47 47 hjem.chawan = { 48 - # from https://github.com/snugnug/hjem-rum/pull/162 49 48 inherit custom; 50 49 rum.programs.chawan = config-chawan; 51 50 };
-1
modules/userModules/fastfetch.nix
··· 51 51 }; 52 52 in 53 53 { 54 - # fastfetch hjem-rum is from https://github.com/snugnug/hjem-rum/pull/172 55 54 hjem.fastfetch.rum.programs.fastfetch = config-fastfetch; 56 55 homeManager.fastfetch.programs.fastfetch = config-fastfetch; 57 56 };
+145 -19
modules/wrappers/helium/flake-outputs.nix
··· 1 1 { self, ... }: 2 + # stolen from weegs710 3 + # https://github.com/weegs710/AnomalOS/blob/f23a7019a53a8952d253d43defb1281712dccdbd/modules/shareables/wrapped-helium.nix 2 4 { 3 - # stolen from @iynaix 4 5 perSystem = 5 - { pkgs, ... }: 6 + { 7 + pkgs, 8 + system, 9 + ... 10 + }: 6 11 let 7 - pname = "helium"; 12 + pkgsUnfree = import pkgs.path { 13 + inherit system; 14 + config.allowUnfree = true; 15 + }; 16 + 8 17 source = (pkgs.callPackage "${self}/_sources/generated.nix" { }).helium; 9 - appimageContents = pkgs.appimageTools.extract source; 10 - helium = pkgs.appimageTools.wrapType2 source // { 11 - nativeBuildInputs = [ pkgs.makeWrapper ]; 12 - extraInstallCommands = '' 13 - wrapProgram $out/bin/${pname} \ 14 - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" 18 + 19 + extensionPolicy = pkgs.writeText "policy.json" ( 20 + builtins.toJSON { 21 + # IDs only (no URLs) to avoid triggering TRK protocol blocking 22 + ExtensionInstallForcelist = [ 23 + "eimadpbcbfnmbkopoojfekhnkhdbieeh" # Dark Reader 24 + "odibgflepadohfmpcemnjbhkionjkapk" # Helium Translator Inline 25 + ]; 26 + } 27 + ); 15 28 16 - install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications 17 - substituteInPlace $out/share/applications/${pname}.desktop \ 18 - --replace 'Exec=AppRun' 'Exec=${pname}' 19 - cp -r ${appimageContents}/usr/share/icons $out/share 29 + policiesDir = pkgs.runCommand "helium-policies" { } '' 30 + mkdir -p $out/etc/opt/chrome/policies/managed 31 + cp ${extensionPolicy} $out/etc/opt/chrome/policies/managed/extensions.json 32 + ''; 33 + 34 + widevineConfig = pkgs.writeText "latest-component-updated-widevine-cdm" ( 35 + builtins.toJSON { 36 + Path = "${pkgsUnfree.widevine-cdm}/share/google/chrome/WidevineCdm"; 37 + } 38 + ); 39 + 40 + # Tarball allows more control than AppImage 41 + heliumPkg = pkgs.stdenv.mkDerivation rec { 42 + inherit (source) pname version src; 43 + 44 + nativeBuildInputs = with pkgs; [ 45 + makeWrapper 46 + autoPatchelfHook 47 + ]; 48 + 49 + buildInputs = with pkgs; [ 50 + stdenv.cc.cc.lib 51 + gtk3 52 + nss 53 + nspr 54 + alsa-lib 55 + cups 56 + libdrm 57 + mesa 58 + expat 59 + libxkbcommon 60 + pango 61 + cairo 62 + at-spi2-atk 63 + at-spi2-core 64 + dbus 65 + libva 66 + libGL 67 + ]; 68 + 69 + # Qt shim libraries are optional compatibility layers 70 + autoPatchelfIgnoreMissingDeps = [ 71 + "libQt5Core.so.5" 72 + "libQt5Gui.so.5" 73 + "libQt5Widgets.so.5" 74 + "libQt6Core.so.6" 75 + "libQt6Gui.so.6" 76 + "libQt6Widgets.so.6" 77 + ]; 78 + 79 + sourceRoot = "helium-${version}-x86_64_linux"; 80 + 81 + installPhase = '' 82 + mkdir -p $out/opt/helium $out/bin 83 + 84 + cp -r . $out/opt/helium/ 85 + chmod +x $out/opt/helium/helium 86 + 87 + makeWrapper $out/opt/helium/helium $out/bin/helium \ 88 + --add-flags "--enable-features=VaapiVideoDecoder,WebUIDarkMode,HeliumCatUi,HideCrashedBubble,LinkPreview" \ 89 + --add-flags "--disable-features=EyeDropper,HeliumCatFixedAddressBar" 90 + 91 + mkdir -p $out/share/applications 92 + cp $out/opt/helium/helium.desktop $out/share/applications/ 93 + substituteInPlace $out/share/applications/helium.desktop \ 94 + --replace 'Exec=helium --incognito' 'Exec=${pname} &' 95 + 96 + for size in 16 32 48 64 128 256; do 97 + mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps 98 + if [ -f $out/opt/helium/product_logo_''${size}.png ]; then 99 + cp $out/opt/helium/product_logo_''${size}.png \ 100 + $out/share/icons/hicolor/''${size}x''${size}/apps/helium.png 101 + fi 102 + done 20 103 ''; 21 104 22 - # pass through files from the root fs 105 + meta = { 106 + description = "Private, fast, and honest web browser"; 107 + homepage = "https://helium.computer/"; 108 + platforms = [ "x86_64-linux" ]; 109 + }; 110 + }; 111 + 112 + heliumWrapper = pkgs.writeShellScript "helium-wrapper" '' 113 + USER_DATA_DIR="" 114 + for arg in "$@"; do 115 + if [[ "$arg" == --user-data-dir=* ]]; then 116 + USER_DATA_DIR="''${arg#*=}" 117 + break 118 + fi 119 + done 120 + 121 + if [ -z "$USER_DATA_DIR" ]; then 122 + USER_DATA_DIR="$HOME/.config/net.imput.helium" 123 + fi 124 + 125 + mkdir -p "$USER_DATA_DIR/WidevineCdm" 126 + cp ${widevineConfig} "$USER_DATA_DIR/WidevineCdm/latest-component-updated-widevine-cdm" 127 + 128 + exec ${heliumPkg}/bin/helium "$@" 129 + ''; 130 + 131 + wrappedHelium = pkgs.buildFHSEnv { 132 + name = "helium"; 133 + targetPkgs = pkgs: [ 134 + heliumPkg 135 + ]; 23 136 extraBwrapArgs = [ 24 - # chromium policies 25 - "--ro-bind-try /etc/chromium/policies/managed/default.json /etc/chromium/policies/managed/default.json" 26 - # xdg scheme-handlers 27 - "--ro-bind-try /etc/xdg/ /etc/xdg/" 137 + "--ro-bind ${policiesDir}/etc/opt/chrome/policies/managed /etc/chromium/policies/managed" 28 138 ]; 139 + runScript = heliumWrapper; 140 + extraInstallCommands = '' 141 + mkdir -p $out/share/applications 142 + cp ${heliumPkg}/share/applications/helium.desktop $out/share/applications/ 29 143 144 + for size in 16 32 48 64 128 256; do 145 + mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps 146 + if [ -f ${heliumPkg}/share/icons/hicolor/''${size}x''${size}/apps/helium.png ]; then 147 + cp ${heliumPkg}/share/icons/hicolor/''${size}x''${size}/apps/helium.png \ 148 + $out/share/icons/hicolor/''${size}x''${size}/apps/ 149 + fi 150 + done 151 + ''; 152 + meta = { 153 + mainProgram = "helium"; 154 + description = "Helium browser with DRM, dark UI, and bundled extensions"; 155 + }; 30 156 }; 31 157 in 32 158 { 33 - packages.helium = helium; 159 + packages.helium = wrappedHelium; 34 160 }; 35 161 }
-8
modules/wrappers/helium/user.nix
··· 5 5 { 6 6 packages = [ self.packages.${pkgs.stdenv.hostPlatform.system}.helium ]; 7 7 8 - # Add widevine support, inspired from this comment: 9 - # DRM 10 - # https://github.com/imputnet/helium/issues/116#issuecomment-3668370766 11 - # https://github.com/Michael-C-Buckley/nixos/blob/319f441b799e7c2db7eabd77524f5bbc3d74a3d2/modules/hjem/configs/applications/helium.nix#L15 12 - xdg.config.files."net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm".text = '' 13 - {"Path":"${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm"} 14 - ''; 15 - 16 8 custom.imp.home.cache.directories = [ 17 9 ".cache/net.imput.helium" 18 10 ".config/net.imput.helium"
+10
modules/wrappers/nvf/flake-outputs.nix
··· 85 85 NixMux 86 86 ]; 87 87 }).neovim; 88 + nvf-NixWool = 89 + (inputs.nvf.lib.neovimConfiguration { 90 + inherit pkgs; 91 + modules = 92 + with config.flake.modules.nvf; 93 + base 94 + ++ [ 95 + NixWool 96 + ]; 97 + }).neovim; 88 98 }; 89 99 }; 90 100 }
+3 -1
modules/wrappers/nvf/user.nix
··· 16 16 let 17 17 nvf-NixPort = self.packages."x86_64-linux".nvf-NixPort; 18 18 nvf-NixToks = self.packages."x86_64-linux".nvf-NixToks; 19 + nvf-NixWool = self.packages."aarch64-linux".nvf-NixWool; 19 20 in 20 21 { 21 22 packages = 22 23 [ ] 23 24 ++ lib.optionals (config.custom.meta.hostname == "NixPort") [ nvf-NixPort ] 24 - ++ lib.optionals (config.custom.meta.hostname == "NixToks") [ nvf-NixToks ]; 25 + ++ lib.optionals (config.custom.meta.hostname == "NixToks") [ nvf-NixToks ] 26 + ++ lib.optionals (config.custom.meta.hostname == "NixWool") [ nvf-NixWool ]; 25 27 environment.sessionVariables.EDITOR = "neovim"; 26 28 }; 27 29 };
+1 -2
nvfetcher.toml
··· 1 1 # helium 2 2 [helium] 3 3 src.github_tag = "imputnet/helium-linux" 4 - fetch.url = "https://github.com/imputnet/helium-linux/releases/download/$ver/helium-$ver-x86_64.AppImage" 4 + fetch.url = "https://github.com/imputnet/helium-linux/releases/download/$ver/helium-$ver-x86_64_linux.tar.xz" 5 5 6 6 # neorg 7 7 [neorg-interim-ls] ··· 45 45 [nixos-hardware] 46 46 src.git = "https://github.com/nixos/nixos-hardware" 47 47 fetch.git = "https://github.com/nixos/nixos-hardware" 48 -
+1 -1
pkgs/musnow.nix
··· 4 4 '' 5 5 #Dependencis 6 6 #fish,ffmpeg,mpd,mpc 7 - #get current's song url into 'crtl+v' clipvoard 7 + #get current's song url into 'crtl+v' clipboard 8 8 ffprobe -loglevel error -show_entries format_tags=purl -of default=noprint_wrappers=1:nokey=1 ~/Music/(mpc -f %file% current) | wl-copy 9 9 '' 10 10
+6 -3
secrets/secrets.yaml
··· 13 13 minifluxl: ENC[AES256_GCM,data:MIS320w=,iv:KF7B27fHOniQOFGauYDmIpNdXgl+dN0mV3uSvzhwT6g=,tag:LoqqkE40pko3fzSsU/XpPw==,type:str] 14 14 minifluxp: ENC[AES256_GCM,data:Jx7IjJE7jdY=,iv:BFcVmH7HWjrhFJSAG7HchEiOlw1se2DbCB9d84BWyw4=,tag:9G7rCBVqu0zsUMt0LbaY8Q==,type:str] 15 15 tailnet: ENC[AES256_GCM,data:H+WFQd2cU+dZR6dj8IZDDqwC7uXEBwKbjQ+q/xOj8RanD5lFzL6to49mVOKTu7e+LH8iBCB19eCiHWGg5aE=,iv:5kwqZkO4cM2yGxq+mi9R25tlH8Q7hiIAshjXpb9I/AU=,tag:FytBMP9URERgJEpz9ZuAPw==,type:str] 16 + bluesky-pdsJWT: ENC[AES256_GCM,data:gTE82RxcKdqmGLjlitGxfxMXlk/+woWYp4lrsbWaiVY=,iv:QpiZjO4nxYi9Vx6qOTfWyenbfAYiSlhKjtxVFYqJ1/I=,tag:sJN8pn4VKH/S4l63fk/c0Q==,type:str] 17 + bluesky-pdsADMIN: ENC[AES256_GCM,data:xqJEeR6uAsRB18KDQ65ABWy3ZAYLc5OS6YR13VsVxWA=,iv:UI6HlcOPktfpzH87qALtGXR12oSbcxlTA62xcF/nyeA=,tag:62obwEMwj3bKrdjQComTpw==,type:str] 18 + bluesky-pdsKEY: ENC[AES256_GCM,data:AAQ+W/8/5oL5Z1qSvuEeCTsNfJLmSTKpl/Kse2wUlAefNLm8A5IfTTLqwh+3GNC8thXPD77js4z8orSveh6VCg==,iv:hi8ohwxNgzSt1ikpMRHlSYfXjx4+6yrAtO2i9opnl34=,tag:hqIe42HxkdEzIMZ2TeKs/g==,type:str] 16 19 sops: 17 20 age: 18 21 - recipient: age18yaw2nreuzgmh2w9y2mpx7kmgfrwqzr6hf2raws0fk37ut950ydqwwctu8 ··· 24 27 RkFQSEYxY3NnMkhpWXdCd1llb2ZYcHMK6BoBQQCJqntA69nPdZxPl066pkxA4c/i 25 28 k4RwkMDyyRLTnFP8jWhqH1AxUzDQluRnmGPJ4wq6DPe5mLKa6649Mg== 26 29 -----END AGE ENCRYPTED FILE----- 27 - lastmodified: "2025-09-17T13:27:31Z" 28 - mac: ENC[AES256_GCM,data:yaq5tXuDF3TSNxtiDMLO6M52quAS4Hw/wa479xX+qjhiovEfvieA03lMRYa9Tam7DmjTsFrpr4pm/Rt8jBMxOw1RxEBwL/iqnB861m8ac9qyCr8AmwC1Zbu5gtRpXd6LlBodRdkNkbybN1Db2XIVIjd09YubsLx0WU2HVmN97Os=,iv:O0YsKRU+M6Heigi5uCPgNsU3JJQAmwJX0SK7DuI9BR8=,tag:ow5SOtOjVuFElHTMqMYBJA==,type:str] 30 + lastmodified: "2026-02-16T15:59:29Z" 31 + mac: ENC[AES256_GCM,data:nEVpqlj0tqJ586ymxo8y7mde07XtrtboNMEhsyQPsa9TwdPBDGr3fhNLzu9//6Dq78RUhyGK/t1nfvs5zE/Opaze8SmS4LXZACPrruUC6YFQFvN10H3g8Q/4rJ8xtaU9Q1KVL8fbjCXjmthixS7ORjQ0+wdiPyk3rQamxYK89DE=,iv:7RiCtcXk+a135ARgrA7UwJCs8cwPVMUFIGtMBVx5S9g=,tag:qi/zhUDGQu7dgEFJMbTxxA==,type:str] 29 32 unencrypted_suffix: _unencrypted 30 - version: 3.10.2 33 + version: 3.11.0
+27
stuff/recursivelyImport.nix
··· 1 + { lib }: 2 + let 3 + inherit (lib) hasSuffix hasPrefix; 4 + inherit (builtins) 5 + concatMap 6 + isPath 7 + filter 8 + readFileType 9 + ; 10 + 11 + expandIfFolder = 12 + elem: 13 + if !isPath elem || readFileType elem != "directory" then 14 + [ elem ] 15 + else 16 + lib.filesystem.listFilesRecursive elem; 17 + in 18 + list: 19 + filter 20 + # Filter out any path that doesn't look like `*.nix`. Don't forget to use 21 + # toString to prevent copying paths to the store unnecessarily 22 + ( 23 + elem: 24 + !isPath elem || (hasSuffix ".nix" (toString elem) && !hasPrefix "_" (baseNameOf (toString elem))) 25 + ) 26 + # Expand any folder to all the files within it. 27 + (concatMap expandIfFolder list)