Personal Nix flake
nixos home-manager nix
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: Merge branch 'develop'

+2152 -2580
-7
.github/actions/nix-setup/action.yml
··· 5 5 system: 6 6 description: 'The system to setup' 7 7 default: 'x86_64-linux' 8 - forceInstallQemu: 9 - default: false 10 8 cachixAuthToken: 11 9 description: 'The token to use to authenticate with cachix' 12 10 runs: 13 11 using: "composite" 14 12 steps: 15 - - name: Install qemu 16 - if: ${{ inputs.forceInstallQemu || inputs.system != 'x86_64-linux' }} 17 - shell: bash 18 - run: | 19 - sudo apt-get install -y qemu-user-static 20 13 - uses: cachix/install-nix-action@V28 21 14 with: 22 15 extra_nix_config: |
+14
.github/actions/qemu-setup/action.yml
··· 1 + name: Setup qemu 2 + description: Installs qemu for aarch64 emulation 3 + 4 + runs: 5 + using: "composite" 6 + steps: 7 + - name: Update package list 8 + shell: bash 9 + run: | 10 + sudo apt-get update 11 + - name: Install qemu 12 + shell: bash 13 + run: | 14 + sudo sudo apt-get install -y qemu-user-static
+7 -1
.github/workflows/build.yml
··· 54 54 with: 55 55 cachixAuthToken: ${{ secrets.CACHIX_AUTH_TOKEN }} 56 56 system: ${{ matrix.system }} 57 + - uses: ./.github/actions/qemu-setup 58 + if: ${{ matrix.system != 'x86_64-linux' }} 57 59 - run: | 58 60 nix build ${{ matrix.derivation }} 59 61 ··· 72 74 with: 73 75 cachixAuthToken: ${{ secrets.CACHIX_AUTH_TOKEN }} 74 76 system: ${{ matrix.system }} 77 + - uses: ./.github/actions/qemu-setup 78 + if: ${{ matrix.system != 'x86_64-linux' }} 75 79 - run: | 76 80 nix build ${{ matrix.derivation }} 77 81 ··· 90 94 with: 91 95 cachixAuthToken: ${{ secrets.CACHIX_AUTH_TOKEN }} 92 96 system: ${{ matrix.system }} 97 + - uses: ./.github/actions/qemu-setup 98 + if: ${{ matrix.system != 'x86_64-linux' }} 93 99 - run: | 94 100 nix build ${{ matrix.derivation }} 95 101 96 102 build-raspberrypi: 97 103 name: Build raspberrypi 98 - runs-on: ubuntu-latest 104 + runs-on: ubuntu-24.04-arm 99 105 steps: 100 106 - uses: actions/checkout@v4 101 107 - uses: ./.github/actions/nix-setup
+1 -1
.github/workflows/check.yml
··· 26 26 - uses: ./.github/actions/nix-setup 27 27 with: 28 28 cachixAuthToken: ${{ secrets.CACHIX_AUTH_TOKEN }} 29 - forceInstallQemu: true 29 + - uses: ./.github/actions/qemu-setup 30 30 - run: | 31 31 nix flake check --all-systems .
+1 -1
.github/workflows/update-flake.yml
··· 15 15 - uses: ./.github/actions/build-setup 16 16 with: 17 17 cachixAuthToken: ${{ secrets.CACHIX_AUTH_TOKEN }} 18 - forceInstallQemu: true 18 + - uses: ./.github/actions/qemu-setup 19 19 - name: Update flake inputs 20 20 run: | 21 21 nix flake update \
-14
default.nix
··· 1 - ( 2 - import 3 - ( 4 - let 5 - lock = builtins.fromJSON (builtins.readFile ./flake.lock); 6 - in 7 - fetchTarball { 8 - url = lock.nodes.flake-compat.locked.url or "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; 9 - sha256 = lock.nodes.flake-compat.locked.narHash; 10 - } 11 - ) 12 - {src = ./.;} 13 - ) 14 - .defaultNix
+520 -1045
flake.lock
··· 1 1 { 2 2 "nodes": { 3 - "ags": { 4 - "inputs": { 5 - "astal": "astal", 6 - "nixpkgs": "nixpkgs" 7 - }, 8 - "locked": { 9 - "lastModified": 1735485506, 10 - "narHash": "sha256-7CWr3Q83KnGiLUn0oaboafLMOXQ0X9/fjFRVY1xopbM=", 11 - "owner": "Aylur", 12 - "repo": "ags", 13 - "rev": "251d39413543264361898b02035775aa3e46fe52", 14 - "type": "github" 15 - }, 16 - "original": { 17 - "owner": "Aylur", 18 - "repo": "ags", 19 - "type": "github" 20 - } 21 - }, 22 - "ags18": { 23 - "inputs": { 24 - "nixpkgs": "nixpkgs_2" 25 - }, 26 - "locked": { 27 - "lastModified": 1714402202, 28 - "narHash": "sha256-Ga7MdGc1CA+WwLB7xAEbuzXzGtEM2346kUDvq8ymgJc=", 29 - "owner": "Aylur", 30 - "repo": "ags", 31 - "rev": "bb91f7c8fdd2f51c79d3af3f2881cacbdff19f60", 32 - "type": "github" 33 - }, 34 - "original": { 35 - "owner": "Aylur", 36 - "ref": "v1.8.2", 37 - "repo": "ags", 38 - "type": "github" 39 - } 40 - }, 41 3 "aquamarine": { 42 4 "inputs": { 43 5 "hyprutils": [ ··· 58 20 ] 59 21 }, 60 22 "locked": { 61 - "lastModified": 1734906446, 62 - "narHash": "sha256-6OWluVE2A8xi+8V3jN9KA72RCgJjYdyyuLBUjxZ2q2U=", 23 + "lastModified": 1755946532, 24 + "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=", 63 25 "owner": "hyprwm", 64 26 "repo": "aquamarine", 65 - "rev": "eecb74dc79bb6752a2a507e6edee3042390a6091", 27 + "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada", 66 28 "type": "github" 67 29 }, 68 30 "original": { ··· 71 33 "type": "github" 72 34 } 73 35 }, 74 - "astal": { 75 - "inputs": { 76 - "nixpkgs": [ 77 - "ags", 78 - "nixpkgs" 79 - ] 80 - }, 81 - "locked": { 82 - "lastModified": 1735172721, 83 - "narHash": "sha256-rtEAwGsHSppnkR3Qg3eRJ6Xh/F84IY9CrBBLzYabalY=", 84 - "owner": "aylur", 85 - "repo": "astal", 86 - "rev": "6c84b64efc736e039a8a10774a4a1bf772c37aa2", 87 - "type": "github" 88 - }, 89 - "original": { 90 - "owner": "aylur", 91 - "repo": "astal", 92 - "type": "github" 93 - } 94 - }, 95 - "astal_2": { 96 - "inputs": { 97 - "nixpkgs": "nixpkgs_3" 98 - }, 99 - "locked": { 100 - "lastModified": 1735816646, 101 - "narHash": "sha256-YmWlel2nfkZEa0mME7H7pHw4OFMLrcpppZfh55yJxLA=", 102 - "owner": "Aylur", 103 - "repo": "astal", 104 - "rev": "207557dd2b069a33bb78ce3ab3c83cd8bec7a58d", 105 - "type": "github" 106 - }, 107 - "original": { 108 - "owner": "Aylur", 109 - "repo": "astal", 110 - "type": "github" 111 - } 112 - }, 113 36 "base16": { 114 37 "inputs": { 115 38 "fromYaml": "fromYaml" 116 39 }, 117 40 "locked": { 118 - "lastModified": 1732200724, 119 - "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=", 41 + "lastModified": 1755819240, 42 + "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", 120 43 "owner": "SenchoPens", 121 44 "repo": "base16.nix", 122 - "rev": "153d52373b0fb2d343592871009a286ec8837aec", 45 + "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", 123 46 "type": "github" 124 47 }, 125 48 "original": { ··· 147 70 "base16-helix": { 148 71 "flake": false, 149 72 "locked": { 150 - "lastModified": 1725860795, 151 - "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=", 73 + "lastModified": 1752979451, 74 + "narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=", 152 75 "owner": "tinted-theming", 153 76 "repo": "base16-helix", 154 - "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9", 77 + "rev": "27cf1e66e50abc622fb76a3019012dc07c678fac", 155 78 "type": "github" 156 79 }, 157 80 "original": { ··· 163 86 "base16-vim": { 164 87 "flake": false, 165 88 "locked": { 166 - "lastModified": 1731949548, 167 - "narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=", 89 + "lastModified": 1732806396, 90 + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", 168 91 "owner": "tinted-theming", 169 92 "repo": "base16-vim", 170 - "rev": "61165b1632409bd55e530f3dbdd4477f011cadc6", 93 + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", 171 94 "type": "github" 172 95 }, 173 96 "original": { 174 97 "owner": "tinted-theming", 175 98 "repo": "base16-vim", 99 + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", 176 100 "type": "github" 177 101 } 178 102 }, 179 - "cachix": { 103 + "caelestia": { 180 104 "inputs": { 181 - "devenv": [ 182 - "devenv" 105 + "caelestia-cli": "caelestia-cli", 106 + "nixpkgs": [ 107 + "nixpkgs" 183 108 ], 184 - "flake-compat": [ 185 - "devenv" 186 - ], 187 - "git-hooks": [ 188 - "devenv" 109 + "quickshell": "quickshell" 110 + }, 111 + "locked": { 112 + "lastModified": 1757520432, 113 + "narHash": "sha256-tlSPVN9pprFEh0wZd44FHhn1JQIK2Ms1niq4SZLDYa0=", 114 + "owner": "caelestia-dots", 115 + "repo": "shell", 116 + "rev": "6f147b21cc5a5611dbee11c838565d93a2466786", 117 + "type": "github" 118 + }, 119 + "original": { 120 + "owner": "caelestia-dots", 121 + "repo": "shell", 122 + "type": "github" 123 + } 124 + }, 125 + "caelestia-cli": { 126 + "inputs": { 127 + "caelestia-shell": [ 128 + "caelestia" 189 129 ], 190 - "nixpkgs": "nixpkgs_5" 130 + "nixpkgs": [ 131 + "caelestia", 132 + "nixpkgs" 133 + ] 191 134 }, 192 135 "locked": { 193 - "lastModified": 1728672398, 194 - "narHash": "sha256-KxuGSoVUFnQLB2ZcYODW7AVPAh9JqRlD5BrfsC/Q4qs=", 195 - "owner": "cachix", 196 - "repo": "cachix", 197 - "rev": "aac51f698309fd0f381149214b7eee213c66ef0a", 136 + "lastModified": 1757123223, 137 + "narHash": "sha256-WE20W7OTKxw+Tvmthpy0CEV0KOvLWuvaW+bceTZ8yhk=", 138 + "owner": "caelestia-dots", 139 + "repo": "cli", 140 + "rev": "12abcf2336e9277c47d745ac3cae04effa28d674", 198 141 "type": "github" 199 142 }, 200 143 "original": { 201 - "owner": "cachix", 202 - "ref": "latest", 203 - "repo": "cachix", 144 + "owner": "caelestia-dots", 145 + "repo": "cli", 204 146 "type": "github" 205 147 } 206 148 }, ··· 209 151 "flake-schemas": "flake-schemas", 210 152 "home-manager": "home-manager", 211 153 "jovian": "jovian", 212 - "nixpkgs": "nixpkgs_4" 154 + "nixpkgs": "nixpkgs", 155 + "rust-overlay": "rust-overlay" 213 156 }, 214 157 "locked": { 215 - "lastModified": 1735566338, 216 - "narHash": "sha256-9sYGJZCGeb11WBVsE2u0gwuTk8LpbOgnrJvyDbHpOoY=", 158 + "lastModified": 1757505806, 159 + "narHash": "sha256-n9/XRT0g6ucBpq2r1NUGDVwI6CTqg45sdljjAJdvWwc=", 217 160 "owner": "chaotic-cx", 218 161 "repo": "nyx", 219 - "rev": "446ad45313df3dbc93ad9e9d8dd6d094b16f6fb4", 162 + "rev": "0e34b767650b5b71a9c2b2caf4270f50a66a9305", 220 163 "type": "github" 221 164 }, 222 165 "original": { ··· 228 171 }, 229 172 "crane": { 230 173 "locked": { 231 - "lastModified": 1731098351, 232 - "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", 174 + "lastModified": 1754269165, 175 + "narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=", 233 176 "owner": "ipetkov", 234 177 "repo": "crane", 235 - "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", 178 + "rev": "444e81206df3f7d92780680e45858e31d2f07a08", 236 179 "type": "github" 237 180 }, 238 181 "original": { ··· 241 184 "type": "github" 242 185 } 243 186 }, 244 - "devenv": { 245 - "inputs": { 246 - "cachix": "cachix", 247 - "flake-compat": [ 248 - "flake-compat" 249 - ], 250 - "git-hooks": "git-hooks", 251 - "nix": "nix", 252 - "nixpkgs": [ 253 - "nixpkgs" 254 - ] 255 - }, 256 - "locked": { 257 - "lastModified": 1735834000, 258 - "narHash": "sha256-LrUPI+8xKbo2ZtZOPyUVqe1161612/j1r+erbueHEtk=", 259 - "owner": "cachix", 260 - "repo": "devenv", 261 - "rev": "8d13e1fe6e1203d028d4529f8f8ed40384565c64", 262 - "type": "github" 263 - }, 264 - "original": { 265 - "owner": "cachix", 266 - "repo": "devenv", 267 - "type": "github" 268 - } 269 - }, 270 - "devshell": { 271 - "inputs": { 272 - "nixpkgs": [ 273 - "nixvim", 274 - "nixpkgs" 275 - ] 276 - }, 277 - "locked": { 278 - "lastModified": 1728330715, 279 - "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", 280 - "owner": "numtide", 281 - "repo": "devshell", 282 - "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", 283 - "type": "github" 284 - }, 285 - "original": { 286 - "owner": "numtide", 287 - "repo": "devshell", 288 - "type": "github" 289 - } 290 - }, 291 187 "disko": { 292 188 "inputs": { 293 189 "nixpkgs": [ ··· 295 191 ] 296 192 }, 297 193 "locked": { 298 - "lastModified": 1735468753, 299 - "narHash": "sha256-2dt1nOe9zf9pDkf5Kn7FUFyPRo581s0n90jxYXJ94l0=", 194 + "lastModified": 1757508292, 195 + "narHash": "sha256-7lVWL5bC6xBIMWWDal41LlGAG+9u2zUorqo3QCUL4p4=", 300 196 "owner": "nix-community", 301 197 "repo": "disko", 302 - "rev": "84a5b93637cc16cbfcc61b6e1684d626df61eb21", 198 + "rev": "146f45bee02b8bd88812cfce6ffc0f933788875a", 303 199 "type": "github" 304 200 }, 305 201 "original": { ··· 308 204 "type": "github" 309 205 } 310 206 }, 311 - "dotfiles-aylur": { 312 - "inputs": { 313 - "ags": [ 314 - "ags" 315 - ], 316 - "astal": [ 317 - "astal" 318 - ], 319 - "firefox-gnome-theme": "firefox-gnome-theme", 320 - "home-manager": [ 321 - "home-manager" 322 - ], 323 - "hyprland": [ 324 - "hyprland" 325 - ], 326 - "hyprland-hyprspace": "hyprland-hyprspace", 327 - "hyprland-plugins": [ 328 - "hyprland-plugins" 329 - ], 330 - "lf-icons": "lf-icons", 331 - "matugen": "matugen", 332 - "nixpkgs": "nixpkgs_8" 333 - }, 334 - "locked": { 335 - "lastModified": 1731537114, 336 - "narHash": "sha256-OpbKrqg9K6KHATlA8sL84w06PuvIBEfbwwOYsg52kAw=", 337 - "owner": "Aylur", 338 - "repo": "dotfiles", 339 - "rev": "478a92f1ef6ef813703fb5d048e4ba86b595d9c9", 340 - "type": "github" 341 - }, 342 - "original": { 343 - "owner": "Aylur", 344 - "ref": "pre-astal", 345 - "repo": "dotfiles", 346 - "type": "github" 347 - } 348 - }, 349 - "dotfiles-end-4": { 350 - "flake": false, 351 - "locked": { 352 - "lastModified": 1731421127, 353 - "narHash": "sha256-PDlsLqx04t1NyYn5Rlyh7gsytFjDxz9VKMlC6r1GxlA=", 354 - "owner": "end-4", 355 - "repo": "dots-hyprland", 356 - "rev": "4ed4bf23942abf47a0fb474be4975bc088d641db", 357 - "type": "github" 358 - }, 359 - "original": { 360 - "owner": "end-4", 361 - "repo": "dots-hyprland", 362 - "type": "github" 363 - } 364 - }, 365 207 "ez-configs": { 366 208 "inputs": { 367 209 "flake-parts": [ ··· 372 214 ] 373 215 }, 374 216 "locked": { 375 - "lastModified": 1720994547, 376 - "narHash": "sha256-5WmTdtALYr8zSTBEeyKWos08pqNwRJ2SiT/vAnw19TU=", 217 + "lastModified": 1750178074, 218 + "narHash": "sha256-+ACS/Ris0V0a3BB6vEI/vTGk5huztx7a5f7eHJK1FaQ=", 377 219 "owner": "ehllie", 378 220 "repo": "ez-configs", 379 - "rev": "563000e533a1b1aa957a4b788bf505cd243e5154", 221 + "rev": "eb320b3a6032a30e5fa67bebbaf381e6552f9441", 380 222 "type": "github" 381 223 }, 382 224 "original": { ··· 388 230 "firefox-gnome-theme": { 389 231 "flake": false, 390 232 "locked": { 391 - "lastModified": 1721276923, 392 - "narHash": "sha256-HJKuwVvi+yGv+8n9Ez4EwaJA0B79JRss9J30vpgy/GI=", 233 + "lastModified": 1756083905, 234 + "narHash": "sha256-UqYGTBgI5ypGh0Kf6zZjom/vABg7HQocB4gmxzl12uo=", 393 235 "owner": "rafaelmardojai", 394 236 "repo": "firefox-gnome-theme", 395 - "rev": "cc70ec20e2775df7cd2bccdd20dcdecc3e0a733b", 237 + "rev": "b655eaf16d4cbec9c3472f62eee285d4b419a808", 396 238 "type": "github" 397 239 }, 398 240 "original": { ··· 402 244 } 403 245 }, 404 246 "flake-compat": { 247 + "flake": false, 405 248 "locked": { 406 - "lastModified": 1696426674, 407 - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 408 - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 409 - "revCount": 57, 410 - "type": "tarball", 411 - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz?rev=0f9255e01c2351cc7d116c072cb317785dd33b33&revCount=57" 249 + "lastModified": 1747046372, 250 + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", 251 + "owner": "edolstra", 252 + "repo": "flake-compat", 253 + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", 254 + "type": "github" 412 255 }, 413 256 "original": { 414 - "type": "tarball", 415 - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" 257 + "owner": "edolstra", 258 + "repo": "flake-compat", 259 + "type": "github" 416 260 } 417 261 }, 418 262 "flake-compat_2": { 419 263 "flake": false, 420 264 "locked": { 421 - "lastModified": 1696426674, 422 - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 265 + "lastModified": 1747046372, 266 + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", 423 267 "owner": "edolstra", 424 268 "repo": "flake-compat", 425 - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 269 + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", 426 270 "type": "github" 427 271 }, 428 272 "original": { ··· 434 278 "flake-compat_3": { 435 279 "flake": false, 436 280 "locked": { 437 - "lastModified": 1696426674, 438 - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 281 + "lastModified": 1747046372, 282 + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", 439 283 "owner": "edolstra", 440 284 "repo": "flake-compat", 441 - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 285 + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", 442 286 "type": "github" 443 287 }, 444 288 "original": { ··· 450 294 "flake-compat_4": { 451 295 "flake": false, 452 296 "locked": { 453 - "lastModified": 1673956053, 454 - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", 297 + "lastModified": 1696426674, 298 + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 455 299 "owner": "edolstra", 456 300 "repo": "flake-compat", 457 - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", 301 + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 458 302 "type": "github" 459 303 }, 460 304 "original": { ··· 481 325 }, 482 326 "flake-parts": { 483 327 "inputs": { 484 - "nixpkgs-lib": [ 485 - "devenv", 486 - "nix", 487 - "nixpkgs" 488 - ] 328 + "nixpkgs-lib": "nixpkgs-lib" 489 329 }, 490 330 "locked": { 491 - "lastModified": 1712014858, 492 - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", 331 + "lastModified": 1756770412, 332 + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", 493 333 "owner": "hercules-ci", 494 334 "repo": "flake-parts", 495 - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", 335 + "rev": "4524271976b625a4a605beefd893f270620fd751", 496 336 "type": "github" 497 337 }, 498 338 "original": { ··· 503 343 }, 504 344 "flake-parts_2": { 505 345 "inputs": { 506 - "nixpkgs-lib": "nixpkgs-lib" 346 + "nixpkgs-lib": [ 347 + "lanzaboote", 348 + "nixpkgs" 349 + ] 507 350 }, 508 351 "locked": { 509 - "lastModified": 1735774679, 510 - "narHash": "sha256-soePLBazJk0qQdDVhdbM98vYdssfs3WFedcq+raipRI=", 352 + "lastModified": 1754091436, 353 + "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=", 511 354 "owner": "hercules-ci", 512 355 "repo": "flake-parts", 513 - "rev": "f2f7418ce0ab4a5309a4596161d154cfc877af66", 356 + "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd", 514 357 "type": "github" 515 358 }, 516 359 "original": { ··· 521 364 }, 522 365 "flake-parts_3": { 523 366 "inputs": { 524 - "nixpkgs-lib": [ 525 - "lanzaboote", 526 - "nixpkgs" 527 - ] 367 + "nixpkgs-lib": "nixpkgs-lib_2" 528 368 }, 529 369 "locked": { 530 - "lastModified": 1730504689, 531 - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", 370 + "lastModified": 1756770412, 371 + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", 532 372 "owner": "hercules-ci", 533 373 "repo": "flake-parts", 534 - "rev": "506278e768c2a08bec68eb62932193e341f55c90", 374 + "rev": "4524271976b625a4a605beefd893f270620fd751", 535 375 "type": "github" 536 376 }, 537 377 "original": { ··· 542 382 }, 543 383 "flake-parts_4": { 544 384 "inputs": { 545 - "nixpkgs-lib": "nixpkgs-lib_2" 385 + "nixpkgs-lib": [ 386 + "nixpkgs-schemas", 387 + "nixpkgs" 388 + ] 546 389 }, 547 390 "locked": { 548 391 "lastModified": 1733312601, ··· 561 404 "flake-parts_5": { 562 405 "inputs": { 563 406 "nixpkgs-lib": [ 564 - "nixpkgs-schemas", 407 + "nixvim", 565 408 "nixpkgs" 566 409 ] 567 410 }, 568 411 "locked": { 569 - "lastModified": 1712014858, 570 - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", 412 + "lastModified": 1756770412, 413 + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", 571 414 "owner": "hercules-ci", 572 415 "repo": "flake-parts", 573 - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", 416 + "rev": "4524271976b625a4a605beefd893f270620fd751", 574 417 "type": "github" 575 418 }, 576 419 "original": { ··· 582 425 "flake-parts_6": { 583 426 "inputs": { 584 427 "nixpkgs-lib": [ 585 - "nixvim", 428 + "nur", 586 429 "nixpkgs" 587 430 ] 588 431 }, ··· 603 446 "flake-parts_7": { 604 447 "inputs": { 605 448 "nixpkgs-lib": [ 606 - "nur", 449 + "stylix", 607 450 "nixpkgs" 608 451 ] 609 452 }, 610 453 "locked": { 611 - "lastModified": 1733312601, 612 - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", 454 + "lastModified": 1756770412, 455 + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", 613 456 "owner": "hercules-ci", 614 457 "repo": "flake-parts", 615 - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", 458 + "rev": "4524271976b625a4a605beefd893f270620fd751", 616 459 "type": "github" 617 460 }, 618 461 "original": { ··· 626 469 "nixpkgs-lib": "nixpkgs-lib_3" 627 470 }, 628 471 "locked": { 629 - "lastModified": 1704982712, 630 - "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", 472 + "lastModified": 1754091436, 473 + "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=", 631 474 "owner": "hercules-ci", 632 475 "repo": "flake-parts", 633 - "rev": "07f6395285469419cf9d078f59b5b49993198c00", 476 + "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd", 634 477 "type": "github" 635 478 }, 636 479 "original": { ··· 655 498 }, 656 499 "flake-schemas_2": { 657 500 "locked": { 658 - "lastModified": 1732736109, 659 - "narHash": "sha256-sDfSZI8EveU09O9O/oFkarm8V4ERX0G6pAy2NBk6aD8=", 501 + "lastModified": 1747430042, 502 + "narHash": "sha256-FXBkQaQ2wptf06JpD9d8FsQcyj1wmSttq7eZIXxqiz4=", 660 503 "owner": "DeterminateSystems", 661 504 "repo": "flake-schemas", 662 - "rev": "acb99ce31a50f0ae93826a8ce15728db097e3cda", 663 - "type": "github" 664 - }, 665 - "original": { 666 - "owner": "DeterminateSystems", 667 - "repo": "flake-schemas", 668 - "type": "github" 669 - } 670 - }, 671 - "flake-schemas_3": { 672 - "locked": { 673 - "lastModified": 1719857163, 674 - "narHash": "sha256-wM+8JtoKBkahHiKn+EM1ikurMnitwRQrZ91hipJIJK8=", 675 - "owner": "DeterminateSystems", 676 - "repo": "flake-schemas", 677 - "rev": "61a02d7183d4241962025e6c6307a22a0bb72a21", 505 + "rev": "d0e74ee9a30eda4cc153b7f1e347043680834180", 678 506 "type": "github" 679 507 }, 680 508 "original": { ··· 702 530 } 703 531 }, 704 532 "flake-utils_2": { 705 - "locked": { 706 - "lastModified": 1667395993, 707 - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", 708 - "owner": "numtide", 709 - "repo": "flake-utils", 710 - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", 711 - "type": "github" 712 - }, 713 - "original": { 714 - "owner": "numtide", 715 - "repo": "flake-utils", 716 - "type": "github" 717 - } 718 - }, 719 - "flake-utils_3": { 720 533 "inputs": { 721 534 "systems": "systems_4" 722 535 }, ··· 734 547 "type": "github" 735 548 } 736 549 }, 737 - "flake-utils_4": { 738 - "inputs": { 739 - "systems": [ 740 - "stylix", 741 - "systems" 742 - ] 743 - }, 744 - "locked": { 745 - "lastModified": 1731533236, 746 - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 747 - "owner": "numtide", 748 - "repo": "flake-utils", 749 - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 750 - "type": "github" 751 - }, 752 - "original": { 753 - "owner": "numtide", 754 - "repo": "flake-utils", 755 - "type": "github" 756 - } 757 - }, 758 550 "fromYaml": { 759 551 "flake": false, 760 552 "locked": { ··· 771 563 "type": "github" 772 564 } 773 565 }, 774 - "git-hooks": { 566 + "git-hooks-nix": { 775 567 "inputs": { 776 - "flake-compat": [ 777 - "devenv" 778 - ], 568 + "flake-compat": "flake-compat", 779 569 "gitignore": "gitignore", 780 - "nixpkgs": [ 781 - "devenv", 782 - "nixpkgs" 783 - ], 784 - "nixpkgs-stable": [ 785 - "devenv" 786 - ] 570 + "nixpkgs": "nixpkgs_2" 787 571 }, 788 572 "locked": { 789 - "lastModified": 1730302582, 790 - "narHash": "sha256-W1MIJpADXQCgosJZT8qBYLRuZls2KSiKdpnTVdKBuvU=", 573 + "lastModified": 1757239681, 574 + "narHash": "sha256-E9spYi9lxm2f1zWQLQ7xQt8Xs2nWgr1T4QM7ZjLFphM=", 791 575 "owner": "cachix", 792 576 "repo": "git-hooks.nix", 793 - "rev": "af8a16fe5c264f5e9e18bcee2859b40a656876cf", 577 + "rev": "ab82ab08d6bf74085bd328de2a8722c12d97bd9d", 794 578 "type": "github" 795 579 }, 796 580 "original": { ··· 799 583 "type": "github" 800 584 } 801 585 }, 802 - "git-hooks-nix": { 803 - "inputs": { 804 - "flake-compat": "flake-compat_2", 805 - "gitignore": "gitignore_2", 806 - "nixpkgs": "nixpkgs_9", 807 - "nixpkgs-stable": "nixpkgs-stable" 808 - }, 809 - "locked": { 810 - "lastModified": 1734797603, 811 - "narHash": "sha256-ulZN7ps8nBV31SE+dwkDvKIzvN6hroRY8sYOT0w+E28=", 812 - "owner": "cachix", 813 - "repo": "git-hooks.nix", 814 - "rev": "f0f0dc4920a903c3e08f5bdb9246bb572fcae498", 815 - "type": "github" 816 - }, 817 - "original": { 818 - "owner": "cachix", 819 - "repo": "git-hooks.nix", 820 - "type": "github" 821 - } 822 - }, 823 - "git-hooks_2": { 586 + "git-hooks-nix_2": { 824 587 "inputs": { 825 588 "flake-compat": [ 826 - "nixvim", 827 - "flake-compat" 589 + "nixpkgs-schemas" 828 590 ], 829 - "gitignore": "gitignore_5", 591 + "gitignore": [ 592 + "nixpkgs-schemas" 593 + ], 830 594 "nixpkgs": [ 831 - "nixvim", 595 + "nixpkgs-schemas", 832 596 "nixpkgs" 833 597 ], 834 598 "nixpkgs-stable": [ 835 - "nixvim", 599 + "nixpkgs-schemas", 836 600 "nixpkgs" 837 601 ] 838 602 }, 839 603 "locked": { 840 - "lastModified": 1734797603, 841 - "narHash": "sha256-ulZN7ps8nBV31SE+dwkDvKIzvN6hroRY8sYOT0w+E28=", 604 + "lastModified": 1734279981, 605 + "narHash": "sha256-NdaCraHPp8iYMWzdXAt5Nv6sA3MUzlCiGiR586TCwo0=", 842 606 "owner": "cachix", 843 607 "repo": "git-hooks.nix", 844 - "rev": "f0f0dc4920a903c3e08f5bdb9246bb572fcae498", 608 + "rev": "aa9f40c906904ebd83da78e7f328cd8aeaeae785", 845 609 "type": "github" 846 610 }, 847 611 "original": { ··· 853 617 "gitignore": { 854 618 "inputs": { 855 619 "nixpkgs": [ 856 - "devenv", 857 - "git-hooks", 620 + "git-hooks-nix", 858 621 "nixpkgs" 859 622 ] 860 623 }, ··· 875 638 "gitignore_2": { 876 639 "inputs": { 877 640 "nixpkgs": [ 878 - "git-hooks-nix", 879 - "nixpkgs" 880 - ] 881 - }, 882 - "locked": { 883 - "lastModified": 1709087332, 884 - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", 885 - "owner": "hercules-ci", 886 - "repo": "gitignore.nix", 887 - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", 888 - "type": "github" 889 - }, 890 - "original": { 891 - "owner": "hercules-ci", 892 - "repo": "gitignore.nix", 893 - "type": "github" 894 - } 895 - }, 896 - "gitignore_3": { 897 - "inputs": { 898 - "nixpkgs": [ 899 641 "hyprland", 900 642 "pre-commit-hooks", 901 643 "nixpkgs" ··· 915 657 "type": "github" 916 658 } 917 659 }, 918 - "gitignore_4": { 660 + "gitignore_3": { 919 661 "inputs": { 920 662 "nixpkgs": [ 921 663 "lanzaboote", ··· 937 679 "type": "github" 938 680 } 939 681 }, 940 - "gitignore_5": { 941 - "inputs": { 942 - "nixpkgs": [ 943 - "nixvim", 944 - "git-hooks", 945 - "nixpkgs" 946 - ] 947 - }, 948 - "locked": { 949 - "lastModified": 1709087332, 950 - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", 951 - "owner": "hercules-ci", 952 - "repo": "gitignore.nix", 953 - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", 954 - "type": "github" 955 - }, 956 - "original": { 957 - "owner": "hercules-ci", 958 - "repo": "gitignore.nix", 959 - "type": "github" 960 - } 961 - }, 962 682 "gnome-shell": { 963 683 "flake": false, 964 684 "locked": { 965 - "lastModified": 1732369855, 966 - "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=", 685 + "lastModified": 1748186689, 686 + "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=", 967 687 "owner": "GNOME", 968 688 "repo": "gnome-shell", 969 - "rev": "dadd58f630eeea41d645ee225a63f719390829dc", 689 + "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0", 970 690 "type": "github" 971 691 }, 972 692 "original": { 973 693 "owner": "GNOME", 974 - "ref": "47.2", 694 + "ref": "48.2", 975 695 "repo": "gnome-shell", 976 696 "type": "github" 977 697 } ··· 1005 725 ] 1006 726 }, 1007 727 "locked": { 1008 - "lastModified": 1734622215, 1009 - "narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=", 728 + "lastModified": 1757503661, 729 + "narHash": "sha256-bBh9sAJn0x/EdCVA6NYj/hXpcW1YBLCRMgn8A2T1l2E=", 1010 730 "owner": "nix-community", 1011 731 "repo": "home-manager", 1012 - "rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be", 732 + "rev": "3c97248d6f896232355735e34bb518ae9f130c5d", 1013 733 "type": "github" 1014 734 }, 1015 735 "original": { ··· 1025 745 ] 1026 746 }, 1027 747 "locked": { 1028 - "lastModified": 1735774425, 1029 - "narHash": "sha256-C73gLFnEh8ZI0uDijUgCDWCd21T6I6tsaWgIBHcfAXg=", 748 + "lastModified": 1757529548, 749 + "narHash": "sha256-If5AT3dPXH0BM+q+pwyZvtWLTmlqJmGW6IDZ2MqlGRU=", 1030 750 "owner": "nix-community", 1031 751 "repo": "home-manager", 1032 - "rev": "5f6aa268e419d053c3d5025da740e390b12ac936", 752 + "rev": "e0154ae41614e32a443c43ee51eee9eed3ad9a48", 1033 753 "type": "github" 1034 754 }, 1035 755 "original": { ··· 1054 774 ] 1055 775 }, 1056 776 "locked": { 1057 - "lastModified": 1734906540, 1058 - "narHash": "sha256-vQ/L9hZFezC0LquLo4TWXkyniWtYBlFHAKIsDc7PYJE=", 777 + "lastModified": 1753964049, 778 + "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", 1059 779 "owner": "hyprwm", 1060 780 "repo": "hyprcursor", 1061 - "rev": "69270ba8f057d55b0e6c2dca0e165d652856e613", 781 + "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", 1062 782 "type": "github" 1063 783 }, 1064 784 "original": { ··· 1083 803 ] 1084 804 }, 1085 805 "locked": { 1086 - "lastModified": 1734906236, 1087 - "narHash": "sha256-vH/ysV2ONGQgYZPtcJKwc8jJivzyVxru2aaOxC20ZOE=", 806 + "lastModified": 1756891319, 807 + "narHash": "sha256-/e6OXxzbAj/o97Z1dZgHre4bNaVjapDGscAujSCQSbI=", 1088 808 "owner": "hyprwm", 1089 809 "repo": "hyprgraphics", 1090 - "rev": "6dea3fba08fd704dd624b6d4b261638fb4003c9c", 810 + "rev": "621e2e00f1736aa18c68f7dfbf2b9cff94b8cc4d", 1091 811 "type": "github" 1092 812 }, 1093 813 "original": { ··· 1106 826 "hyprlang": "hyprlang", 1107 827 "hyprutils": "hyprutils", 1108 828 "hyprwayland-scanner": "hyprwayland-scanner", 1109 - "nixpkgs": "nixpkgs_10", 829 + "nixpkgs": "nixpkgs_3", 1110 830 "pre-commit-hooks": "pre-commit-hooks", 1111 831 "systems": "systems", 1112 832 "xdph": "xdph" 1113 833 }, 1114 834 "locked": { 1115 - "lastModified": 1735838950, 1116 - "narHash": "sha256-zNb6bch2hJpkrcrXMElEE4OfEfvs8G9Hfcn4cp+fYSA=", 835 + "lastModified": 1757508065, 836 + "narHash": "sha256-aZCTbfKkxsEinY5V7R0NYuuitKLYc8ig8T91+yDMGJ0=", 1117 837 "ref": "refs/heads/main", 1118 - "rev": "4971725b69768d156047289b7606e470c6963f59", 1119 - "revCount": 5620, 838 + "rev": "46174f78b374b6cea669c48880877a8bdcf7802f", 839 + "revCount": 6418, 1120 840 "submodules": true, 1121 841 "type": "git", 1122 842 "url": "https://github.com/hyprwm/Hyprland" ··· 1130 850 "hyprland-hyprspace": { 1131 851 "inputs": { 1132 852 "hyprland": [ 1133 - "dotfiles-aylur", 1134 - "hyprland" 1135 - ] 1136 - }, 1137 - "locked": { 1138 - "lastModified": 1720553729, 1139 - "narHash": "sha256-9aM4MCBJn4UstcsSdukOFTxg79keUMTw9Kmqr7Wsfmw=", 1140 - "owner": "KZDKM", 1141 - "repo": "Hyprspace", 1142 - "rev": "e8662093ae5b6e13a3cf1145d21d4804a3e84aeb", 1143 - "type": "github" 1144 - }, 1145 - "original": { 1146 - "owner": "KZDKM", 1147 - "repo": "Hyprspace", 1148 - "type": "github" 1149 - } 1150 - }, 1151 - "hyprland-hyprspace_2": { 1152 - "inputs": { 1153 - "hyprland": [ 1154 853 "hyprland" 1155 854 ], 1156 855 "systems": "systems_2" 1157 856 }, 1158 857 "locked": { 1159 - "lastModified": 1734671517, 1160 - "narHash": "sha256-rTKZlNZP13zIy8eyHiTbCN15rON0FG9S8zxRE7jH+Ak=", 858 + "lastModified": 1754887838, 859 + "narHash": "sha256-npC+H+Wl60EdrV75sjqm+bbbLbKgCCGn4ALSM0B2OWA=", 1161 860 "owner": "KZDKM", 1162 861 "repo": "Hyprspace", 1163 - "rev": "6d49cb495c3b0364fb6c4b50ab4c04a864aa6c43", 862 + "rev": "2b61fd2115262243b03aa9afe8dfd8a78e71636c", 1164 863 "type": "github" 1165 864 }, 1166 865 "original": { ··· 1186 885 ] 1187 886 }, 1188 887 "locked": { 1189 - "lastModified": 1735838245, 1190 - "narHash": "sha256-dA2s+KFo6+TmYtQoXWfxQ8XukN6JQ0I0VoraG9zD7/I=", 888 + "lastModified": 1756806479, 889 + "narHash": "sha256-+RLX4BmuMw4c97npsBcjjEuy+s83POX9Yp8Nkj499lA=", 1191 890 "owner": "hyprwm", 1192 891 "repo": "hyprland-plugins", 1193 - "rev": "920af33577a889772e96a067130252df5674ca8a", 892 + "rev": "b8d6d369618078b2dbb043480ca65fe3521f273b", 1194 893 "type": "github" 1195 894 }, 1196 895 "original": { ··· 1211 910 ] 1212 911 }, 1213 912 "locked": { 1214 - "lastModified": 1735734474, 1215 - "narHash": "sha256-9OV4lOqrEJVLdOrpNN/9msNwAhI6FQTu4N7fufilG08=", 913 + "lastModified": 1749046714, 914 + "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", 1216 915 "owner": "hyprwm", 1217 916 "repo": "hyprland-protocols", 1218 - "rev": "271df559dd30e4bc5ec6af02d017ac0aaabd63a7", 917 + "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", 1219 918 "type": "github" 1220 919 }, 1221 920 "original": { ··· 1224 923 "type": "github" 1225 924 } 1226 925 }, 926 + "hyprland-qt-support": { 927 + "inputs": { 928 + "hyprlang": [ 929 + "hyprland", 930 + "hyprland-qtutils", 931 + "hyprlang" 932 + ], 933 + "nixpkgs": [ 934 + "hyprland", 935 + "hyprland-qtutils", 936 + "nixpkgs" 937 + ], 938 + "systems": [ 939 + "hyprland", 940 + "hyprland-qtutils", 941 + "systems" 942 + ] 943 + }, 944 + "locked": { 945 + "lastModified": 1749154592, 946 + "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", 947 + "owner": "hyprwm", 948 + "repo": "hyprland-qt-support", 949 + "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", 950 + "type": "github" 951 + }, 952 + "original": { 953 + "owner": "hyprwm", 954 + "repo": "hyprland-qt-support", 955 + "type": "github" 956 + } 957 + }, 1227 958 "hyprland-qtutils": { 1228 959 "inputs": { 960 + "hyprland-qt-support": "hyprland-qt-support", 961 + "hyprlang": [ 962 + "hyprland", 963 + "hyprlang" 964 + ], 1229 965 "hyprutils": [ 1230 966 "hyprland", 967 + "hyprland-qtutils", 968 + "hyprlang", 1231 969 "hyprutils" 1232 970 ], 1233 971 "nixpkgs": [ ··· 1240 978 ] 1241 979 }, 1242 980 "locked": { 1243 - "lastModified": 1734906472, 1244 - "narHash": "sha256-pWPRv/GA/X/iAwoE6gMNUqn/ZeJX1IeLPRpZI0tTPK0=", 981 + "lastModified": 1753819801, 982 + "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", 1245 983 "owner": "hyprwm", 1246 984 "repo": "hyprland-qtutils", 1247 - "rev": "c77109d7e1ddbcdb87cafd32ce411f76328ae152", 985 + "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", 1248 986 "type": "github" 1249 987 }, 1250 988 "original": { ··· 1269 1007 ] 1270 1008 }, 1271 1009 "locked": { 1272 - "lastModified": 1734906259, 1273 - "narHash": "sha256-P79t/7HbACO4/PuJBroGpTptvCWJtXTv+gWsF+sM6MI=", 1010 + "lastModified": 1756810301, 1011 + "narHash": "sha256-wgZ3VW4VVtjK5dr0EiK9zKdJ/SOqGIBXVG85C3LVxQA=", 1274 1012 "owner": "hyprwm", 1275 1013 "repo": "hyprlang", 1276 - "rev": "0404833ea18d543df44df935ebf1b497310eb046", 1014 + "rev": "3d63fb4a42c819f198deabd18c0c2c1ded1de931", 1277 1015 "type": "github" 1278 1016 }, 1279 1017 "original": { ··· 1294 1032 ] 1295 1033 }, 1296 1034 "locked": { 1297 - "lastModified": 1735316583, 1298 - "narHash": "sha256-AiiUwHWHfEdpFzXy7l1x3zInCUa1xcRMrbZ1XRSkzwU=", 1035 + "lastModified": 1756117388, 1036 + "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=", 1299 1037 "owner": "hyprwm", 1300 1038 "repo": "hyprutils", 1301 - "rev": "8f15d45b120b33712f6db477fe5ffb18034d0ea8", 1039 + "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0", 1302 1040 "type": "github" 1303 1041 }, 1304 1042 "original": { ··· 1319 1057 ] 1320 1058 }, 1321 1059 "locked": { 1322 - "lastModified": 1734793513, 1323 - "narHash": "sha256-rrrHcXapXJvGFqX+L/Bb0182L25jofAZ0fm1FInvrTQ=", 1060 + "lastModified": 1755184602, 1061 + "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", 1324 1062 "owner": "hyprwm", 1325 1063 "repo": "hyprwayland-scanner", 1326 - "rev": "4d7367b6eee87397e2dbca2e78078dd0a4ef4c61", 1064 + "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", 1327 1065 "type": "github" 1328 1066 }, 1329 1067 "original": { ··· 1346 1084 ] 1347 1085 }, 1348 1086 "locked": { 1349 - "lastModified": 1729958008, 1350 - "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", 1087 + "lastModified": 1754860581, 1088 + "narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=", 1351 1089 "owner": "NuschtOS", 1352 1090 "repo": "ixx", 1353 - "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", 1091 + "rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281", 1354 1092 "type": "github" 1355 1093 }, 1356 1094 "original": { 1357 1095 "owner": "NuschtOS", 1358 - "ref": "v0.0.6", 1096 + "ref": "v0.1.1", 1359 1097 "repo": "ixx", 1360 1098 "type": "github" 1361 1099 } ··· 1369 1107 ] 1370 1108 }, 1371 1109 "locked": { 1372 - "lastModified": 1735330405, 1373 - "narHash": "sha256-MhXgu1oymyjhhZGY9yewNonJknNAjilzMGPY1FfMR7s=", 1110 + "lastModified": 1757230583, 1111 + "narHash": "sha256-4uqu7sFPOaVTCogsxaGMgbzZ2vK40GVGMfUmrvK3/LY=", 1374 1112 "owner": "Jovian-Experiments", 1375 1113 "repo": "Jovian-NixOS", 1376 - "rev": "a86d9cf841eff8b33a05d2bf25788abd8e018dbd", 1377 - "type": "github" 1378 - }, 1379 - "original": { 1380 - "owner": "Jovian-Experiments", 1381 - "repo": "Jovian-NixOS", 1382 - "type": "github" 1383 - } 1384 - }, 1385 - "jovian_2": { 1386 - "inputs": { 1387 - "nix-github-actions": "nix-github-actions_2", 1388 - "nixpkgs": [ 1389 - "nixpkgs" 1390 - ] 1391 - }, 1392 - "locked": { 1393 - "lastModified": 1735330405, 1394 - "narHash": "sha256-MhXgu1oymyjhhZGY9yewNonJknNAjilzMGPY1FfMR7s=", 1395 - "owner": "Jovian-Experiments", 1396 - "repo": "Jovian-NixOS", 1397 - "rev": "a86d9cf841eff8b33a05d2bf25788abd8e018dbd", 1114 + "rev": "fc3960e6c32c9d4f95fff2ef84444284d24d3bea", 1398 1115 "type": "github" 1399 1116 }, 1400 1117 "original": { ··· 1406 1123 "lanzaboote": { 1407 1124 "inputs": { 1408 1125 "crane": "crane", 1409 - "flake-compat": [ 1410 - "flake-compat" 1411 - ], 1412 - "flake-parts": "flake-parts_3", 1126 + "flake-compat": "flake-compat_3", 1127 + "flake-parts": "flake-parts_2", 1413 1128 "nixpkgs": [ 1414 1129 "nixpkgs" 1415 1130 ], 1416 1131 "pre-commit-hooks-nix": "pre-commit-hooks-nix", 1417 - "rust-overlay": "rust-overlay" 1132 + "rust-overlay": "rust-overlay_2" 1418 1133 }, 1419 1134 "locked": { 1420 - "lastModified": 1734994463, 1421 - "narHash": "sha256-S9MgfQjNt4J3I7obdLOVY23h+Yl/hnyibwGfOl+1uOE=", 1135 + "lastModified": 1756744479, 1136 + "narHash": "sha256-EyZXusK/wRD3V9vDh00W2Re3Eg8UQ+LjVBQrrH9dq1U=", 1422 1137 "owner": "nix-community", 1423 1138 "repo": "lanzaboote", 1424 - "rev": "93e6f0d77548be8757c11ebda5c4235ef4f3bc67", 1139 + "rev": "747b7912f49e2885090c83364d88cf853a020ac1", 1425 1140 "type": "github" 1426 1141 }, 1427 1142 "original": { ··· 1430 1145 "type": "github" 1431 1146 } 1432 1147 }, 1433 - "lf-icons": { 1434 - "flake": false, 1435 - "locked": { 1436 - "lastModified": 1721089808, 1437 - "narHash": "sha256-0otdjxXhCKq+4W3r2lCFCSrYTWtfPR7DonQA9gUhFVg=", 1438 - "owner": "gokcehan", 1439 - "repo": "lf", 1440 - "rev": "b819d90be20eab1ba2f62f8f4e4976288d872f8f", 1441 - "type": "github" 1442 - }, 1443 - "original": { 1444 - "owner": "gokcehan", 1445 - "repo": "lf", 1446 - "type": "github" 1447 - } 1448 - }, 1449 - "libgit2": { 1450 - "flake": false, 1451 - "locked": { 1452 - "lastModified": 1697646580, 1453 - "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=", 1454 - "owner": "libgit2", 1455 - "repo": "libgit2", 1456 - "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5", 1457 - "type": "github" 1458 - }, 1459 - "original": { 1460 - "owner": "libgit2", 1461 - "repo": "libgit2", 1462 - "type": "github" 1463 - } 1464 - }, 1465 - "libgit2_2": { 1466 - "flake": false, 1467 - "locked": { 1468 - "lastModified": 1697646580, 1469 - "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=", 1470 - "owner": "libgit2", 1471 - "repo": "libgit2", 1472 - "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5", 1473 - "type": "github" 1474 - }, 1475 - "original": { 1476 - "owner": "libgit2", 1477 - "repo": "libgit2", 1478 - "type": "github" 1479 - } 1480 - }, 1481 - "matugen": { 1148 + "make-shell": { 1482 1149 "inputs": { 1483 - "nixpkgs": "nixpkgs_7" 1150 + "flake-compat": "flake-compat_4" 1484 1151 }, 1485 1152 "locked": { 1486 - "lastModified": 1711657889, 1487 - "narHash": "sha256-4VX7Rt+ftEH8nwg59eT7TsvHYUf8/euUmwh/JLc4rLc=", 1488 - "owner": "InioX", 1489 - "repo": "matugen", 1490 - "rev": "566277529dadc2b149a8bd8b9859ea791ecdef26", 1153 + "lastModified": 1733933815, 1154 + "narHash": "sha256-9JjM7eT66W4NJAXpGUsdyAFXhBxFWR2Z9LZwUa7Hli0=", 1155 + "owner": "nicknovitski", 1156 + "repo": "make-shell", 1157 + "rev": "ffeceae9956df03571ea8e96ef77c2924f13a63c", 1491 1158 "type": "github" 1492 1159 }, 1493 1160 "original": { 1494 - "owner": "InioX", 1495 - "ref": "v2.2.0", 1496 - "repo": "matugen", 1161 + "owner": "nicknovitski", 1162 + "repo": "make-shell", 1497 1163 "type": "github" 1498 1164 } 1499 1165 }, ··· 1504 1170 ] 1505 1171 }, 1506 1172 "locked": { 1507 - "lastModified": 1735816258, 1508 - "narHash": "sha256-7zBiXoC43piFocq0wHvNm5KgzolCi3axD4QhWfsw4DU=", 1173 + "lastModified": 1757505144, 1174 + "narHash": "sha256-ZYlFuJO0gOeWGgClBfAI7quhfmpksQspoOp66gEhdPc=", 1509 1175 "owner": "viperML", 1510 1176 "repo": "nh", 1511 - "rev": "b7a857066e726dafe9c5f00a8af6ab3f25036ee1", 1177 + "rev": "a7d8a3ff279d52236632f8fab33017f74cc3a9dd", 1512 1178 "type": "github" 1513 1179 }, 1514 1180 "original": { ··· 1517 1183 "type": "github" 1518 1184 } 1519 1185 }, 1520 - "nix": { 1521 - "inputs": { 1522 - "flake-compat": [ 1523 - "devenv" 1524 - ], 1525 - "flake-parts": "flake-parts", 1526 - "libgit2": "libgit2", 1527 - "nixpkgs": "nixpkgs_6", 1528 - "nixpkgs-23-11": [ 1529 - "devenv" 1530 - ], 1531 - "nixpkgs-regression": [ 1532 - "devenv" 1533 - ], 1534 - "pre-commit-hooks": [ 1535 - "devenv" 1536 - ] 1537 - }, 1186 + "nix-flatpak": { 1538 1187 "locked": { 1539 - "lastModified": 1727438425, 1540 - "narHash": "sha256-X8ES7I1cfNhR9oKp06F6ir4Np70WGZU5sfCOuNBEwMg=", 1541 - "owner": "domenkozar", 1542 - "repo": "nix", 1543 - "rev": "f6c5ae4c1b2e411e6b1e6a8181cc84363d6a7546", 1188 + "lastModified": 1754777568, 1189 + "narHash": "sha256-0bBqT+3XncgF8F03RFAamw9vdf0VmaDoIJLTGkjfQZs=", 1190 + "owner": "gmodena", 1191 + "repo": "nix-flatpak", 1192 + "rev": "62f636b87ef6050760a8cb325cadb90674d1e23e", 1544 1193 "type": "github" 1545 1194 }, 1546 1195 "original": { 1547 - "owner": "domenkozar", 1548 - "ref": "devenv-2.24", 1549 - "repo": "nix", 1550 - "type": "github" 1551 - } 1552 - }, 1553 - "nix-darwin": { 1554 - "inputs": { 1555 - "nixpkgs": [ 1556 - "nixvim", 1557 - "nixpkgs" 1558 - ] 1559 - }, 1560 - "locked": { 1561 - "lastModified": 1735478292, 1562 - "narHash": "sha256-Ys9pSP9ch0SthhpbjnkCSJ9ZLfaNKnt/dcy7swjmS1A=", 1563 - "owner": "lnl7", 1564 - "repo": "nix-darwin", 1565 - "rev": "71a3a075e3229a7518d76636bb762aef2bcb73ac", 1566 - "type": "github" 1567 - }, 1568 - "original": { 1569 - "owner": "lnl7", 1570 - "repo": "nix-darwin", 1196 + "owner": "gmodena", 1197 + "repo": "nix-flatpak", 1571 1198 "type": "github" 1572 1199 } 1573 1200 }, 1574 1201 "nix-gaming": { 1575 1202 "inputs": { 1576 - "flake-parts": "flake-parts_4", 1577 - "nixpkgs": "nixpkgs_11", 1578 - "umu": "umu" 1203 + "flake-parts": "flake-parts_3", 1204 + "nixpkgs": "nixpkgs_4" 1579 1205 }, 1580 1206 "locked": { 1581 - "lastModified": 1735696045, 1582 - "narHash": "sha256-bQgoL/l1jnFlzWNdo5ZtI8D2UTc6LvGSF9ZS4apREiE=", 1207 + "lastModified": 1757382624, 1208 + "narHash": "sha256-4oYKTUl4B53W8EJ8EOc6F205TCFKCfzAXkS2f8pfZkc=", 1583 1209 "owner": "fufexan", 1584 1210 "repo": "nix-gaming", 1585 - "rev": "a3a26749e81ba3691451adf793242acf2d758574", 1211 + "rev": "cae14b9ee74180bda2c1f312958fe710b4267fce", 1586 1212 "type": "github" 1587 1213 }, 1588 1214 "original": { ··· 1615 1241 } 1616 1242 }, 1617 1243 "nix-github-actions_2": { 1618 - "inputs": { 1619 - "nixpkgs": [ 1620 - "jovian", 1621 - "nixpkgs" 1622 - ] 1623 - }, 1624 - "locked": { 1625 - "lastModified": 1729697500, 1626 - "narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=", 1627 - "owner": "zhaofengli", 1628 - "repo": "nix-github-actions", 1629 - "rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf", 1630 - "type": "github" 1631 - }, 1632 - "original": { 1633 - "owner": "zhaofengli", 1634 - "ref": "matrix-name", 1635 - "repo": "nix-github-actions", 1636 - "type": "github" 1637 - } 1638 - }, 1639 - "nix-github-actions_3": { 1640 1244 "inputs": { 1641 1245 "nixpkgs": [ 1642 1246 "nixneovimplugins", ··· 1665 1269 ] 1666 1270 }, 1667 1271 "locked": { 1668 - "lastModified": 1735443188, 1669 - "narHash": "sha256-AydPpRBh8+NOkrLylG7vTsHrGO2b5L7XkMEL5HlzcA8=", 1272 + "lastModified": 1757218147, 1273 + "narHash": "sha256-IwOwN70HvoBNB2ckaROxcaCvj5NudNc52taPsv5wtLk=", 1670 1274 "owner": "nix-community", 1671 1275 "repo": "nix-index-database", 1672 - "rev": "55ab1e1df5daf2476e6b826b69a82862dcbd7544", 1276 + "rev": "9b144dc3ef6e42b888c4190e02746aab13b0e97f", 1673 1277 "type": "github" 1674 1278 }, 1675 1279 "original": { ··· 1702 1306 "poetry2nix": "poetry2nix" 1703 1307 }, 1704 1308 "locked": { 1705 - "lastModified": 1735827789, 1706 - "narHash": "sha256-83UrauSrPCVlsCVWZeZmZHHuslFqqD0cr1fzJa3CK0Q=", 1309 + "lastModified": 1757255015, 1310 + "narHash": "sha256-KbmLUzPuKgvzjCUqWmN2Rvx9uZ7n0UZFbz2hwfJ8Gxk=", 1707 1311 "owner": "jooooscha", 1708 1312 "repo": "nixpkgs-vim-extra-plugins", 1709 - "rev": "5a3a58181e51780d8f6a43abd5bb616dc898c4af", 1313 + "rev": "a1a60d7e346c18d115d7c6824c01ff5801fa6aed", 1710 1314 "type": "github" 1711 1315 }, 1712 1316 "original": { ··· 1717 1321 }, 1718 1322 "nixpkgs": { 1719 1323 "locked": { 1720 - "lastModified": 1734649271, 1721 - "narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=", 1722 - "owner": "nixos", 1324 + "lastModified": 1757420003, 1325 + "narHash": "sha256-SPaZFFDt7CzE+BdNyh3HGfUKmttle/yN+ELIl6ZhEeE=", 1326 + "owner": "PedroHLC", 1723 1327 "repo": "nixpkgs", 1724 - "rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507", 1328 + "rev": "b4fc8b5dcc7c1a4dab87d6dc35048cb188e49289", 1725 1329 "type": "github" 1726 1330 }, 1727 1331 "original": { 1728 - "owner": "nixos", 1332 + "owner": "NixOS", 1729 1333 "ref": "nixos-unstable", 1730 1334 "repo": "nixpkgs", 1731 1335 "type": "github" ··· 1749 1353 }, 1750 1354 "nixpkgs-lib": { 1751 1355 "locked": { 1752 - "lastModified": 1735774519, 1753 - "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=", 1754 - "type": "tarball", 1755 - "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" 1356 + "lastModified": 1754788789, 1357 + "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", 1358 + "owner": "nix-community", 1359 + "repo": "nixpkgs.lib", 1360 + "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", 1361 + "type": "github" 1756 1362 }, 1757 1363 "original": { 1758 - "type": "tarball", 1759 - "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" 1364 + "owner": "nix-community", 1365 + "repo": "nixpkgs.lib", 1366 + "type": "github" 1760 1367 } 1761 1368 }, 1762 1369 "nixpkgs-lib_2": { 1763 1370 "locked": { 1764 - "lastModified": 1733096140, 1765 - "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", 1766 - "type": "tarball", 1767 - "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" 1371 + "lastModified": 1754788789, 1372 + "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", 1373 + "owner": "nix-community", 1374 + "repo": "nixpkgs.lib", 1375 + "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", 1376 + "type": "github" 1768 1377 }, 1769 1378 "original": { 1770 - "type": "tarball", 1771 - "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" 1379 + "owner": "nix-community", 1380 + "repo": "nixpkgs.lib", 1381 + "type": "github" 1772 1382 } 1773 1383 }, 1774 1384 "nixpkgs-lib_3": { 1775 1385 "locked": { 1776 - "dir": "lib", 1777 - "lastModified": 1703961334, 1778 - "narHash": "sha256-M1mV/Cq+pgjk0rt6VxoyyD+O8cOUiai8t9Q6Yyq4noY=", 1779 - "owner": "NixOS", 1780 - "repo": "nixpkgs", 1781 - "rev": "b0d36bd0a420ecee3bc916c91886caca87c894e9", 1386 + "lastModified": 1753579242, 1387 + "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", 1388 + "owner": "nix-community", 1389 + "repo": "nixpkgs.lib", 1390 + "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", 1782 1391 "type": "github" 1783 1392 }, 1784 1393 "original": { 1785 - "dir": "lib", 1786 - "owner": "NixOS", 1787 - "ref": "nixos-unstable", 1788 - "repo": "nixpkgs", 1394 + "owner": "nix-community", 1395 + "repo": "nixpkgs.lib", 1789 1396 "type": "github" 1790 1397 } 1791 1398 }, ··· 1807 1414 }, 1808 1415 "nixpkgs-schemas": { 1809 1416 "inputs": { 1810 - "flake-compat": "flake-compat_4", 1811 - "flake-parts": "flake-parts_5", 1812 - "flake-schemas": "flake-schemas_3", 1813 - "libgit2": "libgit2_2", 1814 - "nixpkgs": "nixpkgs_12", 1417 + "flake-compat": "flake-compat_5", 1418 + "flake-parts": "flake-parts_4", 1419 + "git-hooks-nix": "git-hooks-nix_2", 1420 + "nixpkgs": "nixpkgs_5", 1815 1421 "nixpkgs-23-11": "nixpkgs-23-11", 1816 - "nixpkgs-regression": "nixpkgs-regression", 1817 - "pre-commit-hooks": "pre-commit-hooks_2" 1422 + "nixpkgs-regression": "nixpkgs-regression" 1818 1423 }, 1819 1424 "locked": { 1820 - "lastModified": 1720793694, 1821 - "narHash": "sha256-LcCwNsd1v5HjOlNPxtQHjosomwaktcLUjGDuYlapyLE=", 1425 + "lastModified": 1741125032, 1426 + "narHash": "sha256-Yy1Cd3Xm4UJTctYsVQfD5jY5z7pVncvLu8cq0cjjYT4=", 1822 1427 "owner": "DeterminateSystems", 1823 1428 "repo": "nix-src", 1824 - "rev": "e1ed2d111bd21724f28ebb80aedd5154d4979fa9", 1429 + "rev": "271926aa5997c3120c8ef0962ce1c7f29fee1a05", 1825 1430 "type": "github" 1826 1431 }, 1827 1432 "original": { ··· 1831 1436 "type": "github" 1832 1437 } 1833 1438 }, 1834 - "nixpkgs-stable": { 1835 - "locked": { 1836 - "lastModified": 1730741070, 1837 - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", 1838 - "owner": "NixOS", 1839 - "repo": "nixpkgs", 1840 - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", 1841 - "type": "github" 1842 - }, 1843 - "original": { 1844 - "owner": "NixOS", 1845 - "ref": "nixos-24.05", 1846 - "repo": "nixpkgs", 1847 - "type": "github" 1848 - } 1849 - }, 1850 - "nixpkgs-stable_2": { 1851 - "locked": { 1852 - "lastModified": 1730741070, 1853 - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", 1854 - "owner": "NixOS", 1855 - "repo": "nixpkgs", 1856 - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", 1857 - "type": "github" 1858 - }, 1859 - "original": { 1860 - "owner": "NixOS", 1861 - "ref": "nixos-24.05", 1862 - "repo": "nixpkgs", 1863 - "type": "github" 1864 - } 1865 - }, 1866 - "nixpkgs-stable_3": { 1867 - "locked": { 1868 - "lastModified": 1730741070, 1869 - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", 1870 - "owner": "NixOS", 1871 - "repo": "nixpkgs", 1872 - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", 1873 - "type": "github" 1874 - }, 1875 - "original": { 1876 - "owner": "NixOS", 1877 - "ref": "nixos-24.05", 1878 - "repo": "nixpkgs", 1879 - "type": "github" 1880 - } 1881 - }, 1882 - "nixpkgs_10": { 1439 + "nixpkgs_2": { 1883 1440 "locked": { 1884 - "lastModified": 1735291276, 1885 - "narHash": "sha256-NYVcA06+blsLG6wpAbSPTCyLvxD/92Hy4vlY9WxFI1M=", 1441 + "lastModified": 1754340878, 1442 + "narHash": "sha256-lgmUyVQL9tSnvvIvBp7x1euhkkCho7n3TMzgjdvgPoU=", 1886 1443 "owner": "NixOS", 1887 1444 "repo": "nixpkgs", 1888 - "rev": "634fd46801442d760e09493a794c4f15db2d0cbb", 1889 - "type": "github" 1890 - }, 1891 - "original": { 1892 - "owner": "NixOS", 1893 - "ref": "nixos-unstable", 1894 - "repo": "nixpkgs", 1895 - "type": "github" 1896 - } 1897 - }, 1898 - "nixpkgs_11": { 1899 - "locked": { 1900 - "lastModified": 1735268880, 1901 - "narHash": "sha256-7QEFnKkzD13SPxs+UFR5bUFN2fRw+GlL0am72ZjNre4=", 1902 - "owner": "NixOS", 1903 - "repo": "nixpkgs", 1904 - "rev": "7cc0bff31a3a705d3ac4fdceb030a17239412210", 1445 + "rev": "cab778239e705082fe97bb4990e0d24c50924c04", 1905 1446 "type": "github" 1906 1447 }, 1907 1448 "original": { ··· 1911 1452 "type": "github" 1912 1453 } 1913 1454 }, 1914 - "nixpkgs_12": { 1455 + "nixpkgs_3": { 1915 1456 "locked": { 1916 - "lastModified": 1717432640, 1917 - "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=", 1457 + "lastModified": 1757068644, 1458 + "narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=", 1918 1459 "owner": "NixOS", 1919 1460 "repo": "nixpkgs", 1920 - "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870", 1461 + "rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9", 1921 1462 "type": "github" 1922 1463 }, 1923 1464 "original": { 1924 1465 "owner": "NixOS", 1925 - "ref": "release-24.05", 1926 - "repo": "nixpkgs", 1927 - "type": "github" 1928 - } 1929 - }, 1930 - "nixpkgs_13": { 1931 - "locked": { 1932 - "lastModified": 1735471104, 1933 - "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", 1934 - "owner": "nixos", 1935 - "repo": "nixpkgs", 1936 - "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", 1937 - "type": "github" 1938 - }, 1939 - "original": { 1940 - "owner": "nixos", 1941 - "ref": "nixos-unstable", 1942 - "repo": "nixpkgs", 1943 - "type": "github" 1944 - } 1945 - }, 1946 - "nixpkgs_2": { 1947 - "locked": { 1948 - "lastModified": 1708475490, 1949 - "narHash": "sha256-g1v0TsWBQPX97ziznfJdWhgMyMGtoBFs102xSYO4syU=", 1950 - "owner": "NixOS", 1951 - "repo": "nixpkgs", 1952 - "rev": "0e74ca98a74bc7270d28838369593635a5db3260", 1953 - "type": "github" 1954 - }, 1955 - "original": { 1956 - "owner": "NixOS", 1957 - "ref": "nixos-unstable", 1958 - "repo": "nixpkgs", 1959 - "type": "github" 1960 - } 1961 - }, 1962 - "nixpkgs_3": { 1963 - "locked": { 1964 - "lastModified": 1734424634, 1965 - "narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=", 1966 - "owner": "nixos", 1967 - "repo": "nixpkgs", 1968 - "rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33", 1969 - "type": "github" 1970 - }, 1971 - "original": { 1972 - "owner": "nixos", 1973 1466 "ref": "nixos-unstable", 1974 1467 "repo": "nixpkgs", 1975 1468 "type": "github" ··· 1977 1470 }, 1978 1471 "nixpkgs_4": { 1979 1472 "locked": { 1980 - "lastModified": 1735471104, 1981 - "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", 1473 + "lastModified": 1756911493, 1474 + "narHash": "sha256-6n/n1GZQ/vi+LhFXMSyoseKdNfc2QQaSBXJdgamrbkE=", 1982 1475 "owner": "NixOS", 1983 1476 "repo": "nixpkgs", 1984 - "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", 1477 + "rev": "c6a788f552b7b7af703b1a29802a7233c0067908", 1985 1478 "type": "github" 1986 1479 }, 1987 1480 "original": { 1988 1481 "owner": "NixOS", 1989 - "ref": "nixos-unstable", 1482 + "ref": "nixpkgs-unstable", 1990 1483 "repo": "nixpkgs", 1991 1484 "type": "github" 1992 1485 } 1993 1486 }, 1994 1487 "nixpkgs_5": { 1995 1488 "locked": { 1996 - "lastModified": 1730531603, 1997 - "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", 1489 + "lastModified": 1734359947, 1490 + "narHash": "sha256-1Noao/H+N8nFB4Beoy8fgwrcOQLVm9o4zKW1ODaqK9E=", 1998 1491 "owner": "NixOS", 1999 1492 "repo": "nixpkgs", 2000 - "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", 1493 + "rev": "48d12d5e70ee91fe8481378e540433a7303dbf6a", 2001 1494 "type": "github" 2002 1495 }, 2003 1496 "original": { 2004 1497 "owner": "NixOS", 2005 - "ref": "nixos-unstable", 1498 + "ref": "release-24.11", 2006 1499 "repo": "nixpkgs", 2007 1500 "type": "github" 2008 1501 } 2009 1502 }, 2010 1503 "nixpkgs_6": { 2011 1504 "locked": { 2012 - "lastModified": 1717432640, 2013 - "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=", 2014 - "owner": "NixOS", 2015 - "repo": "nixpkgs", 2016 - "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870", 2017 - "type": "github" 2018 - }, 2019 - "original": { 2020 - "owner": "NixOS", 2021 - "ref": "release-24.05", 2022 - "repo": "nixpkgs", 2023 - "type": "github" 2024 - } 2025 - }, 2026 - "nixpkgs_7": { 2027 - "locked": { 2028 - "lastModified": 1691186842, 2029 - "narHash": "sha256-wxBVCvZUwq+XS4N4t9NqsHV4E64cPVqQ2fdDISpjcw0=", 1505 + "lastModified": 1757347588, 1506 + "narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=", 2030 1507 "owner": "nixos", 2031 1508 "repo": "nixpkgs", 2032 - "rev": "18036c0be90f4e308ae3ebcab0e14aae0336fe42", 1509 + "rev": "b599843bad24621dcaa5ab60dac98f9b0eb1cabe", 2033 1510 "type": "github" 2034 1511 }, 2035 1512 "original": { ··· 2039 1516 "type": "github" 2040 1517 } 2041 1518 }, 2042 - "nixpkgs_8": { 2043 - "locked": { 2044 - "lastModified": 1721138476, 2045 - "narHash": "sha256-+W5eZOhhemLQxelojLxETfbFbc19NWawsXBlapYpqIA=", 2046 - "owner": "nixos", 2047 - "repo": "nixpkgs", 2048 - "rev": "ad0b5eed1b6031efaed382844806550c3dcb4206", 2049 - "type": "github" 1519 + "nixvim": { 1520 + "inputs": { 1521 + "flake-parts": "flake-parts_5", 1522 + "nixpkgs": [ 1523 + "nixpkgs" 1524 + ], 1525 + "nuschtosSearch": "nuschtosSearch", 1526 + "systems": "systems_5" 2050 1527 }, 2051 - "original": { 2052 - "owner": "nixos", 2053 - "ref": "nixos-unstable", 2054 - "repo": "nixpkgs", 2055 - "type": "github" 2056 - } 2057 - }, 2058 - "nixpkgs_9": { 2059 1528 "locked": { 2060 - "lastModified": 1730768919, 2061 - "narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=", 2062 - "owner": "NixOS", 2063 - "repo": "nixpkgs", 2064 - "rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc", 1529 + "lastModified": 1757539853, 1530 + "narHash": "sha256-KjDtDYGe6DqcCPZVPwRdpwpc/KCNmE3upQnjvFUiIXw=", 1531 + "owner": "nix-community", 1532 + "repo": "nixvim", 1533 + "rev": "5b0a6eb34b94fe54c0759974962acc22d9c96d7b", 2065 1534 "type": "github" 2066 1535 }, 2067 1536 "original": { 2068 - "owner": "NixOS", 2069 - "ref": "nixpkgs-unstable", 2070 - "repo": "nixpkgs", 1537 + "owner": "nix-community", 1538 + "repo": "nixvim", 2071 1539 "type": "github" 2072 1540 } 2073 1541 }, 2074 - "nixvim": { 1542 + "nur": { 2075 1543 "inputs": { 2076 - "devshell": "devshell", 2077 - "flake-compat": [ 2078 - "flake-compat" 2079 - ], 2080 1544 "flake-parts": "flake-parts_6", 2081 - "git-hooks": "git-hooks_2", 2082 - "home-manager": [ 2083 - "home-manager" 2084 - ], 2085 - "nix-darwin": "nix-darwin", 2086 - "nixpkgs": [ 2087 - "nixpkgs" 2088 - ], 2089 - "nuschtosSearch": "nuschtosSearch", 2090 - "treefmt-nix": "treefmt-nix" 1545 + "nixpkgs": "nixpkgs_6" 2091 1546 }, 2092 1547 "locked": { 2093 - "lastModified": 1735802549, 2094 - "narHash": "sha256-aS03+IGLexQt5HL+tLZqSko6Jpxa+eozqcide/pab34=", 1548 + "lastModified": 1757537166, 1549 + "narHash": "sha256-xSDRr+oyZ7GMDViX4Spj6+ouEFptz5KIhJ/pv5gIYLE=", 2095 1550 "owner": "nix-community", 2096 - "repo": "nixvim", 2097 - "rev": "3285bbda0aa0151c3b1914758e6950dfb554962f", 1551 + "repo": "NUR", 1552 + "rev": "26af345a615eb8739a0ee9f98822e8b11a188821", 2098 1553 "type": "github" 2099 1554 }, 2100 1555 "original": { 2101 1556 "owner": "nix-community", 2102 - "repo": "nixvim", 1557 + "repo": "NUR", 2103 1558 "type": "github" 2104 1559 } 2105 1560 }, 2106 - "nur": { 1561 + "nur_2": { 2107 1562 "inputs": { 2108 - "flake-parts": "flake-parts_7", 2109 - "nixpkgs": "nixpkgs_13", 2110 - "treefmt-nix": "treefmt-nix_2" 1563 + "flake-parts": [ 1564 + "stylix", 1565 + "flake-parts" 1566 + ], 1567 + "nixpkgs": [ 1568 + "stylix", 1569 + "nixpkgs" 1570 + ] 2111 1571 }, 2112 1572 "locked": { 2113 - "lastModified": 1735836242, 2114 - "narHash": "sha256-gZiAYcn79dG+tgUrFQ/zNiFPF2n1MjsqJGDR84IbOkY=", 1573 + "lastModified": 1756961635, 1574 + "narHash": "sha256-hETvQcILTg5kChjYNns1fD5ELdsYB/VVgVmBtqKQj9A=", 2115 1575 "owner": "nix-community", 2116 1576 "repo": "NUR", 2117 - "rev": "57f5dd4e9c98f10e6a5a3f963fcb3848a16fc71f", 1577 + "rev": "6ca27b2654ac55e3f6e0ca434c1b4589ae22b370", 2118 1578 "type": "github" 2119 1579 }, 2120 1580 "original": { ··· 2125 1585 }, 2126 1586 "nuschtosSearch": { 2127 1587 "inputs": { 2128 - "flake-utils": "flake-utils_3", 1588 + "flake-utils": "flake-utils_2", 2129 1589 "ixx": "ixx", 2130 1590 "nixpkgs": [ 2131 1591 "nixvim", ··· 2133 1593 ] 2134 1594 }, 2135 1595 "locked": { 2136 - "lastModified": 1733773348, 2137 - "narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=", 1596 + "lastModified": 1756738487, 1597 + "narHash": "sha256-8QX7Ab5CcICp7zktL47VQVS+QeaU4YDNAjzty7l7TQE=", 2138 1598 "owner": "NuschtOS", 2139 1599 "repo": "search", 2140 - "rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9", 1600 + "rev": "5feeaeefb571e6ca2700888b944f436f7c05149b", 2141 1601 "type": "github" 2142 1602 }, 2143 1603 "original": { ··· 2152 1612 "nixneovimplugins", 2153 1613 "flake-utils" 2154 1614 ], 2155 - "nix-github-actions": "nix-github-actions_3", 1615 + "nix-github-actions": "nix-github-actions_2", 2156 1616 "nixpkgs": [ 2157 1617 "nixneovimplugins", 2158 1618 "nixpkgs" ··· 2174 1634 }, 2175 1635 "pre-commit-hooks": { 2176 1636 "inputs": { 2177 - "flake-compat": "flake-compat_3", 2178 - "gitignore": "gitignore_3", 1637 + "flake-compat": "flake-compat_2", 1638 + "gitignore": "gitignore_2", 2179 1639 "nixpkgs": [ 2180 1640 "hyprland", 2181 1641 "nixpkgs" 2182 - ], 2183 - "nixpkgs-stable": "nixpkgs-stable_2" 1642 + ] 2184 1643 }, 2185 1644 "locked": { 2186 - "lastModified": 1734797603, 2187 - "narHash": "sha256-ulZN7ps8nBV31SE+dwkDvKIzvN6hroRY8sYOT0w+E28=", 1645 + "lastModified": 1757239681, 1646 + "narHash": "sha256-E9spYi9lxm2f1zWQLQ7xQt8Xs2nWgr1T4QM7ZjLFphM=", 2188 1647 "owner": "cachix", 2189 1648 "repo": "git-hooks.nix", 2190 - "rev": "f0f0dc4920a903c3e08f5bdb9246bb572fcae498", 1649 + "rev": "ab82ab08d6bf74085bd328de2a8722c12d97bd9d", 2191 1650 "type": "github" 2192 1651 }, 2193 1652 "original": { ··· 2202 1661 "lanzaboote", 2203 1662 "flake-compat" 2204 1663 ], 2205 - "gitignore": "gitignore_4", 1664 + "gitignore": "gitignore_3", 2206 1665 "nixpkgs": [ 2207 1666 "lanzaboote", 2208 1667 "nixpkgs" 2209 - ], 2210 - "nixpkgs-stable": "nixpkgs-stable_3" 1668 + ] 2211 1669 }, 2212 1670 "locked": { 2213 - "lastModified": 1731363552, 2214 - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", 1671 + "lastModified": 1750779888, 1672 + "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", 2215 1673 "owner": "cachix", 2216 1674 "repo": "pre-commit-hooks.nix", 2217 - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", 1675 + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", 2218 1676 "type": "github" 2219 1677 }, 2220 1678 "original": { ··· 2223 1681 "type": "github" 2224 1682 } 2225 1683 }, 2226 - "pre-commit-hooks_2": { 1684 + "quickshell": { 2227 1685 "inputs": { 2228 - "flake-compat": [ 2229 - "nixpkgs-schemas" 2230 - ], 2231 - "flake-utils": "flake-utils_2", 2232 - "gitignore": [ 2233 - "nixpkgs-schemas" 2234 - ], 2235 1686 "nixpkgs": [ 2236 - "nixpkgs-schemas", 2237 - "nixpkgs" 2238 - ], 2239 - "nixpkgs-stable": [ 2240 - "nixpkgs-schemas", 1687 + "caelestia", 2241 1688 "nixpkgs" 2242 1689 ] 2243 1690 }, 2244 1691 "locked": { 2245 - "lastModified": 1712897695, 2246 - "narHash": "sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y=", 2247 - "owner": "cachix", 2248 - "repo": "pre-commit-hooks.nix", 2249 - "rev": "40e6053ecb65fcbf12863338a6dcefb3f55f1bf8", 2250 - "type": "github" 1692 + "lastModified": 1756981260, 1693 + "narHash": "sha256-GhuD9QVimjynHI0OOyZsqJsnlXr2orowh9H+HYz4YMs=", 1694 + "ref": "refs/heads/master", 1695 + "rev": "6eb12551baf924f8fdecdd04113863a754259c34", 1696 + "revCount": 672, 1697 + "type": "git", 1698 + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" 2251 1699 }, 2252 1700 "original": { 2253 - "owner": "cachix", 2254 - "repo": "pre-commit-hooks.nix", 2255 - "type": "github" 1701 + "type": "git", 1702 + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" 2256 1703 } 2257 1704 }, 2258 1705 "root": { 2259 1706 "inputs": { 2260 - "ags": "ags", 2261 - "ags18": "ags18", 2262 - "astal": "astal_2", 1707 + "caelestia": "caelestia", 2263 1708 "chaotic": "chaotic", 2264 - "devenv": "devenv", 2265 1709 "disko": "disko", 2266 - "dotfiles-aylur": "dotfiles-aylur", 2267 - "dotfiles-end-4": "dotfiles-end-4", 2268 1710 "ez-configs": "ez-configs", 2269 - "flake-compat": "flake-compat", 2270 - "flake-parts": "flake-parts_2", 1711 + "flake-parts": "flake-parts", 2271 1712 "flake-schemas": "flake-schemas_2", 2272 1713 "git-hooks-nix": "git-hooks-nix", 2273 1714 "haumea": "haumea", 2274 1715 "home-manager": "home-manager_2", 2275 1716 "hyprland": "hyprland", 2276 - "hyprland-hyprspace": "hyprland-hyprspace_2", 1717 + "hyprland-hyprspace": "hyprland-hyprspace", 2277 1718 "hyprland-plugins": "hyprland-plugins", 2278 - "jovian": "jovian_2", 1719 + "jovian": [ 1720 + "chaotic", 1721 + "jovian" 1722 + ], 2279 1723 "lanzaboote": "lanzaboote", 1724 + "make-shell": "make-shell", 2280 1725 "nh": "nh", 1726 + "nix-flatpak": "nix-flatpak", 2281 1727 "nix-gaming": "nix-gaming", 2282 1728 "nix-index-database": "nix-index-database", 2283 1729 "nix-std": "nix-std", ··· 2299 1745 "rust-overlay": { 2300 1746 "inputs": { 2301 1747 "nixpkgs": [ 1748 + "chaotic", 1749 + "nixpkgs" 1750 + ] 1751 + }, 1752 + "locked": { 1753 + "lastModified": 1757471515, 1754 + "narHash": "sha256-0+rSzNsYindDWjO9VVULKGjXlPsQV6IDjRU5G3SwI9U=", 1755 + "owner": "oxalica", 1756 + "repo": "rust-overlay", 1757 + "rev": "aecf31120156fe47a7d1992aa814052910178fca", 1758 + "type": "github" 1759 + }, 1760 + "original": { 1761 + "owner": "oxalica", 1762 + "repo": "rust-overlay", 1763 + "type": "github" 1764 + } 1765 + }, 1766 + "rust-overlay_2": { 1767 + "inputs": { 1768 + "nixpkgs": [ 2302 1769 "lanzaboote", 2303 1770 "nixpkgs" 2304 1771 ] 2305 1772 }, 2306 1773 "locked": { 2307 - "lastModified": 1731897198, 2308 - "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", 1774 + "lastModified": 1754189623, 1775 + "narHash": "sha256-fstu5eb30UYwsxow0aQqkzxNxGn80UZjyehQVNVHuBk=", 2309 1776 "owner": "oxalica", 2310 1777 "repo": "rust-overlay", 2311 - "rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", 1778 + "rev": "c582ff7f0d8a7ea689ae836dfb1773f1814f472a", 2312 1779 "type": "github" 2313 1780 }, 2314 1781 "original": { ··· 2324 1791 ] 2325 1792 }, 2326 1793 "locked": { 2327 - "lastModified": 1735468296, 2328 - "narHash": "sha256-ZjUjbvS06jf4fElOF4ve8EHjbpbRVHHypStoY8HGzk8=", 1794 + "lastModified": 1757503115, 1795 + "narHash": "sha256-S9F6bHUBh+CFEUalv/qxNImRapCxvSnOzWBUZgK1zDU=", 2329 1796 "owner": "Mic92", 2330 1797 "repo": "sops-nix", 2331 - "rev": "bcb8b65aa596866eb7e5c3e1a6cccbf5d1560b27", 1798 + "rev": "0bf793823386187dff101ee2a9d4ed26de8bbf8c", 2332 1799 "type": "github" 2333 1800 }, 2334 1801 "original": { ··· 2339 1806 }, 2340 1807 "spicetify-nix": { 2341 1808 "inputs": { 2342 - "flake-compat": "flake-compat_5", 2343 1809 "nixpkgs": [ 2344 1810 "nixpkgs" 2345 - ] 1811 + ], 1812 + "systems": "systems_6" 2346 1813 }, 2347 1814 "locked": { 2348 - "lastModified": 1735827474, 2349 - "narHash": "sha256-s8fDRn99iDIf5olFuIXlw6BDUjdBj4sk9uqPWD4pDdU=", 1815 + "lastModified": 1757219159, 1816 + "narHash": "sha256-bpiaovTLPeScpnOdqfgq3oy4B/sD2Wnb5EdQZZM2tCY=", 2350 1817 "owner": "Gerg-L", 2351 1818 "repo": "spicetify-nix", 2352 - "rev": "c0db9c52e158f3b3dedb08e77f3c87aecac3d2c3", 1819 + "rev": "404130798716449bbd02e5f1b54272be55218644", 2353 1820 "type": "github" 2354 1821 }, 2355 1822 "original": { ··· 2360 1827 }, 2361 1828 "stable": { 2362 1829 "locked": { 2363 - "lastModified": 1735669367, 2364 - "narHash": "sha256-tfYRbFhMOnYaM4ippqqid3BaLOXoFNdImrfBfCp4zn0=", 1830 + "lastModified": 1751274312, 1831 + "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", 2365 1832 "owner": "NixOS", 2366 1833 "repo": "nixpkgs", 2367 - "rev": "edf04b75c13c2ac0e54df5ec5c543e300f76f1c9", 1834 + "rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674", 2368 1835 "type": "github" 2369 1836 }, 2370 1837 "original": { ··· 2380 1847 "base16-fish": "base16-fish", 2381 1848 "base16-helix": "base16-helix", 2382 1849 "base16-vim": "base16-vim", 2383 - "flake-compat": [ 2384 - "flake-compat" 2385 - ], 2386 - "flake-utils": "flake-utils_4", 1850 + "firefox-gnome-theme": "firefox-gnome-theme", 1851 + "flake-parts": "flake-parts_7", 2387 1852 "gnome-shell": "gnome-shell", 2388 - "home-manager": [ 2389 - "home-manager" 2390 - ], 2391 1853 "nixpkgs": [ 2392 1854 "nixpkgs" 2393 1855 ], 2394 - "systems": "systems_5", 1856 + "nur": "nur_2", 1857 + "systems": "systems_7", 2395 1858 "tinted-foot": "tinted-foot", 2396 1859 "tinted-kitty": "tinted-kitty", 2397 - "tinted-tmux": "tinted-tmux" 1860 + "tinted-schemes": "tinted-schemes", 1861 + "tinted-tmux": "tinted-tmux", 1862 + "tinted-zed": "tinted-zed" 2398 1863 }, 2399 1864 "locked": { 2400 - "lastModified": 1735840530, 2401 - "narHash": "sha256-4O+KR6WSb40pcIPO9QboI59eH3/oxNEvCwXkFi6QvvM=", 1865 + "lastModified": 1757360005, 1866 + "narHash": "sha256-VwzdFEQCpYMU9mc7BSQGQe5wA1MuTYPJnRc9TQCTMcM=", 2402 1867 "owner": "danth", 2403 1868 "repo": "stylix", 2404 - "rev": "90f95c5d8408360fc38cb3a862565bcb08ae6aa8", 1869 + "rev": "834a743c11d66ea18e8c54872fbcc72ce48bc57f", 2405 1870 "type": "github" 2406 1871 }, 2407 1872 "original": { ··· 2485 1950 "type": "github" 2486 1951 } 2487 1952 }, 1953 + "systems_6": { 1954 + "locked": { 1955 + "lastModified": 1681028828, 1956 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 1957 + "owner": "nix-systems", 1958 + "repo": "default", 1959 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 1960 + "type": "github" 1961 + }, 1962 + "original": { 1963 + "owner": "nix-systems", 1964 + "repo": "default", 1965 + "type": "github" 1966 + } 1967 + }, 1968 + "systems_7": { 1969 + "locked": { 1970 + "lastModified": 1681028828, 1971 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 1972 + "owner": "nix-systems", 1973 + "repo": "default", 1974 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 1975 + "type": "github" 1976 + }, 1977 + "original": { 1978 + "owner": "nix-systems", 1979 + "repo": "default", 1980 + "type": "github" 1981 + } 1982 + }, 1983 + "systems_8": { 1984 + "locked": { 1985 + "lastModified": 1689347949, 1986 + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", 1987 + "owner": "nix-systems", 1988 + "repo": "default-linux", 1989 + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", 1990 + "type": "github" 1991 + }, 1992 + "original": { 1993 + "owner": "nix-systems", 1994 + "repo": "default-linux", 1995 + "type": "github" 1996 + } 1997 + }, 2488 1998 "tinted-foot": { 2489 1999 "flake": false, 2490 2000 "locked": { ··· 2505 2015 "tinted-kitty": { 2506 2016 "flake": false, 2507 2017 "locked": { 2508 - "lastModified": 1716423189, 2509 - "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", 2018 + "lastModified": 1735730497, 2019 + "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", 2510 2020 "owner": "tinted-theming", 2511 2021 "repo": "tinted-kitty", 2512 - "rev": "eb39e141db14baef052893285df9f266df041ff8", 2022 + "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", 2513 2023 "type": "github" 2514 2024 }, 2515 2025 "original": { 2516 2026 "owner": "tinted-theming", 2517 2027 "repo": "tinted-kitty", 2518 - "rev": "eb39e141db14baef052893285df9f266df041ff8", 2519 2028 "type": "github" 2520 2029 } 2521 2030 }, 2522 - "tinted-tmux": { 2031 + "tinted-schemes": { 2523 2032 "flake": false, 2524 2033 "locked": { 2525 - "lastModified": 1729501581, 2526 - "narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=", 2034 + "lastModified": 1754779259, 2035 + "narHash": "sha256-8KG2lXGaXLUE0F/JVwLQe7kOVm21IDfNEo0gfga5P4M=", 2527 2036 "owner": "tinted-theming", 2528 - "repo": "tinted-tmux", 2529 - "rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14", 2037 + "repo": "schemes", 2038 + "rev": "097d751b9e3c8b97ce158e7d141e5a292545b502", 2530 2039 "type": "github" 2531 2040 }, 2532 2041 "original": { 2533 2042 "owner": "tinted-theming", 2534 - "repo": "tinted-tmux", 2043 + "repo": "schemes", 2535 2044 "type": "github" 2536 2045 } 2537 2046 }, 2538 - "treefmt-nix": { 2539 - "inputs": { 2540 - "nixpkgs": [ 2541 - "nixvim", 2542 - "nixpkgs" 2543 - ] 2544 - }, 2047 + "tinted-tmux": { 2048 + "flake": false, 2545 2049 "locked": { 2546 - "lastModified": 1735135567, 2547 - "narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=", 2548 - "owner": "numtide", 2549 - "repo": "treefmt-nix", 2550 - "rev": "9e09d30a644c57257715902efbb3adc56c79cf28", 2050 + "lastModified": 1754788770, 2051 + "narHash": "sha256-LAu5nBr7pM/jD9jwFc6/kyFY4h7Us4bZz7dvVvehuwo=", 2052 + "owner": "tinted-theming", 2053 + "repo": "tinted-tmux", 2054 + "rev": "fb2175accef8935f6955503ec9dd3c973eec385c", 2551 2055 "type": "github" 2552 2056 }, 2553 2057 "original": { 2554 - "owner": "numtide", 2555 - "repo": "treefmt-nix", 2058 + "owner": "tinted-theming", 2059 + "repo": "tinted-tmux", 2556 2060 "type": "github" 2557 2061 } 2558 2062 }, 2559 - "treefmt-nix_2": { 2560 - "inputs": { 2561 - "nixpkgs": [ 2562 - "nur", 2563 - "nixpkgs" 2564 - ] 2565 - }, 2063 + "tinted-zed": { 2064 + "flake": false, 2566 2065 "locked": { 2567 - "lastModified": 1733222881, 2568 - "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", 2569 - "owner": "numtide", 2570 - "repo": "treefmt-nix", 2571 - "rev": "49717b5af6f80172275d47a418c9719a31a78b53", 2066 + "lastModified": 1755613540, 2067 + "narHash": "sha256-zBFrrTxHLDMDX/OYxkCwGGbAhPXLi8FrnLhYLsSOKeY=", 2068 + "owner": "tinted-theming", 2069 + "repo": "base16-zed", 2070 + "rev": "937bada16cd3200bdbd3a2f5776fc3b686d5cba0", 2572 2071 "type": "github" 2573 2072 }, 2574 2073 "original": { 2575 - "owner": "numtide", 2576 - "repo": "treefmt-nix", 2074 + "owner": "tinted-theming", 2075 + "repo": "base16-zed", 2577 2076 "type": "github" 2578 2077 } 2579 2078 }, 2580 - "treefmt-nix_3": { 2079 + "treefmt-nix": { 2581 2080 "inputs": { 2582 2081 "nixpkgs": [ 2583 2082 "wayland-pipewire-idle-inhibit", ··· 2585 2084 ] 2586 2085 }, 2587 2086 "locked": { 2588 - "lastModified": 1704649711, 2589 - "narHash": "sha256-+qxqJrZwvZGilGiLQj3QbYssPdYCwl7ejwMImgH7VBQ=", 2087 + "lastModified": 1754061284, 2088 + "narHash": "sha256-ONcNxdSiPyJ9qavMPJYAXDNBzYobHRxw0WbT38lKbwU=", 2590 2089 "owner": "numtide", 2591 2090 "repo": "treefmt-nix", 2592 - "rev": "04f25d7bec9fb29d2c3bacaa48a3304840000d36", 2091 + "rev": "58bd4da459f0a39e506847109a2a5cfceb837796", 2593 2092 "type": "github" 2594 2093 }, 2595 2094 "original": { ··· 2598 2097 "type": "github" 2599 2098 } 2600 2099 }, 2601 - "umu": { 2602 - "inputs": { 2603 - "nixpkgs": [ 2604 - "nix-gaming", 2605 - "nixpkgs" 2606 - ] 2607 - }, 2608 - "locked": { 2609 - "dir": "packaging/nix", 2610 - "lastModified": 1735507919, 2611 - "narHash": "sha256-4cR4mk1660p3y8wnX0XbHSQh4KX0mbMn6/2YnALNt8o=", 2612 - "ref": "refs/heads/main", 2613 - "rev": "59a82ea8cd284c7535bc06b8f6156abb7da96f6a", 2614 - "revCount": 874, 2615 - "submodules": true, 2616 - "type": "git", 2617 - "url": "https://github.com/Open-Wine-Components/umu-launcher/" 2618 - }, 2619 - "original": { 2620 - "dir": "packaging/nix", 2621 - "submodules": true, 2622 - "type": "git", 2623 - "url": "https://github.com/Open-Wine-Components/umu-launcher/" 2624 - } 2625 - }, 2626 2100 "unstable": { 2627 2101 "locked": { 2628 - "lastModified": 1735471104, 2629 - "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", 2102 + "lastModified": 1757347588, 2103 + "narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=", 2630 2104 "owner": "NixOS", 2631 2105 "repo": "nixpkgs", 2632 - "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", 2106 + "rev": "b599843bad24621dcaa5ab60dac98f9b0eb1cabe", 2633 2107 "type": "github" 2634 2108 }, 2635 2109 "original": { ··· 2645 2119 "nixpkgs": [ 2646 2120 "nixpkgs" 2647 2121 ], 2648 - "treefmt-nix": "treefmt-nix_3" 2122 + "systems": "systems_8", 2123 + "treefmt-nix": "treefmt-nix" 2649 2124 }, 2650 2125 "locked": { 2651 - "lastModified": 1724040047, 2652 - "narHash": "sha256-8oVTexYGQWyaAVJedrp4kIQ7VjBR47l65eByZr7oghg=", 2126 + "lastModified": 1754454775, 2127 + "narHash": "sha256-fys9BklWg58nGyYoikZ+c1YdrPyKu93oET8Y0erYIcc=", 2653 2128 "owner": "rafaelrc7", 2654 2129 "repo": "wayland-pipewire-idle-inhibit", 2655 - "rev": "ab6c30cdf1cfbabd65e1a5a30f0dc94d1114bb45", 2130 + "rev": "d8adda1c1a9ee5096b8ea206a3994322b3fadf0e", 2656 2131 "type": "github" 2657 2132 }, 2658 2133 "original": { ··· 2689 2164 ] 2690 2165 }, 2691 2166 "locked": { 2692 - "lastModified": 1734907020, 2693 - "narHash": "sha256-p6HxwpRKVl1KIiY5xrJdjcEeK3pbmc///UOyV6QER+w=", 2167 + "lastModified": 1755354946, 2168 + "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=", 2694 2169 "owner": "hyprwm", 2695 2170 "repo": "xdg-desktop-portal-hyprland", 2696 - "rev": "d7f18dda5e511749fa1511185db3536208fb1a63", 2171 + "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0", 2697 2172 "type": "github" 2698 2173 }, 2699 2174 "original": {
+21 -41
flake.nix
··· 1 1 { 2 2 description = "Defines my personal systems/home configs and whatnot"; 3 3 4 - outputs = {self, ...} @ inputs: let 5 - inherit (inputs.nixpkgs) lib; 6 - inherit (self.lib) mkPkgs; 7 - in 4 + outputs = {self, ...} @ inputs: 8 5 inputs.flake-parts.lib.mkFlake 9 6 {inherit inputs;} 10 - ({ 11 - self, 12 - flake-parts-lib, 13 - ... 14 - }: let 7 + ({flake-parts-lib, ...}: let 15 8 inherit (flake-parts-lib) importApply; 16 9 importApply' = path: importApply path {inherit inputs systems;}; 17 10 systems = ["aarch64-linux" "x86_64-linux"]; ··· 20 13 imports = [ 21 14 (importApply' ./nix/apps) 22 15 (importApply' ./nix/modules) 16 + (importApply' ./nix/overlays) 23 17 (importApply' ./nix/packages) 18 + (importApply' ./nix/scripts) 24 19 (importApply' ./nix/shells) 25 20 ]; 26 - perSystem = {pkgs, ...}: { 21 + perSystem = { 22 + pkgs, 23 + system, 24 + ... 25 + }: { 26 + _module.args.pkgs = self.legacyPackages.${system}.pkgs; 27 27 formatter = pkgs.alejandra; 28 + legacyPackages.pkgs = self.lib.mkPkgs { 29 + inherit system; 30 + inherit (inputs) nixpkgs; 31 + }; 28 32 }; 29 33 flake = { 30 34 lib = import ./nix/lib {inherit inputs;}; 31 - pkgs = lib.genAttrs systems (system: mkPkgs {inherit system;}); 32 35 schemas = 33 36 inputs.flake-schemas.schemas 34 37 // (import ./nix/schemas {inherit inputs systems;}); ··· 53 56 }; 54 57 nixvim = { 55 58 url = "github:nix-community/nixvim"; 56 - inputs.flake-compat.follows = "flake-compat"; 57 59 inputs.nixpkgs.follows = "nixpkgs"; 58 - inputs.home-manager.follows = "home-manager"; 59 60 }; 60 61 61 62 # Hyprland 63 + caelestia = { 64 + url = "github:caelestia-dots/shell"; 65 + inputs.nixpkgs.follows = "nixpkgs"; 66 + }; 62 67 hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; 63 68 hyprland-hyprspace = { 64 69 url = "github:KZDKM/Hyprspace"; ··· 68 73 url = "github:hyprwm/hyprland-plugins"; 69 74 inputs.hyprland.follows = "hyprland"; 70 75 }; 71 - ags.url = "github:Aylur/ags"; 72 - ags18.url = "github:Aylur/ags/v1.8.2"; 73 - astal.url = "github:Aylur/astal"; 74 - dotfiles-aylur = { 75 - url = "github:Aylur/dotfiles/pre-astal"; 76 - inputs.ags.follows = "ags"; 77 - inputs.astal.follows = "astal"; 78 - inputs.home-manager.follows = "home-manager"; 79 - inputs.hyprland.follows = "hyprland"; 80 - inputs.hyprland-plugins.follows = "hyprland-plugins"; 81 - }; 82 - dotfiles-end-4 = { 83 - url = "github:end-4/dots-hyprland"; 84 - flake = false; 85 - }; 86 76 87 77 # Misc 88 78 chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; 89 - devenv = { 90 - url = "github:cachix/devenv"; 91 - inputs.flake-compat.follows = "flake-compat"; 92 - inputs.nixpkgs.follows = "nixpkgs"; 93 - }; 94 79 disko = { 95 80 url = "github:nix-community/disko"; 96 81 inputs.nixpkgs.follows = "nixpkgs"; ··· 100 85 inputs.flake-parts.follows = "flake-parts"; 101 86 inputs.nixpkgs.follows = "nixpkgs"; 102 87 }; 103 - flake-compat.url = "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"; 104 88 flake-parts.url = "github:hercules-ci/flake-parts"; 105 89 flake-schemas.url = "github:DeterminateSystems/flake-schemas"; 106 90 git-hooks-nix.url = "github:cachix/git-hooks.nix"; ··· 108 92 url = "github:nix-community/haumea/v0.2.2"; 109 93 inputs.nixpkgs.follows = "nixpkgs"; 110 94 }; 111 - jovian = { 112 - url = "github:Jovian-Experiments/Jovian-NixOS"; 113 - inputs.nixpkgs.follows = "nixpkgs"; 114 - }; 95 + jovian.follows = "chaotic/jovian"; # Needed for binary cache 115 96 lanzaboote = { 116 97 url = "github:nix-community/lanzaboote"; 117 - inputs.flake-compat.follows = "flake-compat"; 118 98 inputs.nixpkgs.follows = "nixpkgs"; 119 99 }; 100 + make-shell.url = "github:nicknovitski/make-shell"; 120 101 nh = { 121 102 url = "github:viperML/nh"; 122 103 inputs.nixpkgs.follows = "nixpkgs"; 123 104 }; 105 + nix-flatpak.url = "github:gmodena/nix-flatpak"; 124 106 nix-gaming.url = "github:fufexan/nix-gaming"; 125 107 nix-index-database = { 126 108 url = "github:nix-community/nix-index-database"; ··· 138 120 }; 139 121 stylix = { 140 122 url = "github:danth/stylix"; 141 - inputs.flake-compat.follows = "flake-compat"; 142 - inputs.home-manager.follows = "home-manager"; 143 123 inputs.nixpkgs.follows = "nixpkgs"; 144 124 }; 145 125 wayland-pipewire-idle-inhibit = {
+4 -3
nix/apps/ci.nix
··· 4 4 ... 5 5 }: { 6 6 perSystem = { 7 + self', 7 8 config, 8 9 lib, 9 10 system, ··· 11 12 }: let 12 13 inherit systems; 13 14 inherit (inputs) self; 14 - pkgs = self.pkgs.${system}; 15 + inherit (self'.legacyPackages) pkgs; 15 16 in { 16 17 apps.generate-ci-matrix = let 17 18 getOutputInfo = mkDerivationPath: output: ··· 70 71 | from json 71 72 | if $system != all { 72 73 transpose 73 - | filter { get column1 | columns | 'system' in $in } 74 + | where { get column1 | columns | 'system' in $in } 74 75 | update column1 { where system == $system } 75 76 | transpose --header-row --as-record 76 77 } else $in 77 78 | if $output != all { 78 - get --ignore-errors $output | default [] 79 + get --optional $output | default [] 79 80 } else $in 80 81 | to json --raw 81 82 }
+5 -4
nix/apps/default.nix
··· 1 - args: let 2 - inherit ((import ../lib args).loaders) importNonDefault; 3 - in { 4 - imports = importNonDefault ./. args; 1 + {...}: { 2 + imports = [ 3 + ./assets.nix 4 + ./ci.nix 5 + ]; 5 6 }
+81 -7
nix/home/configs/cheina@pc079.nix
··· 1 1 { 2 - my.profiles = { 3 - standalone = true; 4 - work = true; 5 - }; 6 - 7 - home = rec { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: { 7 + home = { 8 8 username = "cheina"; 9 - homeDirectory = "/home/${username}"; 9 + homeDirectory = "/home/cheina"; 10 10 stateVersion = "23.05"; 11 + }; 12 + 13 + my.modules = { 14 + cli.enable = true; 15 + cli.git.enable = true; 16 + cli.hishtory.enable = false; 17 + de.gnome.theming.enableGnomeShellTheme = false; 18 + }; 19 + my.profiles.standalone = true; 20 + 21 + home.packages = with pkgs; [ 22 + nodePackages.clipboard-cli 23 + (pkgs.writeShellScriptBin "dev2beta" '' 24 + git checkout dev && git pull && git checkout beta && git pull 25 + git branch -D bugfix#dev2beta >/dev/null 2>&1 26 + git checkout -b bugfix#dev2beta && git merge dev --no-ff --no-edit 27 + '') 28 + (pkgs.writeShellScriptBin "dev2master" '' 29 + git checkout dev && git pull && git checkout master && git pull 30 + git branch -D hotfix#dev2master >/dev/null 2>&1 31 + git checkout -b hotfix#dev2master && git merge dev --no-ff --no-edit 32 + '') 33 + (pkgs.writeShellScriptBin "master2dev" '' 34 + git checkout master && git pull && git checkout dev && git pull 35 + git branch -D bugfix#master2dev >/dev/null 2>&1 36 + git checkout -b bugfix#master2dev && git merge master --no-ff --no-edit 37 + '') 38 + (pkgs.writeShellScriptBin "cleanslate" '' 39 + git fetch origin dev:dev && git checkout dev 40 + '') 41 + ]; 42 + 43 + programs = { 44 + atuin.daemon.enable = false; 45 + helix.languages.language = [ 46 + { 47 + name = "php"; 48 + language-id = "php"; 49 + debugger = { 50 + name = "vscode-php-debug"; 51 + transport = "stdio"; 52 + command = "node"; 53 + args = ["~/.vscode/extensions/xdebug.php-debug-1.34.0/out/phpDebug.js"]; 54 + }; 55 + debugger.templates = [ 56 + { 57 + name = "Listen for Xdebug"; 58 + request = "launch"; 59 + completion = ["ignored"]; 60 + args = {}; 61 + } 62 + ]; 63 + } 64 + ]; 65 + tmux.extraConfig = lib.optionalString config.programs.nushell.enable '' 66 + set-option -g default-shell ${config.programs.nushell.package}/bin/nu 67 + ''; 68 + zsh.initContent = '' 69 + export NVM_DIR="$HOME/.nvm" 70 + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 71 + export PATH="$PATH:$HOME/Lucas/Bin"; 72 + ''; 73 + }; 74 + 75 + dconf.settings = { 76 + "org/gnome/desktop/interface" = { 77 + enable-hot-corners = true; 78 + }; 79 + "org/gnome/desktop/wm/keybindings" = { 80 + switch-applications = []; 81 + switch-applications-backward = []; 82 + switch-windows = ["<Alt>Tab"]; 83 + switch-windows-backward = ["<Shift><Alt>Tab"]; 84 + }; 11 85 }; 12 86 }
+26 -46
nix/home/modules/cli/atuin/default.nix
··· 14 14 programs.mcfly.enable = lib.mkForce false; 15 15 programs.atuin = { 16 16 enable = true; 17 + daemon.enable = osConfig != {}; 18 + daemon.logLevel = "warn"; 17 19 settings = { 18 20 auto_sync = true; 19 - daemon.enabled = true; 20 21 dialect = "uk"; 21 22 inline_height = 25; 22 23 keymap_mode = "vim-insert"; ··· 32 33 workspaces = true; 33 34 }; 34 35 }; 35 - systemd.user.services = 36 - { 37 - atuin-daemon = { 38 - Install.WantedBy = ["default.target"]; 39 - Service = { 40 - ExecStart = "${pkgs.atuin}/bin/atuin daemon"; 41 - Restart = "on-failure"; 42 - RestartSec = "15"; 43 - }; 44 - Unit = { 45 - Description = "atuin daemon"; 46 - After = ["default.target"]; 47 - X-Restart-Triggers = [ 48 - config.programs.atuin.package 49 - config.home.file."${config.home.homeDirectory}/.config/atuin/config.toml".source 50 - ]; 51 - }; 52 - }; 53 - } 54 - // (lib.optionalAttrs (osConfig != {})) { 55 - atuin-login = { 56 - Install.WantedBy = ["network-online.target"]; 57 - Service = { 58 - Type = "oneshot"; 59 - ExecStart = let 60 - inherit (osConfig.sops) secrets; 61 - in 62 - pkgs.writeShellScriptBin "atuin-login" '' 63 - if atuin status | grep -q "not logged in"; then 64 - atuin login \ 65 - --username "$(cat ${secrets."atuin/username".path})" \ 66 - --password "$(cat ${secrets."atuin/password".path})" \ 67 - --key "$(cat ${secrets."atuin/key".path})" 68 - fi 69 - ''; 70 - }; 71 - Unit = { 72 - Description = "atuin login"; 73 - After = ["network-online.target"]; 74 - X-Restart-Triggers = [ 75 - config.programs.atuin.package 76 - config.home.file."${config.home.homeDirectory}/.config/atuin/config.toml".source 77 - ]; 78 - }; 79 - }; 36 + systemd.user.services.atuin-login = lib.mkIf (osConfig != {}) { 37 + Install.WantedBy = ["network-online.target"]; 38 + Service = { 39 + Type = "oneshot"; 40 + ExecStart = let 41 + inherit (osConfig.sops) secrets; 42 + in 43 + pkgs.writeShellScriptBin "atuin-login" '' 44 + if atuin status | grep -q "not logged in"; then 45 + atuin login \ 46 + --username "$(cat ${secrets."atuin/username".path})" \ 47 + --password "$(cat ${secrets."atuin/password".path})" \ 48 + --key "$(cat ${secrets."atuin/key".path})" 49 + fi 50 + ''; 80 51 }; 52 + Unit = { 53 + Description = "atuin login"; 54 + After = ["network-online.target"]; 55 + X-Restart-Triggers = [ 56 + config.programs.atuin.package 57 + config.home.file."${config.home.homeDirectory}/.config/atuin/config.toml".source 58 + ]; 59 + }; 60 + }; 81 61 }; 82 62 }
+17 -1
nix/home/modules/cli/default.nix
··· 6 6 inherit (lib) mkDefault mkEnableOption mkIf; 7 7 cfg = config.my.modules.cli; 8 8 in { 9 + imports = [ 10 + ./atuin 11 + ./editors 12 + ./essentials 13 + ./fish 14 + ./git 15 + ./hishtory 16 + ./just 17 + ./nushell 18 + ./starship 19 + ./tealdeer 20 + ./tmux 21 + ./zellij 22 + ./zsh 23 + ]; 24 + 9 25 options.my.modules.cli.enable = mkEnableOption "cli modules"; 10 26 11 27 config.my.modules.cli = mkIf cfg.enable { ··· 21 37 nushell.enable = mkDefault true; 22 38 starship.enable = mkDefault true; 23 39 tealdeer.enable = mkDefault true; 24 - tmux.enable = mkDefault true; 40 + tmux.enable = mkDefault false; 25 41 zellij.enable = mkDefault true; 26 42 zsh.enable = mkDefault true; 27 43 };
+5
nix/home/modules/cli/editors/default.nix
··· 6 6 cfg = config.my.modules.cli.editors; 7 7 inherit (cfg) enable; 8 8 in { 9 + imports = [ 10 + ./helix 11 + ./neovim 12 + ]; 13 + 9 14 options.my.modules.cli.editors = { 10 15 enable = lib.mkEnableOption "editors" // {default = config.my.modules.cli.enable;}; 11 16 kakoune.enable = lib.mkEnableOption "kakoune" // {default = enable;};
+5
nix/home/modules/cli/editors/neovim/default.nix
··· 5 5 }: let 6 6 cfg = config.my.modules.cli.editors.neovim; 7 7 in { 8 + imports = [ 9 + ./treesitter.nix 10 + ]; 11 + 8 12 options.my.modules.cli.editors.neovim.enable = 9 13 lib.mkEnableOption "neovim" 10 14 // {default = config.my.modules.cli.editors.enable;}; 15 + 11 16 config = lib.mkIf cfg.enable { 12 17 programs.nixvim = { 13 18 enable = true;
+71 -64
nix/home/modules/cli/editors/neovim/treesitter.nix
··· 1 1 { 2 + config, 2 3 lib, 3 4 pkgs, 4 5 ... 5 - }: { 6 - programs.nixvim = { 7 - keymaps = let 8 - makeKeymap = mode: key: action: raw: { 9 - inherit mode; 10 - inherit key; 11 - action = 12 - if raw 13 - then {__raw = action;} 14 - else action; 15 - options.silent = true; 16 - }; 17 - in [ 18 - (makeKeymap "" "A-o" "require('tree-climber').goto_parent" true) 19 - (makeKeymap "" "A-i" "require('tree-climber').goto_child" true) 20 - (makeKeymap "" "A-u" "require('tree-climber').goto_prev" true) 21 - (makeKeymap "" "A-p" "require('tree-climber').goto_next" true) 22 - ]; 23 - plugins = { 24 - treesitter = { 25 - enable = true; 26 - incrementalSelection = { 6 + }: let 7 + cfg = config.my.modules.cli.editors.neovim.treesitter; 8 + in { 9 + options.my.modules.cli.editors.neovim.treesitter.enable = lib.mkEnableOption "treesitter"; 10 + 11 + config = lib.mkIf cfg.enable { 12 + programs.nixvim = { 13 + keymaps = let 14 + makeKeymap = mode: key: action: raw: { 15 + inherit mode; 16 + inherit key; 17 + action = 18 + if raw 19 + then {__raw = action;} 20 + else action; 21 + options.silent = true; 22 + }; 23 + in [ 24 + (makeKeymap "" "A-o" "require('tree-climber').goto_parent" true) 25 + (makeKeymap "" "A-i" "require('tree-climber').goto_child" true) 26 + (makeKeymap "" "A-u" "require('tree-climber').goto_prev" true) 27 + (makeKeymap "" "A-p" "require('tree-climber').goto_next" true) 28 + ]; 29 + plugins = { 30 + treesitter = { 27 31 enable = true; 28 - # keymaps = { 29 - # initSelection = "<A-o>"; 30 - # nodeDecremental = "<A-i>"; 31 - # nodeIncremental = "<A-o>"; 32 - # }; 32 + settings = { 33 + incremental_selection = { 34 + enable = true; 35 + # keymaps = { 36 + # init_selection = "<A-o>"; 37 + # node_decremental = "<A-i>"; 38 + # node_incremental = "<A-o>"; 39 + # }; 40 + }; 41 + # node_movement = { 42 + # enable = true; 43 + # keymaps = { 44 + # move_up = "<a-o>"; 45 + # move_down = "<a-i>"; 46 + # move_left = "<a-u>"; 47 + # move_right = "<a-p>"; 48 + # # swap_left = "<s-a-h>"; # will only swap when one of "swappable_textobjects" is selected 49 + # # swap_right = "<s-a-l>"; 50 + # # select_current_node = "<leader><Cr>"; 51 + # }; 52 + # # swappable_textobjects = {'@function.outer', '@parameter.inner', '@statement.outer'}; 53 + # allow_switch_parents = true; # more craziness by switching parents while staying on the same level, false prevents you from accidentally jumping out of a function 54 + # allow_next_parent = true; # more craziness by going up one level if next node does not have children 55 + # }; 56 + }; 33 57 }; 34 - moduleConfig = { 35 - # node_movement = { 36 - # enable = true; 37 - # keymaps = { 38 - # move_up = "<a-o>"; 39 - # move_down = "<a-i>"; 40 - # move_left = "<a-u>"; 41 - # move_right = "<a-p>"; 42 - # # swap_left = "<s-a-h>"; # will only swap when one of "swappable_textobjects" is selected 43 - # # swap_right = "<s-a-l>"; 44 - # # select_current_node = "<leader><Cr>"; 58 + # treesitter-context.enable = true; 59 + # treesitter-refactor.enable = true; 60 + treesitter-textobjects.enable = true; 61 + }; 62 + extraPlugins = with pkgs; 63 + # with pkgs.vimPlugins; 64 + # with pkgs.vimExtraPlugins; 65 + [ 66 + vimExtraPlugins.tree-climber-nvim 67 + # (vimUtils.buildVimPlugin { 68 + # pname = "crazy-node-movement"; 69 + # version = "2023-09-02"; 70 + # src = pkgs.fetchFromGitHub { 71 + # owner = "theHamsta"; 72 + # repo = "crazy-node-movement"; 73 + # rev = "d5cf01cc44c5715501d3d6fe439af7c8b7fa5df2"; 74 + # sha256 = "sha256-hQcQEp39zFN2zphMfcr97yRVcuHhBsSkzKO7XNloDpQ="; 45 75 # }; 46 - # # swappable_textobjects = {'@function.outer', '@parameter.inner', '@statement.outer'}; 47 - # allow_switch_parents = true; # more craziness by switching parents while staying on the same level, false prevents you from accidentally jumping out of a function 48 - # allow_next_parent = true; # more craziness by going up one level if next node does not have children 49 - # }; 50 - }; 51 - }; 52 - # treesitter-context.enable = true; 53 - # treesitter-refactor.enable = true; 54 - treesitter-textobjects.enable = true; 76 + # meta.homepage = "https://github.com/theHamsta/crazy-node-movement"; 77 + # }) 78 + ]; 55 79 }; 56 - extraPlugins = with pkgs; 57 - # with pkgs.vimPlugins; 58 - # with pkgs.vimExtraPlugins; 59 - [ 60 - vimExtraPlugins.tree-climber-nvim 61 - # (vimUtils.buildVimPlugin { 62 - # pname = "crazy-node-movement"; 63 - # version = "2023-09-02"; 64 - # src = pkgs.fetchFromGitHub { 65 - # owner = "theHamsta"; 66 - # repo = "crazy-node-movement"; 67 - # rev = "d5cf01cc44c5715501d3d6fe439af7c8b7fa5df2"; 68 - # sha256 = "sha256-hQcQEp39zFN2zphMfcr97yRVcuHhBsSkzKO7XNloDpQ="; 69 - # }; 70 - # meta.homepage = "https://github.com/theHamsta/crazy-node-movement"; 71 - # }) 72 - ]; 73 80 }; 74 81 }
+14
nix/home/modules/cli/essentials/default.nix
··· 14 14 home = { 15 15 packages = 16 16 (with pkgs; [ 17 + _7zz # Just 7-zip 18 + asciinema 17 19 bash 18 20 chafa 19 21 cheat ··· 24 26 du-dust 25 27 duf 26 28 fd 29 + ffmpeg 30 + file 27 31 fx 28 32 hexyl 29 33 htop 34 + imagemagick 30 35 inotify-tools 36 + inshellisense 37 + jq 31 38 neofetch 32 39 ncdu 33 40 nh 34 41 nix-output-monitor 35 42 nurl 43 + poppler 36 44 procs 37 45 progress 38 46 python312Packages.howdoi 47 + resvg 39 48 rsync 40 49 termshot 41 50 tgpt ··· 45 54 ]) 46 55 ++ config.stylix.fonts.packages; 47 56 sessionVariables = { 57 + CARAPACE_BRIDGES = "zsh,fish,bash,inshellisense"; 58 + MANPAGER = "${lib.getExe pkgs.bat} --language man --plain"; 48 59 NH_FLAKE = "${config.xdg.configHome}/nixos"; 49 60 }; 50 61 shellAliases = { ··· 53 64 gds = "git diff --staged"; 54 65 gl = "git log"; 55 66 glg = "git log --graph"; 67 + gp = "git pull"; 68 + gs = "git switch"; 69 + gsc = "git switch --create"; 56 70 gst = "git status"; 57 71 }; 58 72 };
+2 -1
nix/home/modules/cli/git/default.nix
··· 19 19 delta.enable = true; 20 20 extraConfig = { 21 21 init.defaultBranch = "main"; 22 + pull.rebase = true; 22 23 push.autoSetupRemote = true; 23 - pull.rebase = false; 24 + rebase.autoStash = true; 24 25 }; 25 26 userEmail = email.main; 26 27 userName = name.full;
+1 -1
nix/home/modules/cli/hishtory/default.nix
··· 43 43 44 44 ${commonPost} 45 45 ''; 46 - zsh.initExtra = '' 46 + zsh.initContent = '' 47 47 ${commonPre} 48 48 49 49 if [[ $(hishtory config-get enable-control-r) != "true" ]]; then
+1 -1
nix/home/modules/cli/just/default.nix
··· 18 18 home = { 19 19 packages = [pkgs.just]; 20 20 file.".justfile".text = lib.trim '' 21 - ${builtins.readFile ./justfile} 21 + ${import ./justfile.nix} 22 22 ${cfg.extraConfig} 23 23 ''; 24 24 shellAliases = {
-75
nix/home/modules/cli/just/justfile
··· 1 - _default: 2 - just --list 3 - 4 - # Runs nixos-rebuild switch 5 - [group("nixos")] 6 - deploy flake='.#' target='localhost': 7 - sudo nixos-rebuild switch \ 8 - --flake {{ flake }} \ 9 - {{ if target != 'localhost' { '--target-host {{ target }}' } else { '' } }} 10 - 11 - # Runs nixos-rebuild test 12 - [group("nixos")] 13 - test flake='.#': 14 - sudo nixos-rebuild test \ 15 - --flake {{ flake }} 16 - 17 - # Updates secret files, run after adding new keys 18 - [group("secrets")] 19 - [group("security")] 20 - update-secrets: 21 - #!/usr/bin/env zsh 22 - sops updatekeys secrets/**/* 23 - 24 - # Grabs a host's SSH key and generates the corresponding age key 25 - [group("secrets")] 26 - [group("security")] 27 - @get-host-key host: 28 - nix shell nixpkgs#ssh-to-age nixpkgs#openssh \ 29 - --command ssh-keyscan localhost 2>/dev/null \ 30 - | ssh-to-age 2>/dev/null 31 - 32 - # Opens a secrets file for editing 33 - [group("secrets")] 34 - [group("security")] 35 - @edit-secrets file='secrets/default.yaml': 36 - sops {{ file }} 37 - 38 - # Enroll security key 39 - [group("security")] 40 - enroll-security-key: 41 - #!/usr/bin/env bash 42 - mkdir -p ~/.config/Yubico 43 - [ -e ~/.config/Yubico/u2f_keys ] \ 44 - && pamu2fcfg \ 45 - --origin="pam://localhost" \ 46 - --appid="pam://auth" \ 47 - --nouser \ 48 - >> ~/.config/Yubico/u2f_keys \ 49 - || pamu2fcfg \ 50 - --origin="pam://localhost" \ 51 - --appid="pam://auth" \ 52 - > ~/.config/Yubico/u2f_keys 53 - 54 - # Clear enrolled security keys, if any 55 - [group("security")] 56 - clear-security-keys: 57 - [ -e ~/.config/Yubico/u2f_keys ] \ 58 - && rm -f ~/.config/Yubico/u2f_keys 59 - 60 - # Generates the necessary keys in /etc/secureboot 61 - [group("secureboot")] 62 - [group("security")] 63 - create-secureboot-keys: 64 - sudo sbctl create-keys 65 - 66 - # Enrolls keys, requires system to be in setup mode 67 - [group("secureboot")] 68 - [group("security")] 69 - enroll-secureboot-keys: create-secureboot-keys 70 - sudo sbctl enroll-keys --microsoft 71 - 72 - # Opens the current stylix color scheme in a browser 73 - [group("theming")] 74 - @inspect-theme: 75 - firefox $(readlink -f /etc/stylix/palette.html)
+78
nix/home/modules/cli/just/justfile.nix
··· 1 + # just 2 + '' 3 + _default: 4 + just --list 5 + 6 + # Runs nixos-rebuild switch 7 + [group("nixos")] 8 + deploy flake='.#' target='localhost': 9 + sudo nixos-rebuild switch \ 10 + --flake {{ flake }} \ 11 + {{ if target != 'localhost' { '--target-host {{ target }}' } else { "" } }} 12 + 13 + # Runs nixos-rebuild test 14 + [group("nixos")] 15 + test flake='.#': 16 + sudo nixos-rebuild test \ 17 + --flake {{ flake }} 18 + 19 + # Updates secret files, run after adding new keys 20 + [group("secrets")] 21 + [group("security")] 22 + update-secrets: 23 + #!/usr/bin/env zsh 24 + sops updatekeys secrets/**/* 25 + 26 + # Grabs a host's SSH key and generates the corresponding age key 27 + [group("secrets")] 28 + [group("security")] 29 + @get-host-key host: 30 + nix shell nixpkgs#ssh-to-age nixpkgs#openssh \ 31 + --command ssh-keyscan localhost 2>/dev/null \ 32 + | ssh-to-age 2>/dev/null 33 + 34 + # Opens a secrets file for editing 35 + [group("secrets")] 36 + [group("security")] 37 + @edit-secrets file='secrets/default.yaml': 38 + sops {{ file }} 39 + 40 + # Enroll security key 41 + [group("security")] 42 + enroll-security-key: 43 + #!/usr/bin/env bash 44 + mkdir -p ~/.config/Yubico 45 + [ -e ~/.config/Yubico/u2f_keys ] \ 46 + && pamu2fcfg \ 47 + --origin="pam://localhost" \ 48 + --appid="pam://auth" \ 49 + --nouser \ 50 + >> ~/.config/Yubico/u2f_keys \ 51 + || pamu2fcfg \ 52 + --origin="pam://localhost" \ 53 + --appid="pam://auth" \ 54 + > ~/.config/Yubico/u2f_keys 55 + 56 + # Clear enrolled security keys, if any 57 + [group("security")] 58 + clear-security-keys: 59 + [ -e ~/.config/Yubico/u2f_keys ] \ 60 + && rm -f ~/.config/Yubico/u2f_keys 61 + 62 + # Generates the necessary keys in /etc/secureboot 63 + [group("secureboot")] 64 + [group("security")] 65 + create-secureboot-keys: 66 + sudo sbctl create-keys 67 + 68 + # Enrolls keys, requires system to be in setup mode 69 + [group("secureboot")] 70 + [group("security")] 71 + enroll-secureboot-keys: create-secureboot-keys 72 + sudo sbctl enroll-keys --microsoft 73 + 74 + # Opens the current stylix color scheme in a browser 75 + [group("theming")] 76 + @inspect-theme: 77 + firefox $(readlink -f /etc/stylix/palette.html) 78 + ''
-30
nix/home/modules/cli/nushell/commands.nix
··· 1 - {pkgs, ...}: 2 - # nu 3 - '' 4 - # Wrapper for git branch 5 - def "from git branches" []: list<string> -> list<string> { 6 - lines 7 - | each { 8 - str trim 9 - | str replace --regex '^\* ' "" 10 - } 11 - } 12 - 13 - # Wrapper for fzf 14 - def "into fzf" []: list<string> -> string { 15 - to text 16 - | ^${pkgs.fzf} 17 - } 18 - 19 - # Wrapper for fzf with multiple selections 20 - def "into fzf multi" []: list<string> -> list<string> { 21 - to text 22 - | ^${pkgs.fzf} --multi 23 - | lines 24 - } 25 - 26 - # Cast to list, for e.g. ranges 27 - def "into list" []: any -> list<any> { 28 - each {} 29 - } 30 - ''
+26
nix/home/modules/cli/nushell/commands.nu
··· 1 + # Wrapper for git branch 2 + def "from git branches" []: list<string> -> list<string> { 3 + lines 4 + | each { 5 + str trim 6 + | str replace --regex '^\* ' "" 7 + } 8 + } 9 + 10 + # Wrapper for fzf 11 + def "into fzf" []: list<string> -> string { 12 + to text 13 + | ^fzf 14 + } 15 + 16 + # Wrapper for fzf with multiple selections 17 + def "into fzf multi" []: list<string> -> list<string> { 18 + to text 19 + | ^fzf --multi 20 + | lines 21 + } 22 + 23 + # Cast to list, for e.g. ranges 24 + def "into list" []: any -> list<any> { 25 + each {} 26 + }
-121
nix/home/modules/cli/nushell/config.nix
··· 1 - # nu 2 - '' 3 - $env.config = { 4 - show_banner: false # true or false to enable or disable the welcome banner at startup 5 - 6 - ls: { 7 - use_ls_colors: true # use the LS_COLORS environment variable to colorize output 8 - clickable_links: true # enable or disable clickable links. Your terminal has to support links. 9 - } 10 - 11 - rm: { 12 - always_trash: false # always act as if -t was given. Can be overridden with -p 13 - } 14 - 15 - table: { 16 - mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other 17 - index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column 18 - show_empty: true # show 'empty list' and 'empty record' placeholders for command output 19 - padding: { left: 1, right: 1 } # a left right padding of each column in a table 20 - trim: { 21 - methodology: wrapping # wrapping or truncating 22 - wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology 23 - truncating_suffix: "..." # A suffix used by the 'truncating' methodology 24 - } 25 - header_on_separator: false # show header text on separator/border line 26 - # abbreviated_row_count: 10 # limit data rows from top and bottom after reaching a set point 27 - } 28 - 29 - error_style: "fancy" # "fancy" or "plain" for screen reader-friendly error messages 30 - 31 - # datetime_format determines what a datetime rendered in the shell would look like. 32 - # Behavior without this configuration point will be to "humanize" the datetime display, 33 - # showing something like "a day ago." 34 - datetime_format: { 35 - # normal: '%a, %d %b %Y %H:%M:%S %z' # shows up in displays of variables or other datetime's outside of tables 36 - # table: '%m/%d/%y %I:%M:%S%p' # generally shows up in tabular outputs such as ls. commenting this out will change it to the default human readable datetime format 37 - } 38 - 39 - history: { 40 - max_size: 100_000 # Session has to be reloaded for this to take effect 41 - sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file 42 - file_format: "plaintext" # "sqlite" or "plaintext" 43 - isolation: false # only available with sqlite file_format. true enables history isolation, false disables it. true will allow the history to be isolated to the current session using up/down arrows. false will allow the history to be shared across all sessions. 44 - } 45 - 46 - completions: { 47 - case_sensitive: false # set to true to enable case-sensitive completions 48 - quick: true # set this to false to prevent auto-selecting completions when only one remains 49 - partial: true # set this to false to prevent partial filling of the prompt 50 - algorithm: "fuzzy" # prefix or fuzzy 51 - external: { 52 - enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow 53 - max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options 54 - # completer: null # check 'carapace_completer' above as an example 55 - } 56 - } 57 - 58 - filesize: { 59 - metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard) 60 - format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, auto 61 - } 62 - 63 - cursor_shape: { 64 - emacs: line # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (line is the default) 65 - vi_insert: line # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (block is the default) 66 - vi_normal: block # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (underscore is the default) 67 - } 68 - 69 - edit_mode: vi # emacs, vi 70 - shell_integration: { 71 - # osc2 abbreviates the path if in the home_dir, sets the tab/window title, shows the running command in the tab/window title 72 - osc2: true 73 - # osc7 is a way to communicate the path to the terminal, this is helpful for spawning new tabs in the same directory 74 - osc7: true 75 - # osc8 is also implemented as the deprecated setting ls.show_clickable_links, it shows clickable links in ls output if your terminal supports it. show_clickable_links is deprecated in favor of osc8 76 - osc8: true 77 - # osc9_9 is from ConEmu and is starting to get wider support. It's similar to osc7 in that it communicates the path to the terminal 78 - osc9_9: false 79 - # osc133 is several escapes invented by Final Term which include the supported ones below. 80 - # 133;A - Mark prompt start 81 - # 133;B - Mark prompt end 82 - # 133;C - Mark pre-execution 83 - # 133;D;exit - Mark execution finished with exit code 84 - # This is used to enable terminals to know where the prompt is, the command is, where the command finishes, and where the output of the command is 85 - osc133: true 86 - # osc633 is closely related to osc133 but only exists in visual studio code (vscode) and supports their shell integration features 87 - # 633;A - Mark prompt start 88 - # 633;B - Mark prompt end 89 - # 633;C - Mark pre-execution 90 - # 633;D;exit - Mark execution finished with exit code 91 - # 633;E - NOT IMPLEMENTED - Explicitly set the command line with an optional nonce 92 - # 633;P;Cwd=<path> - Mark the current working directory and communicate it to the terminal 93 - # and also helps with the run recent menu in vscode 94 - osc633: true 95 - # reset_application_mode is escape \x1b[?1l and was added to help ssh work better 96 - reset_application_mode: true 97 - } 98 - render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt. 99 - use_kitty_protocol: true # enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this 100 - 101 - hooks: { 102 - pre_prompt: [{ null }] # run before the prompt is shown 103 - pre_execution: [{ null }] # run before the repl input is run 104 - env_change: { 105 - PWD: [{|before, after| null }] # run if the PWD environment is different since the last repl input 106 - } 107 - display_output: "if (term size).columns >= 100 { table -e } else { table }" # run to display the output of a pipeline 108 - command_not_found: { null } # return an error message when a command is not found 109 - } 110 - 111 - keybindings: [ 112 - { 113 - name: open_command_editor 114 - modifier: alt 115 - keycode: char_e 116 - mode: [emacs, vi_normal, vi_insert] 117 - event: { send: openeditor } 118 - } 119 - ] 120 - } 121 - ''
+46
nix/home/modules/cli/nushell/config.nu
··· 1 + $env.config = { 2 + show_banner: false # true or false to enable or disable the welcome banner at startup 3 + edit_mode: vi # emacs, vi 4 + use_kitty_protocol: true # enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this 5 + 6 + table: { 7 + mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other 8 + index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column 9 + show_empty: true # show 'empty list' and 'empty record' placeholders for command output 10 + } 11 + 12 + history: { 13 + max_size: 100_000 # Session has to be reloaded for this to take effect 14 + sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file 15 + file_format: "plaintext" # "sqlite" or "plaintext" 16 + isolation: false # only available with sqlite file_format. true enables history isolation, false disables it. true will allow the history to be isolated to the current session using up/down arrows. false will allow the history to be shared across all sessions. 17 + } 18 + 19 + completions: { 20 + case_sensitive: false # set to true to enable case-sensitive completions 21 + quick: true # set this to false to prevent auto-selecting completions when only one remains 22 + partial: true # set this to false to prevent partial filling of the prompt 23 + algorithm: "fuzzy" # prefix or fuzzy 24 + external: { 25 + enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow 26 + max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options 27 + # completer: null # check 'carapace_completer' above as an example 28 + } 29 + } 30 + 31 + cursor_shape: { 32 + emacs: line # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (line is the default) 33 + vi_insert: line # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (block is the default) 34 + vi_normal: block # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (underscore is the default) 35 + } 36 + 37 + keybindings: [ 38 + { 39 + name: open_command_editor 40 + modifier: alt 41 + keycode: char_e 42 + mode: [emacs, vi_normal, vi_insert] 43 + event: { send: openeditor } 44 + } 45 + ] 46 + }
+5 -9
nix/home/modules/cli/nushell/default.nix
··· 3 3 lib, 4 4 pkgs, 5 5 ... 6 - } @ args: let 6 + }: let 7 7 cfg = config.my.modules.cli.nushell; 8 8 nuScripts = pkgs.nu_scripts + /share/nu_scripts; 9 9 in { 10 10 options.my.modules.cli.nushell.enable = lib.mkEnableOption "nushell"; 11 11 12 12 config = lib.mkIf cfg.enable { 13 + home.packages = with pkgs; [fzf]; 13 14 programs.nushell = { 14 15 enable = true; 15 - configFile.text = import ./config.nix; 16 + configFile.source = ./config.nu; 16 17 envFile.text = '' 17 - ${builtins.readFile ./env.nu} 18 - 19 - ${import ./commands.nix args} 20 - 18 + source ${./env.nu} 19 + source ${./commands.nu} 21 20 source "${nuScripts}/modules/formats/from-env.nu" 22 21 ''; 23 22 plugins = with pkgs.nushellPlugins; [ 24 - formats 25 - polars 26 23 query 27 - units 28 24 ]; 29 25 shellAliases = 30 26 config.programs.bash.shellAliases
+22 -9
nix/home/modules/cli/starship/default.nix
··· 1 - args @ { 1 + { 2 2 config, 3 3 lib, 4 4 pkgs, 5 5 ... 6 6 }: let 7 7 cfg = config.my.modules.cli.starship; 8 - settings = import ./settings.nix; 9 - util = import ./util.nix args; 10 8 in { 11 9 options.my.modules.cli.starship.enable = lib.mkEnableOption "starship"; 12 10 13 11 config = lib.mkIf cfg.enable { 14 12 programs.starship = { 15 13 enable = true; 16 - settings = let 17 - tomlContents = util.getPresetFiles ["nerd-font-symbols"]; 18 - allSettings = (map fromTOML tomlContents) ++ [settings]; 19 - mergedSettings = builtins.foldl' (l: r: pkgs.lib.recursiveUpdate l r) {} allSettings; 20 - in 21 - mergedSettings; 14 + settings = { 15 + aws.disabled = true; 16 + php.symbol = " "; 17 + }; 22 18 }; 19 + home.file.${config.programs.starship.configPath}.source = 20 + lib.mkForce 21 + (pkgs.runCommand 22 + "starship-settings" 23 + {buildInputs = [pkgs.nushell pkgs.starship];} 24 + '' 25 + nu --commands " 26 + starship preset nerd-font-symbols 27 + | from toml 28 + | merge deep ( 29 + open ${pkgs.writeText "starship-settings" (builtins.toJSON config.programs.starship.settings)} 30 + | from json 31 + ) 32 + | to toml 33 + " \ 34 + > $out 35 + ''); 23 36 }; 24 37 }
-8
nix/home/modules/cli/starship/settings.nix
··· 1 - { 2 - aws = { 3 - disabled = true; 4 - }; 5 - php = { 6 - symbol = " "; 7 - }; 8 - }
-10
nix/home/modules/cli/starship/util.nix
··· 1 - {pkgs, ...}: let 2 - makePreset = name: 3 - pkgs.runCommand 4 - "starship-preset-${name}" 5 - {buildInputs = [pkgs.starship];} 6 - "starship preset ${name} > $out"; 7 - getPresetFile = name: builtins.readFile (makePreset name); 8 - in { 9 - getPresetFiles = names: (map getPresetFile) names; 10 - }
+5
nix/home/modules/cli/tmux/default.nix
··· 9 9 termBasic = "screen-256color"; 10 10 termFull = "xterm-256color"; 11 11 in { 12 + imports = [ 13 + ./tmux-powerline 14 + ./catppuccin 15 + ]; 16 + 12 17 options.my.modules.cli.tmux = { 13 18 enable = lib.mkEnableOption "tmux"; 14 19 theme = lib.mkOption {
-200
nix/home/modules/cli/zellij/config.kdl
··· 1 - // If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true" 2 - keybinds { 3 - normal { 4 - // uncomment this and adjust key if using copy_on_select=false 5 - // bind "Alt c" { Copy; } 6 - } 7 - locked { 8 - bind "Ctrl g" { SwitchToMode "Normal"; } 9 - } 10 - resize { 11 - bind "Ctrl n" { SwitchToMode "Normal"; } 12 - bind "h" "Left" { Resize "Increase Left"; } 13 - bind "j" "Down" { Resize "Increase Down"; } 14 - bind "k" "Up" { Resize "Increase Up"; } 15 - bind "l" "Right" { Resize "Increase Right"; } 16 - bind "H" { Resize "Decrease Left"; } 17 - bind "J" { Resize "Decrease Down"; } 18 - bind "K" { Resize "Decrease Up"; } 19 - bind "L" { Resize "Decrease Right"; } 20 - bind "=" "+" { Resize "Increase"; } 21 - bind "-" { Resize "Decrease"; } 22 - } 23 - pane { 24 - bind "Ctrl p" { SwitchToMode "Normal"; } 25 - bind "h" "Left" { MoveFocus "Left"; } 26 - bind "l" "Right" { MoveFocus "Right"; } 27 - bind "j" "Down" { MoveFocus "Down"; } 28 - bind "k" "Up" { MoveFocus "Up"; } 29 - bind "p" { SwitchFocus; } 30 - bind "n" { NewPane; SwitchToMode "Normal"; } 31 - bind "d" { NewPane "Down"; SwitchToMode "Normal"; } 32 - bind "r" { NewPane "Right"; SwitchToMode "Normal"; } 33 - bind "x" { CloseFocus; SwitchToMode "Normal"; } 34 - bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; } 35 - bind "z" { TogglePaneFrames; SwitchToMode "Normal"; } 36 - bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; } 37 - bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; } 38 - bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;} 39 - } 40 - move { 41 - bind "Ctrl h" { SwitchToMode "Normal"; } 42 - bind "n" "Tab" { MovePane; } 43 - bind "p" { MovePaneBackwards; } 44 - bind "h" "Left" { MovePane "Left"; } 45 - bind "j" "Down" { MovePane "Down"; } 46 - bind "k" "Up" { MovePane "Up"; } 47 - bind "l" "Right" { MovePane "Right"; } 48 - } 49 - tab { 50 - bind "Ctrl t" { SwitchToMode "Normal"; } 51 - bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; } 52 - bind "h" "Left" "Up" "k" { GoToPreviousTab; } 53 - bind "l" "Right" "Down" "j" { GoToNextTab; } 54 - bind "n" { NewTab; SwitchToMode "Normal"; } 55 - bind "x" { CloseTab; SwitchToMode "Normal"; } 56 - bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; } 57 - bind "b" { BreakPane; SwitchToMode "Normal"; } 58 - bind "]" { BreakPaneRight; SwitchToMode "Normal"; } 59 - bind "[" { BreakPaneLeft; SwitchToMode "Normal"; } 60 - bind "1" { GoToTab 1; SwitchToMode "Normal"; } 61 - bind "2" { GoToTab 2; SwitchToMode "Normal"; } 62 - bind "3" { GoToTab 3; SwitchToMode "Normal"; } 63 - bind "4" { GoToTab 4; SwitchToMode "Normal"; } 64 - bind "5" { GoToTab 5; SwitchToMode "Normal"; } 65 - bind "6" { GoToTab 6; SwitchToMode "Normal"; } 66 - bind "7" { GoToTab 7; SwitchToMode "Normal"; } 67 - bind "8" { GoToTab 8; SwitchToMode "Normal"; } 68 - bind "9" { GoToTab 9; SwitchToMode "Normal"; } 69 - bind "Tab" { ToggleTab; } 70 - } 71 - scroll { 72 - bind "Ctrl s" { SwitchToMode "Normal"; } 73 - bind "e" { EditScrollback; SwitchToMode "Normal"; } 74 - bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; } 75 - bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } 76 - bind "j" "Down" { ScrollDown; } 77 - bind "k" "Up" { ScrollUp; } 78 - bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } 79 - bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } 80 - bind "d" { HalfPageScrollDown; } 81 - bind "u" { HalfPageScrollUp; } 82 - // uncomment this and adjust key if using copy_on_select=false 83 - // bind "Alt c" { Copy; } 84 - } 85 - search { 86 - bind "Ctrl s" { SwitchToMode "Normal"; } 87 - bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } 88 - bind "j" "Down" { ScrollDown; } 89 - bind "k" "Up" { ScrollUp; } 90 - bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } 91 - bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } 92 - bind "d" { HalfPageScrollDown; } 93 - bind "u" { HalfPageScrollUp; } 94 - bind "n" { Search "down"; } 95 - bind "p" { Search "up"; } 96 - bind "c" { SearchToggleOption "CaseSensitivity"; } 97 - bind "w" { SearchToggleOption "Wrap"; } 98 - bind "o" { SearchToggleOption "WholeWord"; } 99 - } 100 - entersearch { 101 - bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; } 102 - bind "Enter" { SwitchToMode "Search"; } 103 - } 104 - renametab { 105 - bind "Ctrl c" { SwitchToMode "Normal"; } 106 - bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; } 107 - } 108 - renamepane { 109 - bind "Ctrl c" { SwitchToMode "Normal"; } 110 - bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; } 111 - } 112 - session { 113 - bind "Ctrl o" { SwitchToMode "Normal"; } 114 - bind "Ctrl s" { SwitchToMode "Scroll"; } 115 - bind "d" { Detach; } 116 - bind "w" { 117 - LaunchOrFocusPlugin "session-manager" { 118 - floating true 119 - move_to_focused_tab true 120 - }; 121 - SwitchToMode "Normal" 122 - } 123 - } 124 - tmux { 125 - bind "[" { SwitchToMode "Scroll"; } 126 - bind "Ctrl b" { Write 2; SwitchToMode "Normal"; } 127 - bind "\"" { NewPane "Down"; SwitchToMode "Normal"; } 128 - bind "%" { NewPane "Right"; SwitchToMode "Normal"; } 129 - bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; } 130 - bind "c" { NewTab; SwitchToMode "Normal"; } 131 - bind "," { SwitchToMode "RenameTab"; } 132 - bind "p" { GoToPreviousTab; SwitchToMode "Normal"; } 133 - bind "n" { GoToNextTab; SwitchToMode "Normal"; } 134 - bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; } 135 - bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; } 136 - bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; } 137 - bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; } 138 - bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; } 139 - bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; } 140 - bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; } 141 - bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; } 142 - bind "o" { FocusNextPane; } 143 - bind "d" { Detach; } 144 - bind "Space" { NextSwapLayout; } 145 - bind "x" { CloseFocus; SwitchToMode "Normal"; } 146 - } 147 - shared_except "locked" { 148 - bind "Ctrl g" { SwitchToMode "Locked"; } 149 - bind "Ctrl q" { Quit; } 150 - bind "Alt n" { NewPane; } 151 - bind "Alt i" { MoveTab "Left"; } 152 - bind "Alt o" { MoveTab "Right"; } 153 - bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; } 154 - bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; } 155 - bind "Alt j" "Alt Down" { MoveFocus "Down"; } 156 - bind "Alt k" "Alt Up" { MoveFocus "Up"; } 157 - bind "Alt =" "Alt +" { Resize "Increase"; } 158 - bind "Alt -" { Resize "Decrease"; } 159 - bind "Alt [" { PreviousSwapLayout; } 160 - bind "Alt ]" { NextSwapLayout; } 161 - } 162 - shared_except "normal" "locked" { 163 - bind "Enter" "Esc" { SwitchToMode "Normal"; } 164 - } 165 - shared_except "pane" "locked" { 166 - bind "Ctrl p" { SwitchToMode "Pane"; } 167 - } 168 - shared_except "resize" "locked" { 169 - bind "Ctrl n" { SwitchToMode "Resize"; } 170 - } 171 - shared_except "scroll" "locked" { 172 - bind "Ctrl s" { SwitchToMode "Scroll"; } 173 - } 174 - shared_except "session" "locked" { 175 - bind "Ctrl o" { SwitchToMode "Session"; } 176 - } 177 - shared_except "tab" "locked" { 178 - bind "Ctrl t" { SwitchToMode "Tab"; } 179 - } 180 - shared_except "move" "locked" { 181 - bind "Ctrl h" { SwitchToMode "Move"; } 182 - } 183 - shared_except "tmux" "locked" { 184 - bind "Ctrl b" { SwitchToMode "Tmux"; } 185 - } 186 - } 187 - 188 - plugins { 189 - tab-bar location="zellij:tab-bar" 190 - status-bar location="zellij:status-bar" 191 - strider location="zellij:strider" 192 - compact-bar location="zellij:compact-bar" 193 - session-manager location="zellij:session-manager" 194 - welcome-screen location="zellij:session-manager" { 195 - welcome_screen true 196 - } 197 - filepicker location="zellij:strider" { 198 - cwd "/" 199 - } 200 - }
+203
nix/home/modules/cli/zellij/config.nix
··· 1 + # kdl 2 + '' 3 + // If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true" 4 + keybinds { 5 + normal { 6 + // uncomment this and adjust key if using copy_on_select=false 7 + // bind "Alt c" { Copy; } 8 + } 9 + locked { 10 + bind "Ctrl g" { SwitchToMode "Normal"; } 11 + } 12 + resize { 13 + bind "Ctrl n" { SwitchToMode "Normal"; } 14 + bind "h" "Left" { Resize "Increase Left"; } 15 + bind "j" "Down" { Resize "Increase Down"; } 16 + bind "k" "Up" { Resize "Increase Up"; } 17 + bind "l" "Right" { Resize "Increase Right"; } 18 + bind "H" { Resize "Decrease Left"; } 19 + bind "J" { Resize "Decrease Down"; } 20 + bind "K" { Resize "Decrease Up"; } 21 + bind "L" { Resize "Decrease Right"; } 22 + bind "=" "+" { Resize "Increase"; } 23 + bind "-" { Resize "Decrease"; } 24 + } 25 + pane { 26 + bind "Ctrl p" { SwitchToMode "Normal"; } 27 + bind "h" "Left" { MoveFocus "Left"; } 28 + bind "l" "Right" { MoveFocus "Right"; } 29 + bind "j" "Down" { MoveFocus "Down"; } 30 + bind "k" "Up" { MoveFocus "Up"; } 31 + bind "p" { SwitchFocus; } 32 + bind "n" { NewPane; SwitchToMode "Normal"; } 33 + bind "d" { NewPane "Down"; SwitchToMode "Normal"; } 34 + bind "r" { NewPane "Right"; SwitchToMode "Normal"; } 35 + bind "x" { CloseFocus; SwitchToMode "Normal"; } 36 + bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; } 37 + bind "z" { TogglePaneFrames; SwitchToMode "Normal"; } 38 + bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; } 39 + bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; } 40 + bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;} 41 + } 42 + move { 43 + bind "Ctrl h" { SwitchToMode "Normal"; } 44 + bind "n" "Tab" { MovePane; } 45 + bind "p" { MovePaneBackwards; } 46 + bind "h" "Left" { MovePane "Left"; } 47 + bind "j" "Down" { MovePane "Down"; } 48 + bind "k" "Up" { MovePane "Up"; } 49 + bind "l" "Right" { MovePane "Right"; } 50 + } 51 + tab { 52 + bind "Ctrl t" { SwitchToMode "Normal"; } 53 + bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; } 54 + bind "h" "Left" "Up" "k" { GoToPreviousTab; } 55 + bind "l" "Right" "Down" "j" { GoToNextTab; } 56 + bind "n" { NewTab; SwitchToMode "Normal"; } 57 + bind "x" { CloseTab; SwitchToMode "Normal"; } 58 + bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; } 59 + bind "b" { BreakPane; SwitchToMode "Normal"; } 60 + bind "]" { BreakPaneRight; SwitchToMode "Normal"; } 61 + bind "[" { BreakPaneLeft; SwitchToMode "Normal"; } 62 + bind "1" { GoToTab 1; SwitchToMode "Normal"; } 63 + bind "2" { GoToTab 2; SwitchToMode "Normal"; } 64 + bind "3" { GoToTab 3; SwitchToMode "Normal"; } 65 + bind "4" { GoToTab 4; SwitchToMode "Normal"; } 66 + bind "5" { GoToTab 5; SwitchToMode "Normal"; } 67 + bind "6" { GoToTab 6; SwitchToMode "Normal"; } 68 + bind "7" { GoToTab 7; SwitchToMode "Normal"; } 69 + bind "8" { GoToTab 8; SwitchToMode "Normal"; } 70 + bind "9" { GoToTab 9; SwitchToMode "Normal"; } 71 + bind "Tab" { ToggleTab; } 72 + } 73 + scroll { 74 + bind "Ctrl s" { SwitchToMode "Normal"; } 75 + bind "e" { EditScrollback; SwitchToMode "Normal"; } 76 + bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; } 77 + bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } 78 + bind "j" "Down" { ScrollDown; } 79 + bind "k" "Up" { ScrollUp; } 80 + bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } 81 + bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } 82 + bind "d" { HalfPageScrollDown; } 83 + bind "u" { HalfPageScrollUp; } 84 + // uncomment this and adjust key if using copy_on_select=false 85 + // bind "Alt c" { Copy; } 86 + } 87 + search { 88 + bind "Ctrl s" { SwitchToMode "Normal"; } 89 + bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } 90 + bind "j" "Down" { ScrollDown; } 91 + bind "k" "Up" { ScrollUp; } 92 + bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } 93 + bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } 94 + bind "d" { HalfPageScrollDown; } 95 + bind "u" { HalfPageScrollUp; } 96 + bind "n" { Search "down"; } 97 + bind "p" { Search "up"; } 98 + bind "c" { SearchToggleOption "CaseSensitivity"; } 99 + bind "w" { SearchToggleOption "Wrap"; } 100 + bind "o" { SearchToggleOption "WholeWord"; } 101 + } 102 + entersearch { 103 + bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; } 104 + bind "Enter" { SwitchToMode "Search"; } 105 + } 106 + renametab { 107 + bind "Ctrl c" { SwitchToMode "Normal"; } 108 + bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; } 109 + } 110 + renamepane { 111 + bind "Ctrl c" { SwitchToMode "Normal"; } 112 + bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; } 113 + } 114 + session { 115 + bind "Ctrl o" { SwitchToMode "Normal"; } 116 + bind "Ctrl s" { SwitchToMode "Scroll"; } 117 + bind "d" { Detach; } 118 + bind "w" { 119 + LaunchOrFocusPlugin "session-manager" { 120 + floating true 121 + move_to_focused_tab true 122 + }; 123 + SwitchToMode "Normal" 124 + } 125 + } 126 + tmux { 127 + bind "[" { SwitchToMode "Scroll"; } 128 + bind "Ctrl b" { Write 2; SwitchToMode "Normal"; } 129 + bind "\"" { NewPane "Down"; SwitchToMode "Normal"; } 130 + bind "%" { NewPane "Right"; SwitchToMode "Normal"; } 131 + bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; } 132 + bind "c" { NewTab; SwitchToMode "Normal"; } 133 + bind "," { SwitchToMode "RenameTab"; } 134 + bind "p" { GoToPreviousTab; SwitchToMode "Normal"; } 135 + bind "n" { GoToNextTab; SwitchToMode "Normal"; } 136 + bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; } 137 + bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; } 138 + bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; } 139 + bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; } 140 + bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; } 141 + bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; } 142 + bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; } 143 + bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; } 144 + bind "o" { FocusNextPane; } 145 + bind "d" { Detach; } 146 + bind "Space" { NextSwapLayout; } 147 + bind "x" { CloseFocus; SwitchToMode "Normal"; } 148 + } 149 + shared_except "locked" { 150 + bind "Ctrl g" { SwitchToMode "Locked"; } 151 + bind "Ctrl q" { Quit; } 152 + bind "Alt n" { NewPane; } 153 + bind "Alt i" { MoveTab "Left"; } 154 + bind "Alt o" { MoveTab "Right"; } 155 + bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; } 156 + bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; } 157 + bind "Alt j" "Alt Down" { MoveFocus "Down"; } 158 + bind "Alt k" "Alt Up" { MoveFocus "Up"; } 159 + bind "Alt =" "Alt +" { Resize "Increase"; } 160 + bind "Alt -" { Resize "Decrease"; } 161 + bind "Alt [" { PreviousSwapLayout; } 162 + bind "Alt ]" { NextSwapLayout; } 163 + } 164 + shared_except "normal" "locked" { 165 + bind "Enter" "Esc" { SwitchToMode "Normal"; } 166 + } 167 + shared_except "pane" "locked" { 168 + bind "Ctrl p" { SwitchToMode "Pane"; } 169 + } 170 + shared_except "resize" "locked" { 171 + bind "Ctrl n" { SwitchToMode "Resize"; } 172 + } 173 + shared_except "scroll" "locked" { 174 + bind "Ctrl s" { SwitchToMode "Scroll"; } 175 + } 176 + shared_except "session" "locked" { 177 + bind "Ctrl o" { SwitchToMode "Session"; } 178 + } 179 + shared_except "tab" "locked" { 180 + bind "Ctrl t" { SwitchToMode "Tab"; } 181 + } 182 + shared_except "move" "locked" { 183 + bind "Ctrl h" { SwitchToMode "Move"; } 184 + } 185 + shared_except "tmux" "locked" { 186 + bind "Ctrl b" { SwitchToMode "Tmux"; } 187 + } 188 + } 189 + 190 + plugins { 191 + tab-bar location="zellij:tab-bar" 192 + status-bar location="zellij:status-bar" 193 + strider location="zellij:strider" 194 + compact-bar location="zellij:compact-bar" 195 + session-manager location="zellij:session-manager" 196 + welcome-screen location="zellij:session-manager" { 197 + welcome_screen true 198 + } 199 + filepicker location="zellij:strider" { 200 + cwd "/" 201 + } 202 + } 203 + ''
+4 -1
nix/home/modules/cli/zellij/default.nix
··· 14 14 programs = { 15 15 zellij = { 16 16 enable = true; 17 + enableBashIntegration = false; 18 + enableFishIntegration = false; 19 + enableZshIntegration = false; 17 20 settings = { 18 21 session_serialization = true; 19 22 pane_viewport_serialization = true; ··· 34 37 # support something like programs.zellij.extraConfig, it'll have to do 35 38 home.file."${config.xdg.configHome}/zellij/config.kdl" = mkForce { 36 39 text = '' 37 - ${builtins.readFile ./config.kdl} 40 + ${import ./config.nix} 38 41 39 42 // Home Manager settings 40 43 ${toKDL {} config.programs.zellij.settings}
+1 -1
nix/home/modules/cli/zsh/default.nix
··· 17 17 extended = false; 18 18 ignoreDups = true; 19 19 }; 20 - initExtra = '' 20 + initContent = '' 21 21 export COLORTERM=truecolor 22 22 ''; 23 23 oh-my-zsh = {
+6
nix/home/modules/de/default.nix
··· 1 + { 2 + imports = [ 3 + ./gnome 4 + ./hyprland 5 + ]; 6 + }
+5
nix/home/modules/de/gnome/default.nix
··· 5 5 }: let 6 6 cfg = config.my.modules.de.gnome; 7 7 in { 8 + imports = [ 9 + ./extensions 10 + ./theming 11 + ]; 12 + 8 13 options.my.modules.de.gnome.enable = lib.mkEnableOption "GTK/GNOME Shell customizations"; 9 14 10 15 config = lib.mkIf cfg.enable (lib.mkMerge [
+4 -4
nix/home/modules/de/gnome/extensions/default.nix
··· 1 1 { 2 2 config, 3 - inputs, 4 3 lib, 5 4 pkgs, 6 5 ... 7 6 }: let 8 - inherit (inputs.self.lib.loaders) listNonDefault; 9 7 cfg = config.my.modules.de.gnome.extensions; 10 8 pre43 = lib.versionOlder pkgs.gnome-shell.version "43"; 11 9 in { 10 + imports = [ 11 + ./dash-to-panel.nix 12 + ]; 13 + 12 14 options.my.modules.de.gnome.extensions.enable = lib.mkEnableOption "GNOME Shell extensions"; 13 15 14 16 config = lib.mkIf cfg.enable { ··· 73 75 }; 74 76 }; 75 77 }; 76 - 77 - imports = listNonDefault ./.; 78 78 }
-1
nix/home/modules/de/gnome/theming/default.nix
··· 39 39 let 40 40 destinationPath = config.home.homeDirectory; 41 41 in { 42 - home.file."${destinationPath}/.face".source = profilePicture; 43 42 home.file."${destinationPath}/.wallpaper".source = wallpaper; 44 43 45 44 dconf.settings = {
-43
nix/home/modules/de/hyprland/bars/ags/default.nix
··· 1 - { 2 - config, 3 - lib, 4 - pkgs, 5 - ... 6 - }: let 7 - cfg = config.my.modules.de.hyprland.bars.ags; 8 - in { 9 - options.my.modules.de.hyprland.bars.ags.enable = lib.mkEnableOption "ags"; 10 - config = lib.mkIf cfg.enable { 11 - programs.ags.enable = true; 12 - home.sessionVariables = { 13 - GTK_THEME = "Adwaita-dark"; 14 - XCURSOR_THEME = "Adwaita"; 15 - }; 16 - systemd.user.services.ags = let 17 - ags = config.programs.ags.finalPackage; 18 - options = import ./options.nix {inherit config;}; 19 - optionsFile = pkgs.writeText "ags-config-json" (builtins.toJSON options); 20 - in { 21 - Install = { 22 - WantedBy = ["graphical-session.target"]; 23 - }; 24 - Service = { 25 - ExecStartPre = pkgs.writeShellScript "config-ags" '' 26 - mkdir -p ~/.cache/ags 27 - cp ${optionsFile} ~/.cache/ags/options.json 28 - chmod +w ~/.cache/ags/options.json 29 - ''; 30 - ExecStart = "${lib.getExe' ags (ags.pname or ags.name)}"; 31 - Restart = "always"; 32 - RestartSec = "5"; 33 - }; 34 - Unit = { 35 - After = ["graphical-session-pre.target"]; 36 - ConditionEnvironment = "WAYLAND_DISPLAY"; 37 - Description = "ags"; 38 - PartOf = ["graphical-session.target"]; 39 - X-Restart-Triggers = [ags optionsFile]; 40 - }; 41 - }; 42 - }; 43 - }
-105
nix/home/modules/de/hyprland/bars/ags/dotfiles/aylur/ags.nix
··· 1 - # Inspired by https://github.com/Aylur/dotfiles/blob/main/flake.nix 2 - { 3 - inputs, 4 - writeShellScript, 5 - system, 6 - stdenv, 7 - cage, 8 - swww, 9 - esbuild, 10 - dart-sass, 11 - fd, 12 - fzf, 13 - brightnessctl, 14 - accountsservice, 15 - slurp, 16 - wf-recorder, 17 - wl-clipboard, 18 - wayshot, 19 - swappy, 20 - hyprpicker, 21 - pavucontrol, 22 - networkmanager, 23 - gtk3, 24 - which, 25 - ... 26 - }: let 27 - name = "ags"; 28 - 29 - ags = inputs.ags18.packages.${system}.default.override { 30 - extraPackages = [accountsservice]; 31 - }; 32 - 33 - dependencies = [ 34 - which 35 - dart-sass 36 - fd 37 - fzf 38 - brightnessctl 39 - swww 40 - inputs.dotfiles-aylur.inputs.matugen.packages.${system}.default 41 - slurp 42 - wf-recorder 43 - wl-clipboard 44 - wayshot 45 - swappy 46 - hyprpicker 47 - pavucontrol 48 - networkmanager 49 - gtk3 50 - ]; 51 - 52 - addBins = list: builtins.concatStringsSep ":" (builtins.map (p: "${p}/bin") list); 53 - 54 - greeter = writeShellScript "greeter" '' 55 - export PATH=$PATH:${addBins dependencies} 56 - ${cage}/bin/cage -ds -m last ${ags}/bin/ags -- -c ${config}/greeter.js 57 - ''; 58 - 59 - desktop = writeShellScript name '' 60 - export PATH=$PATH:${addBins dependencies} 61 - ${ags}/bin/ags -b ${name} -c ${config}/config.js $@ 62 - ''; 63 - 64 - config = stdenv.mkDerivation { 65 - inherit name; 66 - src = "${inputs.dotfiles-aylur}/ags"; 67 - 68 - buildPhase = '' 69 - ${esbuild}/bin/esbuild \ 70 - --bundle ./main.ts \ 71 - --outfile=main.js \ 72 - --format=esm \ 73 - --external:resource://\* \ 74 - --external:gi://\* \ 75 - 76 - ${esbuild}/bin/esbuild \ 77 - --bundle ./greeter/greeter.ts \ 78 - --outfile=greeter.js \ 79 - --format=esm \ 80 - --external:resource://\* \ 81 - --external:gi://\* \ 82 - ''; 83 - 84 - installPhase = '' 85 - mkdir -p $out 86 - cp -r assets $out 87 - cp -r style $out 88 - cp -r greeter $out 89 - cp -r widget $out 90 - cp -f main.js $out/config.js 91 - cp -f greeter.js $out/greeter.js 92 - ''; 93 - }; 94 - in 95 - stdenv.mkDerivation { 96 - inherit name; 97 - src = config; 98 - 99 - installPhase = '' 100 - mkdir -p $out/bin 101 - cp -r . $out 102 - cp ${desktop} $out/bin/${name} 103 - cp ${greeter} $out/bin/greeter 104 - ''; 105 - }
-15
nix/home/modules/de/hyprland/bars/ags/dotfiles/aylur/default.nix
··· 1 - { 2 - config, 3 - inputs, 4 - lib, 5 - pkgs, 6 - ... 7 - }: let 8 - cfg = config.my.modules.de.hyprland.bars.ags.dotfiles.aylur; 9 - in { 10 - options.my.modules.de.hyprland.bars.ags.dotfiles.aylur.enable = lib.mkEnableOption "aylur's ags dotfiles"; 11 - config = lib.mkIf cfg.enable { 12 - programs.ags.package = pkgs.callPackage ./ags.nix {inherit inputs;}; 13 - home.file.".config/background".source = config.stylix.image; 14 - }; 15 - }
-88
nix/home/modules/de/hyprland/bars/ags/dotfiles/end-4/default.nix
··· 1 - { 2 - config, 3 - inputs, 4 - lib, 5 - pkgs, 6 - ... 7 - }: let 8 - pythonWithMaterialYouColor = pkgs.python311.withPackages (p: 9 - with p; [ 10 - (python3Packages.buildPythonPackage rec { 11 - pname = "materialyoucolor"; 12 - version = "2.0.9"; 13 - 14 - src = fetchPypi { 15 - inherit pname version; 16 - sha256 = "sha256-J35//h3tWn20f5ej6OXaw4NKnxung9q7m0E4Zf9PUw4="; 17 - }; 18 - 19 - doCheck = false; 20 - 21 - meta = { 22 - homepage = "https://github.com/T-Dynamos/materialyoucolor-python"; 23 - license = lib.licenses.mit; 24 - maintainers = with lib.maintainers; [lpchaim]; 25 - }; 26 - }) 27 - # material-color-utilities 28 - pywayland 29 - setproctitle 30 - ]); 31 - dependencies = 32 - (import ./deps.nix pkgs) 33 - ++ [ 34 - pythonWithMaterialYouColor 35 - pkgs.gnome-bluetooth 36 - pkgs.gnome.gnome-control-center 37 - ]; 38 - cfg = config.my.modules.de.hyprland.bars.ags.dotfiles.end-4; 39 - in { 40 - options.my.modules.de.hyprland.bars.ags.dotfiles.end-4 = { 41 - enable = lib.mkEnableOption "end-4's ags dotfiles"; 42 - enableFnKeys = lib.mkEnableOption "function key bindings"; 43 - }; 44 - config = lib.mkIf cfg.enable (lib.mkMerge [ 45 - { 46 - programs.ags = { 47 - package = inputs.ags.packages.${pkgs.system}.ags.overrideAttrs (prev: { 48 - nativeBuildInputs = 49 - prev.nativeBuildInputs 50 - ++ dependencies 51 - ++ (with pkgs; [ 52 - gjs 53 - wrapGAppsHook3 54 - ]); 55 - buildInputs = 56 - prev.buildInputs 57 - ++ dependencies 58 - ++ (with pkgs; [ 59 - linux-pam 60 - ]); 61 - }); 62 - configDir = pkgs.stdenvNoCC.mkDerivation { 63 - name = "ags-config"; 64 - src = inputs.dotfiles-end-4; 65 - buildPhase = '' 66 - mkdir -p $out 67 - cp -r $src/.config/ags/. $out/ 68 - chmod -R +w $out 69 - cp $out/scss/fallback/_material.scss \ 70 - $out/scss/_material.scss # TODO Workaround until I manage to generate this through a derivation 71 - ''; 72 - }; 73 - }; 74 - home.packages = dependencies; 75 - } 76 - (lib.mkIf cfg.enableFnKeys { 77 - wayland.windowManager.hyprland.settings = { 78 - binde = lib.mkAfter [ 79 - ", XF86AudioRaiseVolume, exec, ags run-js 'indicator.popup(1)'" 80 - ", XF86AudioLowerVolume, exec, ags run-js 'indicator.popup(1)'" 81 - ", XF86AudioMute, exec, ags run-js 'indicator.popup(1)'" 82 - ", XF86MonBrightnessDown, exec, ags run-js 'indicator.popup(1)'" 83 - ", XF86MonBrightnessUp, exec, ags run-js 'indicator.popup(1)'" 84 - ]; 85 - }; 86 - }) 87 - ]); 88 - }
-63
nix/home/modules/de/hyprland/bars/ags/dotfiles/end-4/deps.nix
··· 1 - p: 2 - with p; [ 3 - adw-gtk3 4 - axel 5 - bc 6 - blueberry 7 - brightnessctl 8 - cairomm 9 - cliphist 10 - cmake 11 - config.stylix.fonts.monospace.package 12 - coreutils 13 - curl 14 - dart-sass 15 - ddcutil 16 - fontconfig 17 - fuzzel 18 - gammastep 19 - gawk 20 - gjs 21 - gnome-keyring 22 - gnome-usage 23 - gojq 24 - gojq 25 - grim 26 - gtkmm3 27 - gtksourceview 28 - gtksourceview4 29 - gtksourceviewmm 30 - hyprpicker 31 - jetbrains-mono 32 - jq 33 - libcanberra-gtk3 34 - libdbusmenu-gtk3 35 - libsForQt5.qt5ct 36 - material-symbols 37 - meson 38 - networkmanager 39 - nodejs 40 - ollama 41 - pavucontrol 42 - playerctl 43 - polkit_gnome 44 - pywal 45 - ripgrep 46 - rsync 47 - slurp 48 - slurp 49 - swappy 50 - swww 51 - tesseract 52 - tinyxml2 53 - typescript 54 - webkitgtk 55 - webp-pixbuf-loader 56 - wf-recorder 57 - wget 58 - wireplumber 59 - wl-clipboard 60 - wlogout 61 - xdg-user-dirs 62 - ydotool 63 - ]
-58
nix/home/modules/de/hyprland/bars/ags/options.nix
··· 1 - {config, ...}: let 2 - inherit (config.lib.stylix.colors.withHashtag) base00 base0E; 3 - in { 4 - "autotheme" = false; 5 - "bar.battery.bar" = "hidden"; 6 - "bar.battery.percentage" = true; 7 - "bar.corners" = 10; 8 - "bar.date.format" = "%H:%M"; 9 - "bar.flatButtons" = true; 10 - "bar.layout.start" = [ 11 - # "launcher" 12 - "workspaces" 13 - "taskbar" 14 - "expander" 15 - "messages" 16 - ]; 17 - "bar.layout.center" = [ 18 - "date" 19 - ]; 20 - "bar.layout.end" = [ 21 - "media" 22 - "expander" 23 - "systray" 24 - # "colorpicker" 25 - # "screenrecord" 26 - "system" 27 - "battery" 28 - "powermenu" 29 - ]; 30 - "bar.media.direction" = "right"; 31 - "bar.media.monochrome" = true; 32 - "bar.media.preferred" = "spotify"; 33 - "bar.position" = "top"; 34 - "bar.powermenu.monochrome" = true; 35 - "bar.taskbar.exclusive" = true; 36 - "bar.taskbar.iconSize" = 0; 37 - "bar.taskbar.monochrome" = false; 38 - "bar.transparent" = true; 39 - "bar.workspaces.workspaces" = 10; 40 - "hyprland.gapsWhenOnly" = false; 41 - "osd.progress.pack.h" = "end"; 42 - "osd.progress.pack.v" = "center"; 43 - "osd.progress.vertical" = true; 44 - "overview.monochromeIcon" = false; 45 - "overview.scale" = 9; 46 - "overview.workspaces" = 0; 47 - "powermenu.labels" = true; 48 - "powermenu.layout" = "line"; 49 - "quicksettings.avatar.size" = 40; 50 - "quicksettings.media.coverSize" = 100; 51 - "quicksettings.media.monochromeIcon" = false; 52 - "theme.border.width" = 2; 53 - "theme.blur" = 0; 54 - "theme.dark.primary.bg" = "${base0E}"; 55 - "theme.dark.primary.fg" = "${base00}"; 56 - "theme.padding" = 8; 57 - "theme.spacing" = 2; 58 - }
+84
nix/home/modules/de/hyprland/bars/caelestia/default.nix
··· 1 + { 2 + config, 3 + inputs, 4 + lib, 5 + osConfig ? {}, 6 + ... 7 + }: let 8 + inherit (inputs.self.lib) isNvidia; 9 + cfg = config.my.modules.de.hyprland.bars.caelestia; 10 + in { 11 + options.my.modules.de.hyprland.bars.caelestia.enable = lib.mkEnableOption "Caelestia"; 12 + 13 + config = lib.mkIf cfg.enable { 14 + programs.caelestia = { 15 + enable = true; 16 + systemd = { 17 + enable = true; 18 + target = "graphical-session.target"; 19 + environment = []; 20 + }; 21 + settings = { 22 + appearance = { 23 + font.family.mono = config.stylix.fonts.monospace.name; 24 + font.size.scale = 0.9; 25 + padding.scale = 0.8; 26 + rounding.scale = 0.8; 27 + spacing.scale = 0.8; 28 + transparency.enabled = true; 29 + }; 30 + bar = { 31 + entries = 32 + builtins.map 33 + (id: { 34 + inherit id; 35 + enabled = true; 36 + }) 37 + [ 38 + "workspaces" 39 + "spacer" 40 + "activeWindow" 41 + "spacer" 42 + "clock" 43 + "tray" 44 + "statusIcons" 45 + "idleInhibitor" 46 + "power" 47 + ]; 48 + status = { 49 + showAudio = true; 50 + showBattery = true; 51 + showBluetooth = true; 52 + showKbLayout = false; 53 + showMicrophone = false; 54 + showNetwork = true; 55 + showLockStatus = true; 56 + }; 57 + }; 58 + border = { 59 + thickness = 5; 60 + rounding = 10; 61 + }; 62 + general.apps.terminal = ["kitty"]; 63 + launcher.showOnHover = true; 64 + notifs.actionOnClick = true; 65 + osd.enableMicrophone = true; 66 + paths.wallpaperDir = "${config.xdg.userDirs.pictures}/Wallpapers"; 67 + services = { 68 + audioIncrement = 0.05; 69 + gpuType = 70 + if (isNvidia osConfig) 71 + then "nvidia" 72 + else ""; 73 + useFahrenheit = false; 74 + useTwelveHourClock = false; 75 + session.vimKeyBinds = true; 76 + }; 77 + }; 78 + cli = { 79 + enable = true; 80 + settings.theme.enableGtk = false; 81 + }; 82 + }; 83 + }; 84 + }
+5
nix/home/modules/de/hyprland/bars/default.nix
··· 1 + { 2 + imports = [ 3 + ./caelestia 4 + ]; 5 + }
-54
nix/home/modules/de/hyprland/bars/waybar/default.nix
··· 1 - { 2 - config, 3 - lib, 4 - pkgs, 5 - ... 6 - }: let 7 - cfg = config.my.modules.de.hyprland.bars.waybar; 8 - in { 9 - options.my.modules.de.hyprland.bars.waybar.enable = lib.mkEnableOption "Waybar"; 10 - 11 - config = lib.mkIf cfg.enable { 12 - programs.waybar = { 13 - enable = true; 14 - settings = { 15 - mainBar = { 16 - layer = "top"; 17 - position = "top"; 18 - height = 32; 19 - # output = [ 20 - # "eDP-1" 21 - # "HDMI-A-1" 22 - # ]; 23 - modules-left = [ 24 - "hyprland/window" 25 - ]; 26 - modules-center = [ 27 - "hyprland/workspaces" 28 - ]; 29 - modules-right = [ 30 - "mpd" 31 - "battery" 32 - "tray" 33 - "wireplumber" 34 - "clock" 35 - ]; 36 - 37 - "hyprland/workspaces" = { 38 - disable-scroll = false; 39 - all-outputs = true; 40 - }; 41 - "custom/hello-from-waybar" = { 42 - format = "hello {}"; 43 - max-length = 40; 44 - interval = "once"; 45 - exec = pkgs.writeShellScript "hello-from-waybar" '' 46 - echo "from within waybar" 47 - ''; 48 - }; 49 - }; 50 - }; 51 - # style = []; 52 - }; 53 - }; 54 - }
+9 -2
nix/home/modules/de/hyprland/binds/default.nix
··· 13 13 mkIf 14 14 mkMerge 15 15 range 16 - setAttrByPath 17 16 ; 18 17 19 18 cfg = config.my.modules.de.hyprland.binds; ··· 64 63 "$mod, B, exec, firefox" 65 64 "$mod, E, exec, nautilus" 66 65 "CTRL ALT, L, exec, pidof hyprlock || hyprlock" 67 - ", Print, exec, pidof grimblast || grimblast copy area --freze" 66 + "$mod, F11, exec, pidof grimblast || grimblast copy output --notify" 67 + "$mod ALT, F11, exec, pidof grimblast || grimblast copy active --notify" 68 + "$mod SHIFT, F11, exec, pidof grimblast || ${pkgs.writeShellScript "grimblast-freeze" '' 69 + # Workaround for grimblast --freeze not actually freezing, see https://github.com/hyprwm/contrib/issues/37#issuecomment-1558933363 70 + hyprpicker -r -n -z & 71 + hyprpicker_pid=$! 72 + grimblast copy area --notify 73 + kill "$hyprpicker_pid" 74 + ''}" 68 75 69 76 # "$mod CTRL, Z, pseudo," # dwindle 70 77 "$mod, X, togglesplit," # dwindle
+13 -5
nix/home/modules/de/hyprland/default.nix
··· 8 8 inherit (inputs.self.lib.config) kb; 9 9 cfg = config.my.modules.de.hyprland; 10 10 in { 11 + imports = [ 12 + ./bars 13 + ./binds 14 + ./hypridle 15 + ./hyprlock 16 + ./launchers 17 + ./osd 18 + ./plugins 19 + ]; 20 + 11 21 options.my.modules.de.hyprland.enable = lib.mkEnableOption "Hyprland customizations"; 12 22 13 23 config = lib.mkIf cfg.enable (lib.mkMerge [ 14 24 { 15 25 my.modules.de.hyprland = { 16 - bars.ags.enable = lib.mkDefault cfg.enable; 17 - bars.ags.dotfiles.aylur.enable = lib.mkDefault cfg.bars.ags.enable; 18 - binds.enableFnKeys = lib.mkDefault cfg.bars.ags.enable; 19 - bars.waybar.enable = lib.mkDefault false; 26 + bars.caelestia.enable = lib.mkDefault cfg.enable; 27 + binds.enableFnKeys = lib.mkDefault cfg.bars.caelestia.enable; 20 28 binds.enable = lib.mkDefault cfg.enable; 21 29 launchers.rofi.enable = lib.mkDefault cfg.enable; 22 30 osd.swayosd.enable = lib.mkDefault false; ··· 206 214 hyprpaper 207 215 hyprpicker 208 216 wlinhibit 209 - xwaylandvideobridge 217 + kdePackages.xwaylandvideobridge 210 218 ]; 211 219 }; 212 220
+1 -7
nix/home/modules/de/hyprland/hyprlock/default.nix
··· 1 1 { 2 2 config, 3 - inputs, 4 3 lib, 5 - osConfig ? {}, 6 4 ... 7 5 }: let 8 - inherit (inputs.self.lib) isNvidia; 9 6 inherit (lib) mkIf; 10 7 cfg = config.my.modules.de.hyprland; 11 8 in ··· 17 14 inherit (config.lib.stylix) colors; 18 15 in { 19 16 background = { 20 - path = 21 - if (osConfig != {} && (isNvidia config)) 22 - then "${config.stylix.image}" 23 - else "screenshot"; 17 + path = "screenshot"; 24 18 blur_size = 3; 25 19 blur_passes = 2; 26 20 };
+5
nix/home/modules/de/hyprland/launchers/default.nix
··· 1 + { 2 + imports = [ 3 + ./rofi 4 + ]; 5 + }
+5
nix/home/modules/de/hyprland/osd/default.nix
··· 1 + { 2 + imports = [ 3 + ./swayosd 4 + ]; 5 + }
+21 -9
nix/home/modules/default.nix
··· 4 4 ... 5 5 }: let 6 6 inherit (inputs) self; 7 - inherit (inputs.self.lib.loaders) listDefault; 8 7 inherit (lib) mkDefault; 9 8 in { 10 9 imports = 11 - ["${self}/nix/shared"] 12 - ++ (listDefault ./.) 13 - ++ (with inputs; [ 14 - ags.homeManagerModules.default 10 + (with inputs; [ 11 + caelestia.homeManagerModules.default 15 12 chaotic.homeManagerModules.default 16 - nix-index-database.hmModules.nix-index 17 - nixvim.homeManagerModules.nixvim 13 + nix-index-database.homeModules.nix-index 14 + nix-flatpak.homeManagerModules.nix-flatpak 15 + nixvim.homeModules.nixvim 18 16 sops-nix.homeManagerModules.sops 19 17 spicetify-nix.homeManagerModules.default 20 - stylix.homeManagerModules.stylix 18 + stylix.homeModules.stylix 21 19 wayland-pipewire-idle-inhibit.homeModules.default 22 - ]); 20 + ]) 21 + ++ [ 22 + "${self}/nix/shared" 23 + ./cli 24 + ./de 25 + ./gui 26 + ./misc 27 + ./nix 28 + ./profiles 29 + ./scripts 30 + ./security 31 + ./syncthing 32 + ./theming 33 + ]; 23 34 24 35 my.modules = { 25 36 cli.enable = mkDefault true; 26 37 nix.enable = mkDefault true; 38 + scripts.enable = mkDefault true; 27 39 }; 28 40 29 41 programs.home-manager.enable = lib.mkDefault true;
-19
nix/home/modules/gaming/default.nix
··· 1 - { 2 - config, 3 - lib, 4 - osConfig ? {}, 5 - pkgs, 6 - ... 7 - }: let 8 - cfg = config.my.modules.gaming; 9 - in { 10 - options.my.modules.gaming.enable = lib.mkEnableOption "gaming tweaks"; 11 - config = lib.mkIf (cfg.enable && osConfig != {} && osConfig.programs.steam.enable) { 12 - home.file = 13 - lib.concatMapAttrs 14 - (_: package: { 15 - ".local/share/Steam/compatibilitytools.d/${package.version}".source = "${package.steamcompattool}"; 16 - }) 17 - pkgs.proton-ge-bin-versions; 18 - }; 19 - }
+1 -1
nix/home/modules/gui/chromium.nix
··· 21 21 [ 22 22 "--password-store=gnome" 23 23 ] 24 - ++ (lib.optionals (osConfig != {} && (isNvidia config)) [ 24 + ++ (lib.optionals (isNvidia osConfig) [ 25 25 "--disable-gpu-compositing" # @TODO Remove after NVIDIA figures this out 26 26 ]); 27 27 package = pkgs.brave;
+28 -6
nix/home/modules/gui/default.nix
··· 6 6 osConfig ? {}, 7 7 ... 8 8 }: let 9 - inherit (inputs.self.lib.loaders) listNonDefault; 10 9 cfg = config.my.modules.gui; 11 10 in { 12 - imports = listNonDefault ./.; 11 + imports = [ 12 + ./chromium.nix 13 + ./firefox.nix 14 + ./mangohud.nix 15 + ]; 13 16 14 17 options.my.modules.gui.enable = lib.mkEnableOption "gui apps"; 15 18 16 19 config = lib.mkIf cfg.enable (lib.mkMerge [ 17 20 { 18 21 home.packages = with pkgs; [ 19 - logseq 20 - spotify-tray 21 - zapzap 22 + bottles 23 + libreoffice-qt6-fresh 24 + obsidian 25 + signal-desktop 22 26 vesktop 27 + zapzap 23 28 ]; 24 29 30 + home.file = let 31 + inherit (inputs.self.lib.config) profilePicture wallpaper; 32 + in { 33 + "${config.home.homeDirectory}/.face".source = profilePicture; 34 + "${config.xdg.userDirs.pictures}/Wallpapers/${builtins.baseNameOf wallpaper}".source = wallpaper; 35 + }; 36 + 25 37 programs = { 26 38 vscode = { 27 39 enable = true; 28 40 package = pkgs.vscode.fhs; 29 - enableExtensionUpdateCheck = true; 41 + profiles.default.enableExtensionUpdateCheck = true; 30 42 mutableExtensionsDir = true; 31 43 }; 32 44 }; ··· 51 63 xdg.systemDirs.data = [ 52 64 "${config.home.homeDirectory}/.nix-profile/share/applications" 53 65 ]; 66 + 67 + services.flatpak = { 68 + overrides.global.Environment.XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons"; 69 + packages = [ 70 + "com.fightcade.Fightcade" 71 + "com.github.tchx84.Flatseal" 72 + ]; 73 + uninstallUnmanaged = false; 74 + update.auto.enable = true; 75 + }; 54 76 } 55 77 ]); 56 78 }
+5
nix/home/modules/misc/default.nix
··· 1 + { 2 + imports = [ 3 + ./llm 4 + ]; 5 + }
+4 -5
nix/home/modules/nix/default.nix
··· 16 16 inherit (nix) settings; 17 17 gc = { 18 18 automatic = osConfig == {}; 19 - frequency = "daily"; 19 + dates = "daily"; 20 20 options = "--delete-older-than 7d"; 21 21 }; 22 22 package = lib.mkForce (osConfig.nix.package or pkgs.nix); ··· 24 24 // (lib.optionalAttrs (osConfig != {}) { 25 25 inherit (osConfig.nix) extraOptions; 26 26 }); 27 - nixpkgs = lib.mkIf (osConfig == {} || !osConfig.home-manager.useGlobalPkgs) { 28 - config = 29 - nix.pkgs.config 30 - // {enableCuda = osConfig.nix.config.enableCuda or false;}; 27 + nixpkgs = lib.mkIf (osConfig == {}) { 28 + inherit (nix.pkgs) config; 29 + overlays = builtins.attrValues inputs.self.overlays; 31 30 }; 32 31 }; 33 32 }
+6
nix/home/modules/profiles/apps/default.nix
··· 1 + { 2 + imports = [ 3 + ./gui.nix 4 + ./media.nix 5 + ]; 6 + }
+6
nix/home/modules/profiles/de/default.nix
··· 1 + { 2 + imports = [ 3 + ./hyprland.nix 4 + ./gnome.nix 5 + ]; 6 + }
+9 -4
nix/home/modules/profiles/default.nix
··· 1 - {inputs, ...}: let 2 - inherit (inputs.self.lib.loaders) listNonDefault; 3 - in { 4 - imports = listNonDefault ./.; 1 + { 2 + imports = [ 3 + ./apps 4 + ./de 5 + ./graphical.nix 6 + ./llm 7 + ./standalone.nix 8 + ./wayland.nix 9 + ]; 5 10 }
+7
nix/home/modules/profiles/llm/default.nix
··· 1 + { 2 + imports = [ 3 + ./high.nix 4 + ./low.nix 5 + ./mid.nix 6 + ]; 7 + }
+1 -1
nix/home/modules/profiles/standalone.nix
··· 9 9 config = lib.mkIf cfg { 10 10 targets.genericLinux.enable = true; 11 11 12 - xdg.mime.enable = true; 12 + xdg.mime.enable = false; 13 13 xdg.systemDirs.data = [ 14 14 "${config.home.homeDirectory}/.nix-profile/share/applications" 15 15 ];
+18
nix/home/modules/profiles/wayland.nix
··· 1 + { 2 + config, 3 + lib, 4 + osConfig ? {}, 5 + ... 6 + }: let 7 + cfg = config.my.profiles.wayland; 8 + in { 9 + options.my.profiles.wayland = 10 + lib.mkEnableOption "wayland profile" 11 + // {default = osConfig.my.profiles.wayland or false;}; 12 + config = lib.mkIf cfg { 13 + services.cliphist = { 14 + enable = true; 15 + allowImages = true; 16 + }; 17 + }; 18 + }
-82
nix/home/modules/profiles/work.nix
··· 1 - { 2 - config, 3 - lib, 4 - pkgs, 5 - ... 6 - }: let 7 - cfg = config.my.profiles.work; 8 - in { 9 - options.my.profiles.work = lib.mkEnableOption "work profile"; 10 - config = lib.mkIf cfg { 11 - home.packages = with pkgs; [ 12 - nodePackages.clipboard-cli 13 - (pkgs.writeShellScriptBin "dev2beta" '' 14 - git checkout dev && git pull && git checkout beta && git pull 15 - git branch -D bugfix#dev2beta >/dev/null 2>&1 16 - git checkout -b bugfix#dev2beta && git merge dev --no-ff --no-edit 17 - '') 18 - (pkgs.writeShellScriptBin "dev2master" '' 19 - git checkout dev && git pull && git checkout master && git pull 20 - git branch -D hotfix#dev2master >/dev/null 2>&1 21 - git checkout -b hotfix#dev2master && git merge dev --no-ff --no-edit 22 - '') 23 - (pkgs.writeShellScriptBin "master2dev" '' 24 - git checkout master && git pull && git checkout dev && git pull 25 - git branch -D bugfix#master2dev >/dev/null 2>&1 26 - git checkout -b bugfix#master2dev && git merge master --no-ff --no-edit 27 - '') 28 - (pkgs.writeShellScriptBin "cleanslate" '' 29 - git fetch origin dev:dev && git checkout dev 30 - '') 31 - ]; 32 - 33 - programs.zsh.initExtra = '' 34 - export NVM_DIR="$HOME/.nvm" 35 - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 36 - export PATH="$PATH:$HOME/Lucas/Bin"; 37 - ''; 38 - programs.tmux.extraConfig = lib.optionalString config.programs.nushell.enable '' 39 - set-option -g default-shell ${config.programs.nushell.package}/bin/nu 40 - ''; 41 - 42 - my.modules = { 43 - cli.enable = true; 44 - cli.git.enable = true; 45 - cli.hishtory.enable = false; 46 - de.gnome.theming.enableGnomeShellTheme = false; 47 - }; 48 - 49 - programs.helix.languages.language = [ 50 - { 51 - name = "php"; 52 - language-id = "php"; 53 - debugger = { 54 - name = "vscode-php-debug"; 55 - transport = "stdio"; 56 - command = "node"; 57 - args = ["~/.vscode/extensions/xdebug.php-debug-1.34.0/out/phpDebug.js"]; 58 - }; 59 - debugger.templates = [ 60 - { 61 - name = "Listen for Xdebug"; 62 - request = "launch"; 63 - completion = ["ignored"]; 64 - args = {}; 65 - } 66 - ]; 67 - } 68 - ]; 69 - 70 - dconf.settings = { 71 - "org/gnome/desktop/interface" = { 72 - enable-hot-corners = true; 73 - }; 74 - "org/gnome/desktop/wm/keybindings" = { 75 - switch-applications = []; 76 - switch-applications-backward = []; 77 - switch-windows = ["<Alt>Tab"]; 78 - switch-windows-backward = ["<Shift><Alt>Tab"]; 79 - }; 80 - }; 81 - }; 82 - }
+39
nix/home/modules/scripts/default.nix
··· 1 + { 2 + config, 3 + inputs, 4 + lib, 5 + pkgs, 6 + ... 7 + }: let 8 + inherit (lib) getExe; 9 + cfg = config.my.modules.scripts; 10 + in { 11 + options.my.modules.scripts = { 12 + enable = lib.mkEnableOption "scripts"; 13 + byName = lib.mkOption { 14 + default = inputs.self.legacyPackages.${pkgs.system}.scripts; 15 + }; 16 + }; 17 + config = lib.mkIf cfg.enable { 18 + home.packages = builtins.attrValues cfg.byName; 19 + home.file = 20 + lib.mkIf config.programs.carapace.enable 21 + (lib.pipe cfg.byName [ 22 + (lib.filterAttrs 23 + (_: script: lib.strings.hasInfix "/bin/nu" script.interpreter)) 24 + (lib.concatMapAttrs 25 + (name: script: { 26 + ".config/carapace/specs/${name}.yaml".source = 27 + pkgs.runCommand 28 + "nushell-carapace-spec-${name}" 29 + {buildInputs = [cfg.byName.nu-generate-carapace-spec cfg.byName.nu-inspect];} 30 + '' 31 + cat '${getExe script}' \ 32 + | nu-inspect --name $name \ 33 + | nu-generate-carapace-spec \ 34 + > $out 35 + ''; 36 + })) 37 + ]); 38 + }; 39 + }
+25
nix/home/modules/security/default.nix
··· 1 + { 2 + config, 3 + lib, 4 + osConfig ? {}, 5 + pkgs, 6 + ... 7 + }: let 8 + cfg = config.my.security; 9 + in { 10 + options.my.security = { 11 + enable = 12 + lib.mkEnableOption "security settings" 13 + // {default = osConfig.my.security.enable or true;}; 14 + }; 15 + config = lib.mkIf cfg.enable { 16 + home.packages = 17 + (with pkgs; [ 18 + yubikey-manager 19 + yubikey-personalization 20 + ]) 21 + ++ lib.optionals config.my.profiles.graphical [ 22 + pkgs.yubioath-flutter 23 + ]; 24 + }; 25 + }
-1
nix/home/modules/syncthing/default.nix
··· 4 4 osConfig ? {}, 5 5 ... 6 6 }: let 7 - # inherit (inputs.home-manager.lib) hm; 8 7 inherit (pkgs) syncthingtray; 9 8 syncthing = osConfig.services.syncthing.package; 10 9 in
+11 -1
nix/home/modules/theming/default.nix
··· 1 1 { 2 2 config, 3 3 lib, 4 + pkgs, 4 5 ... 5 6 }: let 6 7 matchTheme = theme: ··· 10 11 ]; 11 12 in 12 13 lib.mkIf config.stylix.enable (lib.mkMerge [ 13 - {stylix.targets.mangohud.enable = false;} 14 + { 15 + home.packages = with pkgs; [ 16 + noto-fonts 17 + noto-fonts-cjk-sans 18 + noto-fonts-emoji 19 + ]; 20 + stylix.targets.mangohud.enable = false; 21 + stylix.targets.firefox.profileNames = ["default"]; 22 + stylix.targets.vscode.profileNames = ["default"]; 23 + } 14 24 (lib.mkIf (matchTheme "catppuccin" != null) { 15 25 programs.helix.settings.theme = lib.mkForce "catppuccin_mocha"; 16 26 })
+2 -2
nix/lib/config.nix
··· 10 10 ]; 11 11 in { 12 12 name.user = "lpchaim"; 13 - name.full = "Lucas Chaim"; 13 + name.full = "Luna Perroni"; 14 14 email.main = "lpchaim@proton.me"; 15 15 flake.path = "~/.config/nixos"; 16 16 repo.main = "https://github.lpcha.im"; ··· 20 20 nix = { 21 21 pkgs.config = { 22 22 allowUnfree = true; 23 - permittedInsecurePackages = ["electron-27.3.11"]; 23 + permittedInsecurePackages = ["electron-27.3.11" "qtwebengine-5.15.19"]; 24 24 }; 25 25 settings = { 26 26 accept-flake-config = true;
+2 -2
nix/lib/default.nix
··· 1 1 {inputs, ...} @ topLevelArgs: let 2 2 inherit (inputs.nixpkgs) lib; 3 3 args = topLevelArgs // {inherit lib;}; 4 - overlays = import "${inputs.self}/nix/overlays" {inherit inputs;}; 4 + overlays = builtins.attrValues inputs.self.overlays; 5 5 in { 6 6 config = import ./config.nix args; 7 7 loaders = import ./loaders.nix args; ··· 20 20 isNvidia = config: let 21 21 drivers = config.services.xserver.videoDrivers or []; 22 22 in 23 - lib.elem "nvidia" drivers; 23 + builtins.elem "nvidia" drivers; 24 24 }
+79 -14
nix/lib/loaders.nix
··· 3 3 lib, 4 4 ... 5 5 }: rec { 6 + # Reads files similarly to builtins.readDir 7 + read = { 8 + path, 9 + filterFn ? (x: true), 10 + recursive ? false, 11 + }: 12 + lib.pipe path [ 13 + (path: 14 + if recursive 15 + then 16 + (inputs.haumea.lib.load { 17 + src = path; 18 + loader = inputs.haumea.lib.loaders.path; 19 + }) 20 + else 21 + (lib.pipe path [ 22 + builtins.readDir 23 + (builtins.mapAttrs (name: type: 24 + if (type == "directory" && builtins.pathExists (path + /${name}/default.nix)) 25 + then (path + /${name}/default.nix) 26 + else (path + /${name}))) 27 + (lib.concatMapAttrs (name: path: {${lib.removeSuffix ".nix" name} = path;})) 28 + ])) 29 + (attr: builtins.removeAttrs attr ["default" "default.nix"]) 30 + (lib.filterAttrsRecursive (_: path: filterFn path)) 31 + ]; 32 + 6 33 # Lists files as paths 7 34 list = { 8 35 path, 9 36 filterFn ? (x: true), 37 + recursive ? false, 10 38 }: 11 39 lib.pipe path [ 12 - (path: 13 - inputs.haumea.lib.load { 14 - src = path; 15 - loader = inputs.haumea.lib.loaders.path; 16 - }) 17 - (attr: builtins.removeAttrs attr ["default"]) 40 + (path: read {inherit path recursive;}) 18 41 (lib.collect builtins.isPath) 19 42 (builtins.filter (path: filterFn path)) 20 43 (builtins.map (path: ··· 32 55 filterFn = lib.hasSuffix "default.nix"; 33 56 }; 34 57 58 + # Lists files ending in default.nix recursively 59 + listDefaultRecursive = path: 60 + list { 61 + inherit path; 62 + filterFn = lib.hasSuffix "default.nix"; 63 + recursive = true; 64 + }; 65 + 35 66 # Lists files not ending in default.nix 36 67 listNonDefault = path: 37 68 list { ··· 39 70 filterFn = path: ! (lib.hasSuffix "default.nix" path); 40 71 }; 41 72 73 + # Lists files not ending in default.nix 74 + listNonDefaultRecursive = path: 75 + list { 76 + inherit path; 77 + filterFn = path: ! (lib.hasSuffix "default.nix" path); 78 + recursive = true; 79 + }; 80 + 81 + # Imports modules ending in default.nix 82 + importDefault = path: args: 83 + lib.pipe path [ 84 + listDefault 85 + (builtins.map (path: import path args)) 86 + ]; 87 + 88 + # Imports modules not ending in default.nix 89 + importNonDefault = path: args: 90 + lib.pipe path [ 91 + listNonDefault 92 + (builtins.map (path: import path args)) 93 + ]; 94 + 42 95 # Loads modules while preserving directory structure 43 96 load = { 44 97 path, 45 98 args, 46 99 filterFn ? (x: true), 100 + loader ? inputs.haumea.lib.loaders.default, 47 101 }: 48 102 lib.pipe path [ 49 103 (path: 50 104 inputs.haumea.lib.load { 105 + inherit loader; 51 106 src = path; 52 107 inputs = args; 53 108 }) ··· 68 123 filterFn = path: ! (lib.hasSuffix "default.nix" path); 69 124 }; 70 125 71 - # Imports modules ending in default.nix 72 - importDefault = path: args: 126 + # Runs callPackage on files ending in default.nix, always recursive 127 + callPackageDefault = path: pkgs: 73 128 lib.pipe path [ 74 - listDefault 75 - (builtins.map (path: import path args)) 129 + (path: 130 + read { 131 + inherit path; 132 + filterFn = lib.hasSuffix "default.nix"; 133 + }) 134 + (builtins.mapAttrs (_: path: 135 + lib.callPackageWith (builtins.removeAttrs pkgs ["root"]) path {})) 76 136 ]; 77 137 78 - # Imports modules not ending in default.nix 79 - importNonDefault = path: args: 138 + # Runs callPackage on files not ending in default.nix, always recursive 139 + callPackageNonDefault = path: pkgs: 80 140 lib.pipe path [ 81 - listNonDefault 82 - (builtins.map (path: import path args)) 141 + (path: 142 + read { 143 + inherit path; 144 + filterFn = path: ! (lib.hasSuffix "default.nix" path); 145 + }) 146 + (builtins.mapAttrs (_: path: 147 + lib.callPackageWith (builtins.removeAttrs pkgs ["root"]) path {})) 83 148 ]; 84 149 }
-32
nix/lib/shell.nix
··· 1 - rec { 2 - makeDevShell = { 3 - pkgs, 4 - mkShell, 5 - packages ? [], 6 - shellHook ? "", 7 - ... 8 - }: 9 - mkShell { 10 - inherit packages shellHook; 11 - }; 12 - makeDevShellWithDefaults = { 13 - pkgs, 14 - mkShell, 15 - packages ? [], 16 - shellHook ? "", 17 - ... 18 - }: 19 - makeDevShell { 20 - inherit pkgs mkShell shellHook; 21 - packages = 22 - packages 23 - ++ (with pkgs; [ 24 - age 25 - alejandra 26 - nil 27 - nixpkgs-fmt 28 - ssh-to-age 29 - sops 30 - ]); 31 - }; 32 - }
+1 -1
nix/lib/storage/ntfs.nix
··· 32 32 } 33 33 // lib.optionalAttrs fsck (mkPreMountFsck { 34 34 inherit device mountPoint; 35 - command = "${inputs.self.pkgs.${system}.ntfs3g}/bin/ntfsfix ${device} --clear-dirty"; 35 + command = "${inputs.self.legacyPackages.${system}.pkgs.ntfs3g}/bin/ntfsfix ${device} --clear-dirty"; 36 36 }); 37 37 }
+5 -4
nix/modules/default.nix
··· 1 - args: let 2 - inherit ((import ../lib args).loaders) listNonDefault; 3 - in { 4 - imports = listNonDefault ./.; 1 + {...}: { 2 + imports = [ 3 + ./ezConfigs.nix 4 + ./gitHooks.nix 5 + ]; 5 6 }
+1 -1
nix/modules/ezConfigs.nix
··· 26 26 configurationsDirectory = "${root}/home/configs"; 27 27 modulesDirectory = "${root}/home/modules"; 28 28 users."cheina@pc079".standalone = { 29 + inherit (self.legacyPackages.x86_64-linux) pkgs; 29 30 enable = true; 30 - pkgs = self.pkgs.x86_64-linux; 31 31 }; 32 32 }; 33 33 };
+2 -1
nix/modules/gitHooks.nix
··· 7 7 config, 8 8 system, 9 9 pkgs, 10 + self', 10 11 ... 11 12 }: let 12 - pkgs = inputs.self.pkgs.${system}; 13 + inherit (self'.legacyPackages) pkgs; 13 14 in { 14 15 pre-commit = { 15 16 inherit pkgs;
+3 -1
nix/nixos/configs/desktop/default.nix
··· 15 15 }; 16 16 my.gaming.enable = true; 17 17 my.networking.tailscale.trusted = true; 18 - my.security.secureboot.enable = true; 18 + my.security.secureboot.enable = false; 19 + 20 + networking.interfaces.enp6s0.wakeOnLan.enable = true; 19 21 20 22 system.stateVersion = "23.11"; 21 23 home-manager.users.${name.user}.home.stateVersion = "24.11";
+1 -1
nix/nixos/configs/laptop/default.nix
··· 13 13 }; 14 14 my.gaming.steam.enable = true; 15 15 my.networking.tailscale.trusted = true; 16 - my.security.secureboot.enable = true; 16 + my.security.secureboot.enable = false; 17 17 18 18 system.stateVersion = "23.11"; 19 19 home-manager.users.${name.user}.home.stateVersion = "23.05";
+1 -1
nix/nixos/modules/boot/default.nix
··· 25 25 }; 26 26 initrd.systemd.enable = true; 27 27 plymouth = { 28 - enable = true; 28 + enable = mkDefault false; 29 29 theme = mkDefault "breeze"; 30 30 }; 31 31 kernelParams = ["splash" "quiet" "btusb.enable_autosuspend=n"];
+23 -5
nix/nixos/modules/default.nix
··· 6 6 ... 7 7 }: let 8 8 inherit (inputs) self; 9 - inherit (inputs.self.lib.loaders) listDefault; 10 9 inherit (lib) mkDefault; 11 10 in { 12 11 imports = 13 - ["${self}/nix/shared"] 14 - ++ (listDefault ./.) 15 - ++ (with inputs; [ 12 + (with inputs; [ 16 13 chaotic.nixosModules.default 17 14 disko.nixosModules.disko 18 15 home-manager.nixosModules.home-manager ··· 22 19 nur.modules.nixos.default 23 20 sops-nix.nixosModules.sops 24 21 stylix.nixosModules.stylix 25 - ]); 22 + ]) 23 + ++ [ 24 + "${self}/nix/shared" 25 + ./boot 26 + ./desktop 27 + ./gaming 28 + ./hardware 29 + ./kdeconnect 30 + ./locale 31 + ./networking 32 + ./nix 33 + ./profiles 34 + ./programs 35 + ./secrets 36 + ./secureboot 37 + ./security 38 + ./services 39 + ./syncthing 40 + ./tailscale 41 + ./theming 42 + ./zram 43 + ]; 26 44 27 45 my.profiles = { 28 46 graphical = mkDefault true;
+4 -4
nix/nixos/modules/desktop/default.nix
··· 1 - {inputs, ...}: let 2 - inherit (inputs.self.lib.loaders) listNonDefault; 3 - in { 4 - imports = listNonDefault ./.; 1 + { 2 + imports = [ 3 + ./swayosd.nix 4 + ]; 5 5 }
+25 -20
nix/nixos/modules/gaming/default.nix
··· 15 15 lib.mkEnableOption "steam tweaks" 16 16 // {default = config.my.gaming.enable;}; 17 17 }; 18 + 18 19 config = lib.mkMerge [ 19 20 (lib.mkIf cfg.enable { 20 21 environment.systemPackages = with pkgs; [ 21 - # osu-stable # @TODO Reenable when I figure out why nix-gaming's cachix doesn't ever seem to work 22 - parsec-bin 23 22 lutris 23 + osu-lazer-bin 24 + parsec-bin 24 25 # wine-discord-ipc-bridge 25 - (pkgs.wrapOBS { 26 - plugins = ( 26 + protonup-qt 27 + ]; 28 + 29 + programs = { 30 + gamemode = { 31 + enable = true; 32 + enableRenice = true; 33 + }; 34 + gamescope = { 35 + enable = true; 36 + capSysNice = true; 37 + }; 38 + obs-studio = { 39 + enable = true; 40 + enableVirtualCamera = true; 41 + plugins = 27 42 (with pkgs.obs-studio-plugins; [ 28 43 input-overlay 29 44 obs-pipewire-audio-capture ··· 33 48 wlrobs 34 49 ]) 35 50 ++ (lib.optionals (isNvidia config) [ 36 - pkgs.obs-studio-plugins.obs-nvfbc 37 - ]) 38 - ); 39 - }) 40 - ]; 51 + # pkgs.obs-studio-plugins.obs-nvfbc 52 + ]); 53 + }; 54 + }; 41 55 42 - services.pipewire.lowLatency.enable = true; 56 + security.wrappers.gamescope.source = lib.mkForce (lib.getBin pkgs.gamescope); 43 57 security.rtkit.enable = true; # make pipewire realtime-capable 44 58 45 - programs.gamemode = { 46 - enable = true; 47 - enableRenice = true; 48 - }; 49 - programs.gamescope = { 50 - enable = true; 51 - capSysNice = true; 52 - }; 53 - security.wrappers.gamescope.source = lib.mkForce (lib.getBin pkgs.gamescope); 59 + services.pipewire.lowLatency.enable = true; 54 60 55 61 users.extraUsers.${name.user}.extraGroups = ["gamemode"]; 56 62 }) ··· 69 75 OBS_VKCAPTURE = true; 70 76 }; 71 77 }; 72 - extraCompatPackages = builtins.attrValues pkgs.proton-ge-bin-versions; 73 78 gamescopeSession.enable = true; 74 79 remotePlay.openFirewall = true; 75 80 dedicatedServer.openFirewall = true;
+4 -4
nix/nixos/modules/nix/default.nix
··· 4 4 lib, 5 5 ... 6 6 }: let 7 - inherit (inputs.self.lib) isNvidia; 8 7 inherit (inputs.self.lib.config) nix; 9 8 cfg = config.my.modules.nix; 10 9 in { ··· 20 19 !nhCfg.enable || !nhCfg.clean.enable; 21 20 dates = "weekly"; 22 21 }; 23 - nixpkgs.config = 24 - nix.pkgs.config 25 - // {enableCuda = isNvidia config;}; 22 + nixpkgs = { 23 + inherit (nix.pkgs) config; 24 + overlays = builtins.attrValues inputs.self.overlays; 25 + }; 26 26 }; 27 27 }
+7
nix/nixos/modules/profiles/de/default.nix
··· 1 + { 2 + imports = [ 3 + ./gnome.nix 4 + ./hyprland.nix 5 + ./plasma.nix 6 + ]; 7 + }
+2 -2
nix/nixos/modules/profiles/de/gnome.nix
··· 10 10 options.my.profiles.de.gnome = lib.mkEnableOption "gnome profile"; 11 11 config = lib.mkIf cfg { 12 12 services.xserver.enable = true; 13 - services.xserver.displayManager.gdm.enable = true; 14 - services.xserver.desktopManager.gnome.enable = true; 13 + services.displayManager.gdm.enable = true; 14 + services.desktopManager.gnome.enable = true; 15 15 16 16 environment.gnome.excludePackages = let 17 17 getPackages = p: (builtins.filter (package: p ? package) (with p; [
+2 -2
nix/nixos/modules/profiles/de/hyprland.nix
··· 26 26 hardware.graphics = { 27 27 enable = true; 28 28 enable32Bit = true; 29 - package = flakeNixpkgs.mesa.drivers; 30 - package32 = flakeNixpkgs.pkgsi686Linux.mesa.drivers; 29 + package = flakeNixpkgs.mesa; 30 + package32 = flakeNixpkgs.pkgsi686Linux.mesa; 31 31 }; 32 32 security = { 33 33 pam.services.hyprlock = {};
+12 -4
nix/nixos/modules/profiles/default.nix
··· 1 - {inputs, ...}: let 2 - inherit (inputs.self.lib.loaders) listNonDefault; 3 - in { 4 - imports = listNonDefault ./.; 1 + { 2 + imports = [ 3 + ./de 4 + ./formfactor 5 + ./graphical.nix 6 + ./hardware 7 + ./kernel.nix 8 + ./pipewire.nix 9 + ./users.nix 10 + ./virtualisation.nix 11 + ./wayland.nix 12 + ]; 5 13 }
+6
nix/nixos/modules/profiles/formfactor/default.nix
··· 1 + { 2 + imports = [ 3 + ./desktop.nix 4 + ./laptop.nix 5 + ]; 6 + }
+1 -2
nix/nixos/modules/profiles/formfactor/desktop.nix
··· 19 19 wayvnc 20 20 ]; 21 21 22 - boot.kernelPackages = pkgs.linuxPackages_cachyos; 23 - services.scx.enable = true; # By default uses scx_rustland scheduler 22 + boot.kernelPackages = pkgs.linuxPackages_zen; 24 23 25 24 hardware.graphics.enable = true; 26 25 hardware.keyboard.qmk.enable = true;
+9
nix/nixos/modules/profiles/graphical.nix
··· 1 1 { 2 2 config, 3 3 lib, 4 + pkgs, 4 5 ... 5 6 }: let 6 7 cfg = config.my.profiles.graphical; 7 8 in { 8 9 options.my.profiles.graphical = lib.mkEnableOption "graphical profile"; 9 10 config = { 11 + boot.plymouth.enable = true; 12 + services.flatpak.enable = true; 10 13 services.xserver.enable = cfg; 14 + xdg.portal = { 15 + enable = true; 16 + config.common.default = lib.mkDefault ["hyprland" "wlr" "gtk"]; 17 + extraPortals = lib.mkDefault [pkgs.xdg-desktop-portal-gtk]; 18 + xdgOpenUsePortal = true; 19 + }; 11 20 }; 12 21 }
+6
nix/nixos/modules/profiles/hardware/default.nix
··· 1 + { 2 + imports = [ 3 + ./gpu 4 + ./rgb.nix 5 + ]; 6 + }
+5
nix/nixos/modules/profiles/hardware/gpu/default.nix
··· 1 + { 2 + imports = [ 3 + ./nvidia.nix 4 + ]; 5 + }
+9 -2
nix/nixos/modules/profiles/hardware/gpu/nvidia.nix
··· 7 7 in { 8 8 options.my.profiles.hardware.gpu.nvidia = lib.mkEnableOption "nvidia profile"; 9 9 config = lib.mkIf cfg { 10 - boot.kernelParams = ["nvidia.NVreg_PreserveVideoMemoryAllocations=1"]; 10 + boot.kernelParams = [ 11 + "nvidia.NVreg_PreserveVideoMemoryAllocations=1" 12 + "nvidia.NVreg_TemporaryFilePath=/var/tmp" 13 + "nvidia.NVreg_UsePageAttributeTable=1" 14 + ]; 11 15 12 16 hardware = { 13 17 graphics.enable = true; ··· 19 23 powerManagement.enable = true; 20 24 }; 21 25 }; 26 + services.xserver.videoDrivers = ["nvidia"]; 22 27 23 - services.xserver.videoDrivers = ["nvidia"]; 28 + nixpkgs.config.cudaSupport = true; 29 + virtualisation.docker.enableNvidia = true; 30 + virtualisation.docker.daemon.settings.features.cdi = true; 24 31 }; 25 32 }
+2 -4
nix/nixos/modules/profiles/pipewire.nix
··· 8 8 in { 9 9 options.my.profiles.pipewire = lib.mkEnableOption "pipewire profile"; 10 10 config = lib.mkIf cfg { 11 - hardware = { 12 - pulseaudio.enable = false; 13 - enableAllFirmware = true; 14 - }; 11 + hardware.enableAllFirmware = true; 15 12 security.rtkit.enable = true; 16 13 services.pipewire = { 17 14 enable = true; ··· 22 19 jack.enable = true; 23 20 wireplumber.enable = true; 24 21 }; 22 + services.pulseaudio.enable = false; 25 23 }; 26 24 }
-2
nix/nixos/modules/profiles/virtualisation.nix
··· 5 5 pkgs, 6 6 ... 7 7 }: let 8 - inherit (inputs.self.lib) isNvidia; 9 8 cfg = config.my.profiles.virtualisation; 10 9 in { 11 10 options.my.profiles.virtualisation = lib.mkEnableOption "virtualisation profile"; ··· 17 16 docker = { 18 17 enable = true; 19 18 enableOnBoot = true; 20 - enableNvidia = isNvidia config; 21 19 }; 22 20 }; 23 21 };
+1 -1
nix/nixos/modules/profiles/wayland.nix
··· 12 12 lib.mkEnableOption "wayland profile" 13 13 // {default = config.my.profiles.graphical;}; 14 14 config = lib.mkIf cfg { 15 - services.xserver.displayManager.gdm.wayland = true; 15 + services.displayManager.gdm.wayland = true; 16 16 programs.xwayland.enable = true; 17 17 18 18 environment.sessionVariables.NIXOS_OZONE_WL = "1";
+9 -7
nix/nixos/modules/secrets/atuin.nix
··· 1 1 { 2 2 config, 3 3 inputs, 4 + lib, 4 5 pkgs, 5 6 ... 6 7 }: let 7 8 inherit (inputs.self.lib.config) name; 8 9 in { 9 - sops.secrets = let 10 - owner = name.user; 11 - in { 12 - "atuin/username" = {inherit owner;}; 13 - "atuin/password" = {inherit owner;}; 14 - "atuin/key" = {inherit owner;}; 15 - }; 10 + sops.secrets = 11 + lib.genAttrs 12 + [ 13 + "atuin/key" 14 + "atuin/password" 15 + "atuin/username" 16 + ] 17 + (_: {owner = name.user;}); 16 18 environment = { 17 19 systemPackages = [ 18 20 (pkgs.writeShellScriptBin "atuin-init" ''
+5 -4
nix/nixos/modules/secrets/default.nix
··· 1 - {inputs, ...}: let 2 - inherit (inputs.self.lib.loaders) listNonDefault; 3 - in { 4 - imports = listNonDefault ./.; 1 + {inputs, ...}: { 2 + imports = [ 3 + ./atuin.nix 4 + ./extraNixOptions.nix 5 + ]; 5 6 6 7 sops = { 7 8 defaultSopsFile = inputs.self + /secrets/default.yaml;
+5 -10
nix/nixos/modules/security/default.nix
··· 77 77 packages = [pkgs.yubikey-personalization]; 78 78 }; 79 79 }; 80 - environment.systemPackages = 81 - (with pkgs; [ 82 - gnupg 83 - pam_u2f 84 - pamtester 85 - yubikey-personalization 86 - ]) 87 - ++ lib.optionals config.my.profiles.graphical [ 88 - pkgs.yubioath-flutter 89 - ]; 80 + environment.systemPackages = with pkgs; [ 81 + gnupg 82 + pam_u2f 83 + pamtester 84 + ]; 90 85 sops.secrets.u2f-mappings = { 91 86 group = "wheel"; 92 87 mode = "0440";
+1 -1
nix/nixos/modules/services/default.nix
··· 30 30 gvfs.enable = true; 31 31 libinput.enable = true; 32 32 ollama = { 33 - enable = true; 33 + enable = mkDefault false; 34 34 openFirewall = true; 35 35 host = "127.0.0.1"; 36 36 port = 11434;
+3 -5
nix/nixos/modules/steamos.nix
··· 21 21 autoStart = true; 22 22 desktopSession = "gnome"; 23 23 }; 24 - steamos = { 25 - enableMesaPatches = true; 26 - useSteamOSConfig = true; 27 - }; 24 + steamos.useSteamOSConfig = true; 28 25 decky-loader.enable = true; 29 26 devices.steamdeck = { 30 27 enable = true; 31 28 autoUpdate = true; 32 29 enableGyroDsuService = true; 30 + enableVendorDrivers = true; 33 31 }; 34 32 }; 35 33 36 34 services = lib.mkIf config.jovian.steam.autoStart { 37 35 displayManager.sddm.enable = lib.mkForce false; 38 - xserver.displayManager.gdm.enable = lib.mkForce false; 36 + displayManager.gdm.enable = lib.mkForce false; 39 37 }; 40 38 time = { 41 39 hardwareClockInLocalTime = lib.mkForce false;
+30 -14
nix/nixos/modules/syncthing/default.nix
··· 9 9 sopsFile = "${inputs.self}/secrets/hosts/${config.networking.hostName}.yaml"; 10 10 in 11 11 lib.mkIf (lib.pathExists sopsFile) { 12 - sops.secrets = { 13 - "syncthing/cert" = { 14 - inherit sopsFile; 15 - mode = "0440"; 16 - }; 17 - "syncthing/key" = { 12 + sops.secrets = 13 + lib.genAttrs 14 + [ 15 + "syncthing/cert" 16 + "syncthing/key" 17 + ] 18 + (_: { 18 19 inherit sopsFile; 19 20 mode = "0440"; 20 - }; 21 - }; 21 + }); 22 22 23 23 systemd.services.syncthing.preStart = let 24 24 paths = builtins.attrNames config.services.syncthing.settings.folders; ··· 40 40 settings = { 41 41 gui.theme = "black"; 42 42 options.relaysEnabled = true; 43 - options.urAccepted = -1; 43 + options.urAccepted = -1; # For no and don't ask again 44 + options.localAnnounceEnabled = true; 44 45 startBrowser = false; 45 46 folders = let 46 - allDevices = builtins.attrNames config.services.syncthing.settings.devices; 47 + computers = ["desktop" "laptop" "steamdeck" "server"]; 48 + phones = ["pixel7" "galaxyS23"]; 49 + allDevices = computers ++ phones; 50 + trashVersioning = { 51 + type = "trashcan"; 52 + params.cleanoutDays = "30"; 53 + }; 47 54 in { 48 55 "${home}/Sync" = { 49 56 id = "default"; ··· 56 63 id = "6ymhp-fehcm"; 57 64 label = "Notes/Logseq"; 58 65 type = "sendreceive"; 59 - versioning = null; 66 + versioning = trashVersioning; 67 + devices = allDevices; 68 + }; 69 + "${home}/Notes/Obsidian" = { 70 + id = "tgnpg-efws9"; 71 + label = "Obsidian"; 72 + type = "sendreceive"; 73 + versioning = trashVersioning; 60 74 devices = allDevices; 61 75 }; 62 76 "${home}/.steam/steam/userdata/85204334/config/grid" = { ··· 64 78 label = "Steam/Custom Icons"; 65 79 type = "sendreceive"; 66 80 versioning = null; 67 - devices = ["desktop" "laptop" "steamdeck" "server"]; 81 + devices = computers; 68 82 }; 69 83 }; 70 84 devices = { ··· 72 86 desktop.name = "Desktop"; 73 87 laptop.id = "VFFQPOF-XAPVKHO-4PUSIVT-ACYNHAZ-GOQBWC6-SEYBXGE-2MBBMRS-TJRD4QL"; 74 88 laptop.name = "Laptop"; 75 - phone.id = "PDMAJC4-SIXM4NI-UDMSLPU-3QSBSM2-ZUBLQDU-MNCR2HH-XUJIG52-PH4IKQC"; 76 - phone.name = "Phone"; 89 + pixel7.id = "PDMAJC4-SIXM4NI-UDMSLPU-3QSBSM2-ZUBLQDU-MNCR2HH-XUJIG52-PH4IKQC"; 90 + pixel7.name = "Pixel 7 Pro"; 91 + galaxyS23.id = "DPARDTW-7LHI6VK-CRKEYI4-VK6BWWP-DMW6KOG-6LWAT4O-QFGDFPR-XVO6RAF"; 92 + galaxyS23.name = "Galaxy S23"; 77 93 server.id = "X5LHXQ6-NOCD2NO-RQ7FPLO-WFLLFRE-5BTTVL6-XLH3DAV-4ZIYI47-EEOVYAK"; 78 94 server.name = "Server"; 79 95 steamdeck.id = "OBZRWRW-B7DYVZC-RL5JV3D-6YNWG4O-MAIN2GY-KTEBY6V-DWQK36S-5E2O7AB";
+14 -30
nix/overlays/default.nix
··· 1 - {inputs, ...}: let 1 + {inputs, ...} @ args: let 2 2 inherit (inputs.nixpkgs) lib; 3 - in [ 4 - (final: prev: { 5 - proton-ge-bin-versions = let 6 - latestPackage = prev.proton-ge-bin; 7 - legacyVersions = { 8 - "7-55" = "sha256-6CL+9X4HBNoB/yUMIjA933XlSjE6eJC86RmwiJD6+Ws="; 9 - "8-32" = "sha256-ZBOF1N434pBQ+dJmzfJO9RdxRndxorxbJBZEIifp0w4="; 10 - }; 11 - legacyPackages = 12 - lib.mapAttrs 13 - (version: hash: 14 - latestPackage.overrideAttrs (_: { 15 - pname = "proton-ge-bin-${version}"; 16 - version = "GE-Proton${version}"; 17 - src = prev.fetchzip { 18 - inherit hash; 19 - url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${version}/${version}.tar.gz"; 20 - }; 21 - })) 22 - legacyVersions; 23 - in 24 - legacyPackages 25 - // {"latest" = latestPackage;}; 26 - }) 27 - inputs.chaotic.overlays.default 28 - inputs.nh.overlays.default 29 - inputs.nix-gaming.overlays.default 30 - inputs.nixneovimplugins.overlays.default 31 - ] 3 + inherit (inputs.self.lib.loaders) loadNonDefault; 4 + in { 5 + flake.overlays = 6 + (loadNonDefault ./. args) 7 + // { 8 + external = lib.composeManyExtensions [ 9 + inputs.chaotic.overlays.default 10 + inputs.nh.overlays.default 11 + inputs.nix-gaming.overlays.default 12 + inputs.nixneovimplugins.overlays.default 13 + ]; 14 + }; 15 + }
+12
nix/overlays/nixpkgsVersions.nix
··· 1 + {inputs, ...}: let 2 + inherit (inputs.self.lib) mkPkgs; 3 + in (final: prev: { 4 + stable = mkPkgs { 5 + inherit (prev) system; 6 + nixpkgs = inputs.stable; 7 + }; 8 + unstable = mkPkgs { 9 + inherit (prev) system; 10 + nixpkgs = inputs.unstable; 11 + }; 12 + })
+20
nix/overlays/nuInterpreterStdin.nix
··· 1 + # Provides new nu script writers with a few QoL enhancements 2 + # - Support from reading from stdin 3 + # - Extra newline prepended to content so script help contents display properly 4 + {inputs, ...}: let 5 + inherit (inputs.nixpkgs) lib; 6 + in (final: prev: let 7 + inherit (prev.writers) makeScriptWriter; 8 + interpreter = "${lib.getExe prev.nushell} --no-config-file --stdin"; 9 + patch = writer: 10 + writer.overrideAttrs (prev: { 11 + content = "\n${prev.content}"; 12 + }); 13 + in rec { 14 + # Based on the original implementation, see https://noogle.dev/f/pkgs/writers/writeNu 15 + writeNuScriptStdin = name: argsOrScript: 16 + if lib.isAttrs argsOrScript && !lib.isDerivation argsOrScript 17 + then patch (makeScriptWriter (argsOrScript // {inherit interpreter;}) name) 18 + else patch (makeScriptWriter {inherit interpreter;} name argsOrScript); 19 + writeNuScriptStdinBin = name: writeNuScriptStdin "/bin/${name}"; 20 + })
+16
nix/overlays/python.nix
··· 1 + {inputs, ...}: final: prev: { 2 + python = final: prev: { 3 + pythonPackagesExtensions = 4 + prev.pythonPackagesExtensions 5 + ++ [ 6 + (pyfinal: pyprev: { 7 + mss = pyprev.mss.overridePythonAttrs (oldAttrs: { 8 + doCheck = false; 9 + prePatch = '' 10 + rm -rf src/tests/* 11 + ''; 12 + }); 13 + }) 14 + ]; 15 + }; 16 + }
+6 -2
nix/packages/default.nix
··· 1 1 args: let 2 - inherit ((import ../lib args).loaders) importNonDefault; 2 + inherit ((import ../lib args).loaders) callPackageNonDefault; 3 3 in { 4 - imports = importNonDefault ./. args; 4 + perSystem = {self', ...}: let 5 + inherit (self'.legacyPackages) pkgs; 6 + in { 7 + packages = callPackageNonDefault ./. pkgs; 8 + }; 5 9 }
+4 -4
nix/schemas/default.nix
··· 1 - {inputs, ...} @ args: let 2 - inherit (inputs.self.lib.loaders) loadNonDefault; 3 - in 4 - loadNonDefault ./. args 1 + args: { 2 + lib = import ./lib.nix; 3 + pkgs = import ./pkgs.nix args; 4 + }
+15
nix/scripts/default.nix
··· 1 + args: let 2 + inherit ((import ../lib args).loaders) loadNonDefault; 3 + in { 4 + perSystem = { 5 + self', 6 + pkgs, 7 + ... 8 + } @ systemArgs: { 9 + legacyPackages = let 10 + scripts = loadNonDefault ./. systemArgs; 11 + in 12 + scripts # Provide them at the top level as well so they're more convenient to run 13 + // {inherit scripts;}; 14 + }; 15 + }
+18
nix/scripts/lastdl.nix
··· 1 + {pkgs, ...}: 2 + pkgs.writeNuScriptStdinBin "lastdl" 3 + # nu 4 + '' 5 + # Print the last downloaded file 6 + def main [ 7 + --short # Print the filename instead of full path 8 + --quote # Print the raw path with added quotes 9 + ]: nothing -> string { 10 + ls (${pkgs.xdg-user-dirs}/bin/xdg-user-dir DOWNLOAD) 11 + | where type == file 12 + | sort-by modified 13 + | last 14 + | get name 15 + | if $short { path basename } else { $in } 16 + | if $quote { $'"($in)"' } else { $in } 17 + } 18 + ''
+21
nix/scripts/leastspaces.nix
··· 1 + {pkgs, ...}: 2 + pkgs.writeNuScriptStdinBin "leastspaces" 3 + # nu 4 + '' 5 + # Computes the least prepending spaces present in any line of the supplied text 6 + def main []: string -> any { 7 + let lines = $in 8 + | split row "\n"; 9 + let least = $lines 10 + | each { 11 + parse --regex '^(\s*)' 12 + | values 13 + | first 14 + | str length 15 + } 16 + | math min 17 + $lines 18 + | each { str substring ($least | first).. } 19 + | str join "\n" 20 + } 21 + ''
+23
nix/scripts/nu-generate-carapace-spec.nix
··· 1 + {pkgs, ...}: 2 + pkgs.writeNuScriptStdinBin "nu-generate-carapace-spec" 3 + # nu 4 + '' 5 + # Generates carapace completion spec based on structured command metadata 6 + def main []: string -> string { 7 + $in 8 + | from nuon 9 + | insert flags ($in.params 10 + | each { [ 11 + ($in.name 12 + | parse --regex '^(?<full>--\w*)(?:\s*\((?<abbr>-\w*)\))?' 13 + | first 14 + | select abbr full | values 15 + | where { is-not-empty } 16 + | str join ', ') 17 + $in.description 18 + ] } 19 + | into record) 20 + | select name description flags 21 + | to yaml 22 + } 23 + ''
+33
nix/scripts/nu-generate-manpage.nix
··· 1 + { 2 + self', 3 + lib, 4 + pkgs, 5 + ... 6 + }: let 7 + inherit (self'.legacyPackages.scripts) nu-parse-help; 8 + in 9 + pkgs.writeNuScriptStdinBin "nu-generate-manpage" 10 + # nu 11 + '' 12 + # Converts the output of nu --help to a crude manpage 13 + def main []: string -> any { 14 + let sections = $in 15 + | ${lib.getExe nu-parse-help} 16 + | from json 17 + let name = [$sections.name $sections.description] 18 + | filter { $in != "" } 19 + | str join " - " 20 + let flags = $sections.flags 21 + | each { $"\t($in.switches)\n\t\t($in.description)" } 22 + | str join "\n"; 23 + 24 + $"($sections.name | str upcase)\(1) 25 + 26 + NAME 27 + \t($name) 28 + 29 + OPTIONS 30 + ($flags) 31 + " 32 + } 33 + ''
+26
nix/scripts/nu-inspect.nix
··· 1 + { 2 + lib, 3 + pkgs, 4 + ... 5 + }: 6 + pkgs.writeNuScriptStdinBin "nu-inspect" 7 + # nu 8 + '' 9 + # Outputs structured command data based on nushell script contents 10 + def main [ 11 + --name: string = "main" 12 + ]: string -> string { 13 + $in | save ./tmp.nu 14 + ${lib.getExe pkgs.nushell} --commands $" 15 + source './tmp.nu' 16 + 17 + help commands 18 + | where name == 'main' 19 + | to nuon 20 + " 21 + | from nuon 22 + | update name $name 23 + | first 24 + | to nuon 25 + } 26 + ''
+66
nix/scripts/nu-parse-help.nix
··· 1 + { 2 + self', 3 + lib, 4 + pkgs, 5 + ... 6 + }: let 7 + inherit (self'.legacyPackages.scripts) leastspaces; 8 + in 9 + pkgs.writeNuScriptStdinBin "nu-parse-help" 10 + # nu 11 + '' 12 + # Creates a record representation of a command's --help output 13 + def main []: string -> any { 14 + let sections = $in 15 + | split row --regex "\n\n" 16 + | where { str trim | $in != "" } 17 + | each { 18 + parse --regex '^(?<header>[^:]+:)?\n?(?<contents>.*(?:\n.*)*)?' 19 + | update header { default "" | str replace --regex ':$' "" | str downcase } 20 + | update contents { ${lib.getExe leastspaces} } 21 + } 22 + | where { $in.header != "" or $in.content != "" } 23 + | flatten 24 + let description = $sections 25 + | where header == "" 26 + | first 27 + | safeget contents "" 28 + let usage = $sections 29 + | where header =~ usage 30 + | first 31 + | safeget contents "" 32 + | str substring 2.. 33 + let name = $usage 34 + | parse --regex '(?<name>\w*) .*' 35 + | first 36 + | safeget name "" 37 + let flags = $sections 38 + | where header =~ flags 39 + | first 40 + | safeget contents "" 41 + | split row "\n" 42 + | each { 43 + split row ": " 44 + | { 45 + switches: $in.0 46 + description: $in.1 47 + }} 48 + 49 + { 50 + name: $name 51 + description: $description 52 + usage: $usage 53 + flags: $flags 54 + } 55 + | to json 56 + } 57 + 58 + def safeget [ 59 + field: string 60 + default: string 61 + ]: record -> string { 62 + $in 63 + | get --ignore-errors $field 64 + | default $default 65 + } 66 + ''
+5 -7
nix/shared/default.nix
··· 1 1 {inputs, ...}: let 2 2 inherit (inputs) self; 3 - inherit (inputs.self.lib.config.nix) settings; 4 - inherit (inputs.self.lib.loaders) listNonDefault; 3 + inherit (self.lib.config.nix) settings; 5 4 in { 6 - imports = listNonDefault ./.; 5 + imports = [ 6 + ./theming.nix 7 + ]; 7 8 8 - nix = { 9 - inherit settings; 10 - }; 11 - nixpkgs.overlays = import "${self}/nix/overlays" {inherit inputs;}; 9 + nix = {inherit settings;}; 12 10 }
+31 -61
nix/shells/default.nix
··· 1 - {inputs, ...} @ args: let 2 - inherit (inputs) self; 3 - inherit ((import ../lib args).config) flake repo; 4 - in { 1 + {inputs, ...}: { 2 + imports = [ 3 + inputs.make-shell.flakeModules.default 4 + ./deploy.nix 5 + ./nix.nix 6 + ./rust.nix 7 + ./minimal.nix 8 + ]; 9 + 5 10 perSystem = { 6 11 config, 7 - inputs', 8 - lib, 9 - system, 12 + pkgs, 13 + self', 10 14 ... 11 - } @ args: let 12 - inherit (import ./lib.nix (args // {inherit pkgs;})) mkShell; 13 - pkgs = self.pkgs.${system}; 14 - basePackages = with pkgs; [ 15 - bat 16 - fish 17 - git 18 - helix 19 - ]; 20 - in { 21 - devShells = { 22 - default = mkShell { 23 - meta.description = "Minimal shell with cli essentials"; 24 - packages = basePackages; 25 - }; 26 - deploy = mkShell { 27 - meta.description = "Extra deployment utilities built-in"; 15 + }: { 16 + devShells.default = self'.devShells.nix; 17 + make-shell.imports = [ 18 + ({ 19 + lib, 20 + pkgs, 21 + ... 22 + }: { 28 23 packages = 29 - basePackages 30 - ++ (with pkgs; [ 31 - disko 32 - home-manager 33 - nh 34 - nixos-generators 35 - nixos-rebuild 36 - (writeShellScriptBin "flake-init" '' 37 - if [ ! -d "${flake.path}" ]; then 38 - mkdir -p "${flake.path}" 39 - git clone --branch develop '${repo.main}' "${flake.path}" 40 - echo "Repo checked out at ${flake.path}" 41 - else 42 - echo 'Repo exists, nothing to do' 43 - fi 44 - '') 24 + (with pkgs; [ 25 + bat 26 + fish 27 + git 28 + helix 29 + ]) 30 + ++ config.pre-commit.settings.enabledPackages 31 + ++ (lib.optionals (config.pre-commit.settings.package != null) [ 32 + config.pre-commit.settings.package 45 33 ]); 46 - shellHook = '' 47 - export EDITOR=hx 48 - export NH_FLAKE="${flake.path}" 49 - ''; 50 - }; 51 - rust = mkShell { 52 - meta.description = "For building Rust projects"; 53 - packages = with pkgs; [ 54 - cargo 55 - openssl 56 - pkg-config 57 - rustc 58 - rustfmt 59 - rustPackages.clippy 60 - rust-analyzer 61 - vscode-extensions.vadimcn.vscode-lldb 62 - xorg.libX11 63 - ]; 64 - RUST_SRC_PATH = pkgs.rustPlatform.rustLibSrc; 65 - }; 66 - }; 34 + shellHook = config.pre-commit.installationScript; 35 + }) 36 + ]; 67 37 }; 68 38 }
+29
nix/shells/deploy.nix
··· 1 + args: let 2 + inherit ((import ../lib args).config) flake repo; 3 + in { 4 + perSystem = {pkgs, ...}: { 5 + make-shells.deploy = { 6 + additionalArguments.meta.description = "Extra deployment utilities built-in"; 7 + packages = with pkgs; [ 8 + disko 9 + home-manager 10 + nh 11 + nixos-generators 12 + nixos-rebuild 13 + (writeShellScriptBin "flake-init" '' 14 + if [ ! -d "${flake.path}" ]; then 15 + mkdir -p "${flake.path}" 16 + git clone --branch develop '${repo.main}' "${flake.path}" 17 + echo "Repo checked out at ${flake.path}" 18 + else 19 + echo 'Repo exists, nothing to do' 20 + fi 21 + '') 22 + ]; 23 + shellHook = '' 24 + export EDITOR=hx 25 + export NH_FLAKE="${flake.path}" 26 + ''; 27 + }; 28 + }; 29 + }
-33
nix/shells/lib.nix
··· 1 - { 2 - config, 3 - lib, 4 - pkgs, 5 - ... 6 - }: { 7 - mkShell = args: let 8 - shellHook = args.shellHook or ""; 9 - nativeBuildInputs = args.packages or []; 10 - fullArgs = 11 - (builtins.removeAttrs args ["packages"]) 12 - // { 13 - nativeBuildInputs = 14 - nativeBuildInputs 15 - ++ config.pre-commit.settings.enabledPackages 16 - ++ (lib.optionals (config.pre-commit.settings.package != null) [ 17 - config.pre-commit.settings.package 18 - ]) 19 - ++ (with pkgs; [ 20 - age 21 - alejandra 22 - nil 23 - nixpkgs-fmt 24 - ssh-to-age 25 - sops 26 - ]); 27 - shellHook = 28 - config.pre-commit.installationScript 29 - + (lib.optionalString (shellHook != "") shellHook); 30 - }; 31 - in 32 - pkgs.mkShell fullArgs; 33 - }
+7
nix/shells/minimal.nix
··· 1 + { 2 + perSystem = args: { 3 + make-shells.minimal = { 4 + additionalArguments.meta.description = "Minimal shell with cli essentials"; 5 + }; 6 + }; 7 + }
+15
nix/shells/nix.nix
··· 1 + { 2 + perSystem = {pkgs, ...}: { 3 + make-shells.nix = { 4 + additionalArguments.meta.description = "Nix development environment"; 5 + packages = with pkgs; [ 6 + age 7 + alejandra 8 + nil 9 + nixpkgs-fmt 10 + sops 11 + ssh-to-age 12 + ]; 13 + }; 14 + }; 15 + }
+19
nix/shells/rust.nix
··· 1 + { 2 + perSystem = {pkgs, ...}: { 3 + make-shells.rust = { 4 + additionalArguments.meta.description = "For building Rust projects"; 5 + packages = with pkgs; [ 6 + cargo 7 + openssl 8 + pkg-config 9 + rustc 10 + rustfmt 11 + rustPackages.clippy 12 + rust-analyzer 13 + vscode-extensions.vadimcn.vscode-lldb 14 + xorg.libX11 15 + ]; 16 + env.RUST_SRC_PATH = pkgs.rustPlatform.rustLibSrc; 17 + }; 18 + }; 19 + }
-14
shell.nix
··· 1 - ( 2 - import 3 - ( 4 - let 5 - lock = builtins.fromJSON (builtins.readFile ./flake.lock); 6 - in 7 - fetchTarball { 8 - url = lock.nodes.flake-compat.locked.url or "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; 9 - sha256 = lock.nodes.flake-compat.locked.narHash; 10 - } 11 - ) 12 - {src = ./.;} 13 - ) 14 - .shellNix