My nixos configuration

Compare changes

Choose any two refs to compare.

+11 -11
.github/workflows/flake-update.yml
··· 7 8 jobs: 9 generate_matrix: 10 - runs-on: ubuntu-20.04 11 outputs: 12 packages: ${{ steps.gen_packages.outputs.packages }} 13 checks: ${{ steps.gen_checks.outputs.checks }} ··· 17 with: 18 token: "${{ secrets.TEST_TOKEN }}" 19 - name: Install nix 20 - uses: cachix/install-nix-action@v30 21 with: 22 extra_nix_config: | 23 auto-optimise-store = true ··· 39 printf "::set-output name=checks::%s" "$checks" 40 41 update_flake: 42 - runs-on: ubuntu-20.04 43 steps: 44 - name: Clone repository 45 uses: actions/checkout@v4 46 with: 47 token: "${{ secrets.TEST_TOKEN }}" 48 - name: Install nix 49 - uses: cachix/install-nix-action@v30 50 with: 51 extra_nix_config: | 52 auto-optimise-store = true ··· 68 path: flake.lock 69 70 build_flake: 71 - runs-on: ubuntu-20.04 72 needs: [generate_matrix, update_flake] 73 strategy: 74 fail-fast: false ··· 91 with: 92 token: "${{ secrets.TEST_TOKEN }}" 93 - name: Install nix 94 - uses: cachix/install-nix-action@v30 95 with: 96 extra_nix_config: | 97 auto-optimise-store = true ··· 114 run: nix build .#${{ matrix.package }} 115 116 build_checks: 117 - runs-on: ubuntu-20.04 118 needs: [generate_matrix, update_flake] 119 strategy: 120 fail-fast: false ··· 127 with: 128 token: "${{ secrets.TEST_TOKEN }}" 129 - name: Install nix 130 - uses: cachix/install-nix-action@v30 131 with: 132 extra_nix_config: | 133 auto-optimise-store = true ··· 150 run: nix build .#checks.x86_64-linux.${{ matrix.check }} --no-link 151 152 check_flake: 153 - runs-on: ubuntu-20.04 154 needs: [update_flake] 155 continue-on-error: true 156 steps: ··· 159 with: 160 token: "${{ secrets.TEST_TOKEN }}" 161 - name: Install nix 162 - uses: cachix/install-nix-action@v30 163 with: 164 extra_nix_config: | 165 auto-optimise-store = true ··· 177 nix flake check --keep-going 178 179 push_update: 180 - runs-on: ubuntu-20.04 181 permissions: write-all 182 needs: [update_flake, build_flake, build_checks, check_flake] 183 steps:
··· 7 8 jobs: 9 generate_matrix: 10 + runs-on: ubuntu-24.04 11 outputs: 12 packages: ${{ steps.gen_packages.outputs.packages }} 13 checks: ${{ steps.gen_checks.outputs.checks }} ··· 17 with: 18 token: "${{ secrets.TEST_TOKEN }}" 19 - name: Install nix 20 + uses: cachix/install-nix-action@v31 21 with: 22 extra_nix_config: | 23 auto-optimise-store = true ··· 39 printf "::set-output name=checks::%s" "$checks" 40 41 update_flake: 42 + runs-on: ubuntu-24.04 43 steps: 44 - name: Clone repository 45 uses: actions/checkout@v4 46 with: 47 token: "${{ secrets.TEST_TOKEN }}" 48 - name: Install nix 49 + uses: cachix/install-nix-action@v31 50 with: 51 extra_nix_config: | 52 auto-optimise-store = true ··· 68 path: flake.lock 69 70 build_flake: 71 + runs-on: ubuntu-24.04 72 needs: [generate_matrix, update_flake] 73 strategy: 74 fail-fast: false ··· 91 with: 92 token: "${{ secrets.TEST_TOKEN }}" 93 - name: Install nix 94 + uses: cachix/install-nix-action@v31 95 with: 96 extra_nix_config: | 97 auto-optimise-store = true ··· 114 run: nix build .#${{ matrix.package }} 115 116 build_checks: 117 + runs-on: ubuntu-24.04 118 needs: [generate_matrix, update_flake] 119 strategy: 120 fail-fast: false ··· 127 with: 128 token: "${{ secrets.TEST_TOKEN }}" 129 - name: Install nix 130 + uses: cachix/install-nix-action@v31 131 with: 132 extra_nix_config: | 133 auto-optimise-store = true ··· 150 run: nix build .#checks.x86_64-linux.${{ matrix.check }} --no-link 151 152 check_flake: 153 + runs-on: ubuntu-24.04 154 needs: [update_flake] 155 continue-on-error: true 156 steps: ··· 159 with: 160 token: "${{ secrets.TEST_TOKEN }}" 161 - name: Install nix 162 + uses: cachix/install-nix-action@v31 163 with: 164 extra_nix_config: | 165 auto-optimise-store = true ··· 177 nix flake check --keep-going 178 179 push_update: 180 + runs-on: ubuntu-24.04 181 permissions: write-all 182 needs: [update_flake, build_flake, build_checks, check_flake] 183 steps:
+8 -8
.github/workflows/pull-check.yml
··· 5 6 jobs: 7 generate_matrix: 8 - runs-on: ubuntu-20.04 9 outputs: 10 packages: ${{ steps.gen_packages.outputs.packages }} 11 checks: ${{ steps.gen_checks.outputs.checks }} ··· 15 with: 16 token: "${{ secrets.TEST_TOKEN }}" 17 - name: Install nix 18 - uses: cachix/install-nix-action@v30 19 with: 20 extra_nix_config: | 21 auto-optimise-store = true ··· 37 printf "checks=%s" "$checks" >> $GITHUB_OUTPUT 38 39 build_flake: 40 - runs-on: ubuntu-20.04 41 needs: [generate_matrix] 42 strategy: 43 fail-fast: false ··· 58 with: 59 token: "${{ secrets.TEST_TOKEN }}" 60 - name: Install nix 61 - uses: cachix/install-nix-action@v30 62 with: 63 extra_nix_config: | 64 auto-optimise-store = true ··· 71 run: nix build .#${{ matrix.package }} 72 73 build_checks: 74 - runs-on: ubuntu-20.04 75 needs: [generate_matrix] 76 strategy: 77 fail-fast: false ··· 84 with: 85 token: "${{ secrets.TEST_TOKEN }}" 86 - name: Install nix 87 - uses: cachix/install-nix-action@v30 88 with: 89 extra_nix_config: | 90 auto-optimise-store = true ··· 97 run: nix build .#checks.x86_64-linux.${{ matrix.check }} --no-link 98 99 check_flake: 100 - runs-on: ubuntu-20.04 101 continue-on-error: true 102 steps: 103 - name: Clone repository ··· 105 with: 106 token: "${{ secrets.TEST_TOKEN }}" 107 - name: Install nix 108 - uses: cachix/install-nix-action@v30 109 with: 110 extra_nix_config: | 111 auto-optimise-store = true
··· 5 6 jobs: 7 generate_matrix: 8 + runs-on: ubuntu-24.04 9 outputs: 10 packages: ${{ steps.gen_packages.outputs.packages }} 11 checks: ${{ steps.gen_checks.outputs.checks }} ··· 15 with: 16 token: "${{ secrets.TEST_TOKEN }}" 17 - name: Install nix 18 + uses: cachix/install-nix-action@v31 19 with: 20 extra_nix_config: | 21 auto-optimise-store = true ··· 37 printf "checks=%s" "$checks" >> $GITHUB_OUTPUT 38 39 build_flake: 40 + runs-on: ubuntu-24.04 41 needs: [generate_matrix] 42 strategy: 43 fail-fast: false ··· 58 with: 59 token: "${{ secrets.TEST_TOKEN }}" 60 - name: Install nix 61 + uses: cachix/install-nix-action@v31 62 with: 63 extra_nix_config: | 64 auto-optimise-store = true ··· 71 run: nix build .#${{ matrix.package }} 72 73 build_checks: 74 + runs-on: ubuntu-24.04 75 needs: [generate_matrix] 76 strategy: 77 fail-fast: false ··· 84 with: 85 token: "${{ secrets.TEST_TOKEN }}" 86 - name: Install nix 87 + uses: cachix/install-nix-action@v31 88 with: 89 extra_nix_config: | 90 auto-optimise-store = true ··· 97 run: nix build .#checks.x86_64-linux.${{ matrix.check }} --no-link 98 99 check_flake: 100 + runs-on: ubuntu-24.04 101 continue-on-error: true 102 steps: 103 - name: Clone repository ··· 105 with: 106 token: "${{ secrets.TEST_TOKEN }}" 107 - name: Install nix 108 + uses: cachix/install-nix-action@v31 109 with: 110 extra_nix_config: | 111 auto-optimise-store = true
+100 -55
flake.lock
··· 3 "cargo2nix": { 4 "inputs": { 5 "flake-compat": "flake-compat_3", 6 - "flake-utils": "flake-utils_2", 7 "nixpkgs": [ 8 "switcher", 9 "nixpkgs" ··· 37 ] 38 }, 39 "locked": { 40 - "lastModified": 1740708553, 41 - "narHash": "sha256-BMQ5onp2fgBIekFKO+IjQq/NS+lztykzE5Gw3D2cGss=", 42 "owner": "nix-community", 43 "repo": "emacs-overlay", 44 - "rev": "729ae31cfa6a051b9585f9f4076e3df082bacfa2", 45 "type": "github" 46 }, 47 "original": { ··· 99 } 100 }, 101 "flake-utils": { 102 "inputs": { 103 "systems": "systems" 104 }, ··· 116 "type": "github" 117 } 118 }, 119 - "flake-utils_2": { 120 "inputs": { 121 "systems": "systems_2" 122 }, ··· 247 ] 248 }, 249 "locked": { 250 - "lastModified": 1740699498, 251 - "narHash": "sha256-r9hkKzX99CGiP1ZqH0e+SWKK4CMsRNRLyotuwrUjhTI=", 252 "owner": "nix-community", 253 "repo": "home-manager", 254 - "rev": "b71edac7a3167026aabea82a54d08b1794088c21", 255 "type": "github" 256 }, 257 "original": { ··· 288 "nixpkgs-regression": "nixpkgs-regression" 289 }, 290 "locked": { 291 - "lastModified": 1740692265, 292 - "narHash": "sha256-CgyY10K+UUsMzsitFeMYh+MsdfGzUE7RtpPAdP1fZaI=", 293 "owner": "nixos", 294 "repo": "nix", 295 - "rev": "92c4789ec72a5bf485679f9a5e5a244e553fb03d", 296 "type": "github" 297 }, 298 "original": { ··· 301 "type": "github" 302 } 303 }, 304 - "nixos-vscode-server": { 305 "inputs": { 306 "flake-utils": "flake-utils", 307 "nixpkgs": [ ··· 309 ] 310 }, 311 "locked": { 312 "lastModified": 1729422940, 313 "narHash": "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=", 314 "owner": "msteen", ··· 324 }, 325 "nixpkgs": { 326 "locked": { 327 - "lastModified": 1734359947, 328 - "narHash": "sha256-1Noao/H+N8nFB4Beoy8fgwrcOQLVm9o4zKW1ODaqK9E=", 329 "owner": "NixOS", 330 "repo": "nixpkgs", 331 - "rev": "48d12d5e70ee91fe8481378e540433a7303dbf6a", 332 "type": "github" 333 }, 334 "original": { 335 "owner": "NixOS", 336 - "ref": "release-24.11", 337 "repo": "nixpkgs", 338 "type": "github" 339 } ··· 420 }, 421 "nixpkgs_2": { 422 "locked": { 423 - "lastModified": 1740560979, 424 - "narHash": "sha256-Vr3Qi346M+8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic=", 425 "owner": "nixos", 426 "repo": "nixpkgs", 427 - "rev": "5135c59491985879812717f4c9fea69604e7f26f", 428 "type": "github" 429 }, 430 "original": { ··· 436 }, 437 "nixpkgs_3": { 438 "locked": { 439 - "lastModified": 1731531548, 440 - "narHash": "sha256-sz8/v17enkYmfpgeeuyzniGJU0QQBfmAjlemAUYhfy8=", 441 - "owner": "nixos", 442 - "repo": "nixpkgs", 443 - "rev": "24f0d4acd634792badd6470134c387a3b039dace", 444 - "type": "github" 445 - }, 446 - "original": { 447 - "owner": "nixos", 448 - "ref": "nixpkgs-unstable", 449 - "repo": "nixpkgs", 450 - "type": "github" 451 - } 452 - }, 453 - "nixpkgs_4": { 454 - "locked": { 455 - "lastModified": 1731763621, 456 - "narHash": "sha256-ddcX4lQL0X05AYkrkV2LMFgGdRvgap7Ho8kgon3iWZk=", 457 "owner": "NixOS", 458 "repo": "nixpkgs", 459 - "rev": "c69a9bffbecde46b4b939465422ddc59493d3e4d", 460 "type": "github" 461 }, 462 "original": { ··· 466 "type": "github" 467 } 468 }, 469 - "nixpkgs_5": { 470 "locked": { 471 "lastModified": 1728538411, 472 "narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=", ··· 485 "nvim": { 486 "inputs": { 487 "gen-luarc": "gen-luarc", 488 - "nixpkgs": "nixpkgs_3", 489 "nixpkgs-emmy": "nixpkgs-emmy", 490 "parts": [ 491 "parts" 492 - ] 493 }, 494 "locked": { 495 - "lastModified": 1738787196, 496 - "narHash": "sha256-Mp5aDeJMOT5Ctq5aSJayyV3SnOfl956YQrjtQMEl76g=", 497 "owner": "nobbz", 498 "repo": "nobbz-vim", 499 - "rev": "33222da2978e5264c8276723b1c4fd618ac13bb0", 500 "type": "github" 501 }, 502 "original": { ··· 512 ] 513 }, 514 "locked": { 515 - "lastModified": 1738453229, 516 - "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", 517 "owner": "hercules-ci", 518 "repo": "flake-parts", 519 - "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", 520 "type": "github" 521 }, 522 "original": { ··· 533 "utils": "utils" 534 }, 535 "locked": { 536 - "lastModified": 1740654916, 537 - "narHash": "sha256-8Z2cmApz34/WkO8Y1hZ76J2WE+aM7ojyMrQrL5WpM68=", 538 "owner": "wamserma", 539 "repo": "flake-programs-sqlite", 540 - "rev": "69a02c4b4096e213cb0c136ea22c6362c42ceb5e", 541 "type": "github" 542 }, 543 "original": { ··· 551 "emacs": "emacs", 552 "home-manager": "home-manager", 553 "nix": "nix", 554 "nixos-vscode-server": "nixos-vscode-server", 555 "nixpkgs": "nixpkgs_2", 556 "nixpkgs-insync-v3": [ ··· 566 }, 567 "rust-overlay": { 568 "inputs": { 569 - "nixpkgs": "nixpkgs_5" 570 }, 571 "locked": { 572 "lastModified": 1734402816, ··· 584 }, 585 "sops-nix": { 586 "inputs": { 587 - "nixpkgs": "nixpkgs_4" 588 }, 589 "locked": { 590 - "lastModified": 1739262228, 591 - "narHash": "sha256-7JAGezJ0Dn5qIyA2+T4Dt/xQgAbhCglh6lzCekTVMeU=", 592 "owner": "Mic92", 593 "repo": "sops-nix", 594 - "rev": "07af005bb7d60c7f118d9d9f5530485da5d1e975", 595 "type": "github" 596 }, 597 "original": { ··· 668 "original": { 669 "owner": "numtide", 670 "repo": "flake-utils", 671 "type": "github" 672 } 673 }
··· 3 "cargo2nix": { 4 "inputs": { 5 "flake-compat": "flake-compat_3", 6 + "flake-utils": "flake-utils_3", 7 "nixpkgs": [ 8 "switcher", 9 "nixpkgs" ··· 37 ] 38 }, 39 "locked": { 40 + "lastModified": 1749090069, 41 + "narHash": "sha256-uN3Mp+o7IfVT9H/OuwEtJ17NktCaF4t9Ond3TKt+BE4=", 42 "owner": "nix-community", 43 "repo": "emacs-overlay", 44 + "rev": "c17506666090e412a50b01c57944386ab81d2aa8", 45 "type": "github" 46 }, 47 "original": { ··· 99 } 100 }, 101 "flake-utils": { 102 + "locked": { 103 + "lastModified": 1659877975, 104 + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", 105 + "owner": "numtide", 106 + "repo": "flake-utils", 107 + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", 108 + "type": "github" 109 + }, 110 + "original": { 111 + "owner": "numtide", 112 + "repo": "flake-utils", 113 + "type": "github" 114 + } 115 + }, 116 + "flake-utils_2": { 117 "inputs": { 118 "systems": "systems" 119 }, ··· 131 "type": "github" 132 } 133 }, 134 + "flake-utils_3": { 135 "inputs": { 136 "systems": "systems_2" 137 }, ··· 262 ] 263 }, 264 "locked": { 265 + "lastModified": 1749062139, 266 + "narHash": "sha256-gGGLujmeWU+ZjFzfMvFMI0hp9xONsSbm88187wJr82Q=", 267 "owner": "nix-community", 268 "repo": "home-manager", 269 + "rev": "86b95fc1ed2b9b04a451a08ccf13d78fb421859c", 270 "type": "github" 271 }, 272 "original": { ··· 303 "nixpkgs-regression": "nixpkgs-regression" 304 }, 305 "locked": { 306 + "lastModified": 1749012568, 307 + "narHash": "sha256-7IltFTct/oe6pGkwB6f/1WhWA65hFnsBY6XaGjodf3k=", 308 "owner": "nixos", 309 "repo": "nix", 310 + "rev": "4751cbef6303d10479f3db1b13db69197d9c3446", 311 "type": "github" 312 }, 313 "original": { ··· 316 "type": "github" 317 } 318 }, 319 + "nix-gl": { 320 "inputs": { 321 "flake-utils": "flake-utils", 322 "nixpkgs": [ ··· 324 ] 325 }, 326 "locked": { 327 + "lastModified": 1713543440, 328 + "narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=", 329 + "owner": "nix-community", 330 + "repo": "nixgl", 331 + "rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a", 332 + "type": "github" 333 + }, 334 + "original": { 335 + "owner": "nix-community", 336 + "repo": "nixgl", 337 + "type": "github" 338 + } 339 + }, 340 + "nixos-vscode-server": { 341 + "inputs": { 342 + "flake-utils": "flake-utils_2", 343 + "nixpkgs": [ 344 + "nixpkgs" 345 + ] 346 + }, 347 + "locked": { 348 "lastModified": 1729422940, 349 "narHash": "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=", 350 "owner": "msteen", ··· 360 }, 361 "nixpkgs": { 362 "locked": { 363 + "lastModified": 1747179050, 364 + "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", 365 "owner": "NixOS", 366 "repo": "nixpkgs", 367 + "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", 368 "type": "github" 369 }, 370 "original": { 371 "owner": "NixOS", 372 + "ref": "nixos-unstable", 373 "repo": "nixpkgs", 374 "type": "github" 375 } ··· 456 }, 457 "nixpkgs_2": { 458 "locked": { 459 + "lastModified": 1748929857, 460 + "narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=", 461 "owner": "nixos", 462 "repo": "nixpkgs", 463 + "rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4", 464 "type": "github" 465 }, 466 "original": { ··· 472 }, 473 "nixpkgs_3": { 474 "locked": { 475 + "lastModified": 1744868846, 476 + "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", 477 "owner": "NixOS", 478 "repo": "nixpkgs", 479 + "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", 480 "type": "github" 481 }, 482 "original": { ··· 486 "type": "github" 487 } 488 }, 489 + "nixpkgs_4": { 490 "locked": { 491 "lastModified": 1728538411, 492 "narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=", ··· 505 "nvim": { 506 "inputs": { 507 "gen-luarc": "gen-luarc", 508 + "nixpkgs": [ 509 + "nixpkgs" 510 + ], 511 "nixpkgs-emmy": "nixpkgs-emmy", 512 "parts": [ 513 "parts" 514 + ], 515 + "wrapper-manager": "wrapper-manager" 516 }, 517 "locked": { 518 + "lastModified": 1748686149, 519 + "narHash": "sha256-RdLAPiha8lr1wQiL158p4DTFhLcWcjRv6ioCTd3athQ=", 520 "owner": "nobbz", 521 "repo": "nobbz-vim", 522 + "rev": "a22303075cac32d83edfd79ef79c0386a38b02ce", 523 "type": "github" 524 }, 525 "original": { ··· 535 ] 536 }, 537 "locked": { 538 + "lastModified": 1748821116, 539 + "narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=", 540 "owner": "hercules-ci", 541 "repo": "flake-parts", 542 + "rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1", 543 "type": "github" 544 }, 545 "original": { ··· 556 "utils": "utils" 557 }, 558 "locked": { 559 + "lastModified": 1749055058, 560 + "narHash": "sha256-OgCTSX0WXPpEi/ukjbBRrElSo+TR2/pzCCcY5yfou58=", 561 "owner": "wamserma", 562 "repo": "flake-programs-sqlite", 563 + "rev": "78d23d728abddce902528922f93967f0630f1cfe", 564 "type": "github" 565 }, 566 "original": { ··· 574 "emacs": "emacs", 575 "home-manager": "home-manager", 576 "nix": "nix", 577 + "nix-gl": "nix-gl", 578 "nixos-vscode-server": "nixos-vscode-server", 579 "nixpkgs": "nixpkgs_2", 580 "nixpkgs-insync-v3": [ ··· 590 }, 591 "rust-overlay": { 592 "inputs": { 593 + "nixpkgs": "nixpkgs_4" 594 }, 595 "locked": { 596 "lastModified": 1734402816, ··· 608 }, 609 "sops-nix": { 610 "inputs": { 611 + "nixpkgs": "nixpkgs_3" 612 }, 613 "locked": { 614 + "lastModified": 1747603214, 615 + "narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=", 616 "owner": "Mic92", 617 "repo": "sops-nix", 618 + "rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd", 619 "type": "github" 620 }, 621 "original": { ··· 692 "original": { 693 "owner": "numtide", 694 "repo": "flake-utils", 695 + "type": "github" 696 + } 697 + }, 698 + "wrapper-manager": { 699 + "inputs": { 700 + "nixpkgs": [ 701 + "nvim", 702 + "nixpkgs" 703 + ] 704 + }, 705 + "locked": { 706 + "lastModified": 1747562021, 707 + "narHash": "sha256-XfF+5zjoWbAcAiGNb++og6yDGJRwWYpADr9P6WuieQA=", 708 + "owner": "viperml", 709 + "repo": "wrapper-manager", 710 + "rev": "f2b0bec5140403cf24cae96f6764d97b5d59b0e2", 711 + "type": "github" 712 + }, 713 + "original": { 714 + "owner": "viperml", 715 + "repo": "wrapper-manager", 716 "type": "github" 717 } 718 }
+4 -46
flake.nix
··· 3 parts.lib.mkFlake {inherit inputs;} { 4 systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin"]; 5 6 - debug = true; 7 - 8 _module.args.npins = import ./npins; 9 10 imports = [ ··· 23 ./packages 24 ]; 25 26 - perSystem = { 27 - pkgs, 28 - self', 29 - ... 30 - }: { 31 - apps.installer.program = let 32 - isoPath = "iso/${self'.packages.installer-iso.isoName}"; 33 - in 34 - pkgs.writeShellScriptBin "installer" '' 35 - image=disk.qcow2 36 - isoPath=$(mktemp -d)/result 37 - isoFull=$isoPath/${isoPath} 38 - 39 - test -f $image || ${pkgs.qemu}/bin/qemu-img create -f qcow2 $image 50G 40 - 41 - nom build .#installer-iso -o $isoPath 42 - 43 - ${pkgs.qemu}/bin/qemu-system-x86_64 \ 44 - -drive file=$image,if=virtio \ 45 - -cdrom $isoPath/${isoPath} \ 46 - -m 8G \ 47 - -smp 2 \ 48 - -enable-kvm \ 49 - -netdev user,id=net0 \ 50 - -device virtio-net,netdev=net0 \ 51 - -device virtio-vga \ 52 - -bios ${pkgs.OVMF.fd}/FV/OVMF.fd 53 - 54 - du -h $isoFull 55 - rm -f $isoPath 56 - ''; 57 - 58 - apps.awesome-preview.program = let 59 - rc_lua = pkgs.runCommandNoCC "awesomerc.lua" {} '' 60 - substitute ${./packages/installer/awesomerc.lua} $out \ 61 - --subst-var-by FILE_PATH_WALLPAPER ${./packages/installer/nix-glow-black.png} \ 62 - --subst-var-by NIX_FLAKE_SVG ${./packages/installer/nix-flake.svg} 63 - ''; 64 - in 65 - pkgs.writeShellScriptBin "awesome-preview" '' 66 - ${pkgs.xorg.xorgserver}/bin/Xephyr :5 & sleep 1 ; DISPLAY=:5 ${self'.packages.awesome}/bin/awesome --config ${rc_lua} 67 - ''; 68 - }; 69 - 70 flake = { 71 mixedModules = import ./mixed inputs; 72 ··· 82 83 nvim.url = "github:nobbz/nobbz-vim"; 84 nvim.inputs.parts.follows = "parts"; 85 86 switcher.url = "github:nobbz/nix-switcher?ref=main"; 87 switcher.inputs.nixpkgs.follows = "nixpkgs"; ··· 98 # a libgit2 in the current version fails to build with the nix provided patches. 99 # therefore using upstreams pin for now. 100 # nix.inputs.nixpkgs.follows = "nixpkgs"; 101 102 home-manager.url = "github:nix-community/home-manager"; 103 home-manager.inputs.nixpkgs.follows = "nixpkgs";
··· 3 parts.lib.mkFlake {inherit inputs;} { 4 systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin"]; 5 6 _module.args.npins = import ./npins; 7 8 imports = [ ··· 21 ./packages 22 ]; 23 24 flake = { 25 mixedModules = import ./mixed inputs; 26 ··· 36 37 nvim.url = "github:nobbz/nobbz-vim"; 38 nvim.inputs.parts.follows = "parts"; 39 + nvim.inputs.nixpkgs.follows = "nixpkgs"; 40 41 switcher.url = "github:nobbz/nix-switcher?ref=main"; 42 switcher.inputs.nixpkgs.follows = "nixpkgs"; ··· 53 # a libgit2 in the current version fails to build with the nix provided patches. 54 # therefore using upstreams pin for now. 55 # nix.inputs.nixpkgs.follows = "nixpkgs"; 56 + 57 + nix-gl.url = "github:nix-community/nixgl"; 58 + nix-gl.inputs.nixpkgs.follows = "nixpkgs"; 59 60 home-manager.url = "github:nix-community/home-manager"; 61 home-manager.inputs.nixpkgs.follows = "nixpkgs";
+2
home/configurations/nmelzer_at_mimas.nix
··· 38 # ]; 39 }; 40 41 xsession.windowManager.awesome.autostart = [ 42 "${pkgs.blueman}/bin/blueman-applet" 43 "${pkgs.networkmanagerapplet}/bin/nm-applet"
··· 38 # ]; 39 }; 40 41 + programs.yazi.enable = true; 42 + 43 xsession.windowManager.awesome.autostart = [ 44 "${pkgs.blueman}/bin/blueman-applet" 45 "${pkgs.networkmanagerapplet}/bin/nm-applet"
+2 -1
home/configurations/nmelzer_at_phoebe.nix
··· 14 in { 15 nixpkgs.allowedUnfree = ["google-chrome" "vscode" "discord" "obsidian" "slack"]; 16 nixpkgs.config.permittedInsecurePackages = ["electron-25.9.0"]; 17 18 nix.checkConfig = false; 19 nix.settings.extra-experimental-features = ["flakes" "nix-command"]; ··· 67 68 services.playerctld.enable = true; 69 70 - home.file."${config.gtk.gtk2.configLocation}".force = true; 71 72 programs.ssh.includes = [ 73 config.sops.secrets.ssh.path
··· 14 in { 15 nixpkgs.allowedUnfree = ["google-chrome" "vscode" "discord" "obsidian" "slack"]; 16 nixpkgs.config.permittedInsecurePackages = ["electron-25.9.0"]; 17 + profiles.base.needsGL = true; 18 19 nix.checkConfig = false; 20 nix.settings.extra-experimental-features = ["flakes" "nix-command"]; ··· 68 69 services.playerctld.enable = true; 70 71 + gtk.gtk2.force = true; 72 73 programs.ssh.includes = [ 74 config.sops.secrets.ssh.path
+1 -2
home/modules/default.nix
··· 9 "programs/eza" = ./programs/eza; 10 "programs/ghostty" = ./programs/ghostty; 11 "programs/nixpkgs" = ./programs/nixpkgs; 12 - "programs/openshift" = ./programs/openshift; 13 "programs/p10k" = ./programs/p10k; 14 "programs/rbw" = ./programs/rbw; 15 16 "services/insync" = ./services/insync; 17 - "services/restic" = ./services/restic; 18 "services/rustic" = ./services/rustic; 19 20 "misc/awesome" = ./misc/awesome;
··· 9 "programs/eza" = ./programs/eza; 10 "programs/ghostty" = ./programs/ghostty; 11 "programs/nixpkgs" = ./programs/nixpkgs; 12 "programs/p10k" = ./programs/p10k; 13 "programs/rbw" = ./programs/rbw; 14 + "programs/wezterm" = ./programs/wezterm; 15 16 "services/insync" = ./services/insync; 17 "services/rustic" = ./services/rustic; 18 19 "misc/awesome" = ./misc/awesome;
+1 -1
home/modules/misc/rofi/common.rasi
··· 1 configuration { 2 - font: "Cascadia Mono PL 20"; 3 terminal: "@TERMINAL@"; 4 fixed-num-lines: false; 5 show-icons: true;
··· 1 configuration { 2 + font: "Departure Mono 22"; 3 terminal: "@TERMINAL@"; 4 fixed-num-lines: false; 5 show-icons: true;
+19 -16
home/modules/misc/rofi/default.nix
··· 1 {self, ...}: { 2 pkgs, 3 lib, 4 ... 5 }: let 6 self' = self.packages.x86_64-linux; ··· 10 --subst-var-by TERMINAL ${lib.getExe pkgs.wezterm} 11 ''; 12 13 - launcherConfig = pkgs.writeText "launcher-config" '' 14 - configuration { 15 - modes: "drun#run#ssh"; 16 - } 17 - @import "${common_rasi}" 18 ''; 19 20 - windowSwitcherConfig = pkgs.writeText "window-switcher-config" '' 21 - configuration { 22 - modes: "window"; 23 - } 24 - @import "${common_rasi}" 25 - ''; 26 27 - emojiConfig = pkgs.writeText "window-switcher-config" '' 28 - configuration { 29 - modes: "emoji#unicode:${self'."rofi/unicode"}/bin/rofiunicode.sh"; 30 - } 31 - @import "${common_rasi}" 32 ''; 33 34 wrapper = rofi: config:
··· 1 {self, ...}: { 2 pkgs, 3 lib, 4 + npins, 5 ... 6 }: let 7 self' = self.packages.x86_64-linux; ··· 11 --subst-var-by TERMINAL ${lib.getExe pkgs.wezterm} 12 ''; 13 14 + catppuccin = pkgs.runCommandNoCC "catppuccin.rasi" {preferLocalBuild = true;} '' 15 + substitute ${npins.catppuccin-rofi}/catppuccin-default.rasi $out \ 16 + --replace-fail '"catppuccin-mocha"' '"${npins.catppuccin-rofi}/themes/catppuccin-mocha.rasi"' 17 ''; 18 19 + writeConfig = name: body: 20 + pkgs.writeText name 21 + # rasi 22 + '' 23 + configuration { 24 + ${body} 25 + } 26 + @theme "${catppuccin}" 27 + @import "${common_rasi}" 28 + ''; 29 30 + windowSwitcherConfig = writeConfig "window-switcher-config" ''modes: "window";''; 31 + emojiConfig = writeConfig "emoji-config" ''modes: "emoji#unicode:${self'."rofi/unicode"}/bin/rofiunicode.sh";''; 32 + launcherConfig = writeConfig "launcher-config" '' 33 + modes: "drun#run#ssh"; 34 + ssh-command: "{terminal} ssh {host}"; 35 ''; 36 37 wrapper = rofi: config:
+41 -4
home/modules/profiles/base/default.nix
··· 2 self, 3 nix, 4 nvim, 5 ... 6 }: { 7 config, ··· 49 in { 50 options.profiles.base = { 51 enable = lib.mkEnableOption "The base profile, should be always enabled"; 52 }; 53 54 config = lib.mkIf cfg.enable { ··· 98 | sed -E 's/([0-9])([A-Za-z])/\1 \2/')" \ 99 "$(numfmt --to=none --format="%'f" ''${saved})" 100 ''; 101 in 102 - [optisave pkgs.departure-mono pkgs.hydra-check nvim.packages.x86_64-linux.default] ++ lib.optionals pkgs.stdenv.isLinux [pkgs.dconf]; 103 104 # dconf.enable = lib.mkMerge [ 105 # (lib.mkIf pkgs.stdenv.isLinux true) ··· 116 117 programs = { 118 advancedCopy.enable = true; 119 - bat.enable = true; 120 direnv.enable = true; 121 direnv.nix-direnv.enable = true; 122 direnv.nix-direnv.package = pkgs.nix-direnv.override {nix = nix.packages.${pkgs.system}.default;}; ··· 128 p10k.enable = true; 129 zoxide.enable = true; 130 131 ssh = { 132 enable = true; 133 compression = true; ··· 183 184 clock24 = true; 185 historyLimit = 10000; 186 - terminal = "screen-256color"; 187 }; 188 189 zsh = { ··· 214 } 215 ]; 216 217 - initExtra = '' 218 bindkey "^[[1;5D" backward-word 219 bindkey "^[[1;5C" forward-word 220
··· 2 self, 3 nix, 4 nvim, 5 + nix-gl, 6 ... 7 }: { 8 config, ··· 50 in { 51 options.profiles.base = { 52 enable = lib.mkEnableOption "The base profile, should be always enabled"; 53 + 54 + needsGL = lib.mkEnableOption "nix-gl wrappers"; 55 }; 56 57 config = lib.mkIf cfg.enable { ··· 101 | sed -E 's/([0-9])([A-Za-z])/\1 \2/')" \ 102 "$(numfmt --to=none --format="%'f" ''${saved})" 103 ''; 104 + neovide = 105 + if cfg.needsGL 106 + then 107 + pkgs.writeShellScriptBin nvim.packages.x86_64-linux.neovide.meta.mainProgram '' 108 + exec ${lib.getExe nix-gl.packages.x86_64-linux.nixGLIntel} ${lib.getExe nvim.packages.x86_64-linux.neovide} "$@" 109 + '' 110 + else nvim.packages.x86_64-linux.neovide; 111 in 112 + lib.mkMerge [ 113 + [optisave pkgs.departure-mono pkgs.hydra-check nvim.packages.x86_64-linux.neovim neovide] 114 + (lib.mkIf pkgs.stdenv.isLinux [pkgs.dconf]) 115 + ]; 116 117 # dconf.enable = lib.mkMerge [ 118 # (lib.mkIf pkgs.stdenv.isLinux true) ··· 129 130 programs = { 131 advancedCopy.enable = true; 132 direnv.enable = true; 133 direnv.nix-direnv.enable = true; 134 direnv.nix-direnv.package = pkgs.nix-direnv.override {nix = nix.packages.${pkgs.system}.default;}; ··· 140 p10k.enable = true; 141 zoxide.enable = true; 142 143 + bat = { 144 + enable = true; 145 + 146 + config.theme = "mocha"; 147 + 148 + themes.mocha = { 149 + src = npins.catppuccin-bat; 150 + file = "themes/Catppuccin Mocha.tmTheme"; 151 + }; 152 + }; 153 + 154 ssh = { 155 enable = true; 156 compression = true; ··· 206 207 clock24 = true; 208 historyLimit = 10000; 209 + terminal = "tmux-256color"; 210 + 211 + plugins = [ 212 + { 213 + plugin = pkgs.tmuxPlugins.catppuccin; 214 + extraConfig = '' 215 + set -g @catppuccin_flavor "mocha" 216 + set -g @catppuccin_window_status_style "rounded" 217 + ''; 218 + } 219 + ]; 220 + 221 + extraConfig = '' 222 + set -ag terminal-overrides ",xterm-256color:RGB" 223 + ''; 224 }; 225 226 zsh = { ··· 251 } 252 ]; 253 254 + initContent = '' 255 bindkey "^[[1;5D" backward-word 256 bindkey "^[[1;5C" forward-word 257
+22 -3
home/modules/profiles/development/default.nix
··· 13 }; 14 15 config = lib.mkIf cfg.enable { 16 programs.gh.enable = true; 17 programs.git = { 18 enable = true; ··· 26 inputs = builtins.attrValues {inherit (pkgs) git fzf ripgrep;}; 27 interpreter = "${pkgs.bash}/bin/bash"; 28 execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"]; 29 - } '' 30 git log --graph --color=always --format="%C(auto)%h%d %s0x09%C(white)%C(bold)%cr" "$@" | 31 fzf --ansi --no-sort --reverse --tiebreak=index \ 32 --bind=ctrl-s:toggle-sort \ ··· 39 inputs = builtins.attrValues {inherit (pkgs) git fzf coreutils gawk;}; 40 interpreter = "${pkgs.bash}/bin/bash"; 41 execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"]; 42 - } '' 43 # Function to determine the ref type 44 function get_ref_type() { 45 local ref="$1" ··· 119 hopbase = ''!f() { set -o nounset; tag=$(git describe --abbrev=0 --tag "$1") && git rebase -i "''${tag}"; }; f''; 120 comfix = "!${mkFixupAlias "fixup"}"; 121 comreb = "!${mkFixupAlias "rebase"}"; 122 }; 123 124 extraConfig = { 125 init.defaultBranch = "main"; 126 pull.rebase = false; 127 rerere.enabled = true; 128 }; ··· 167 ]; 168 }; 169 170 - home.packages = [pkgs.ripgrep]; 171 }; 172 }
··· 13 }; 14 15 config = lib.mkIf cfg.enable { 16 + programs.jujutsu = { 17 + enable = true; 18 + settings = { 19 + user = { 20 + name = config.programs.git.userName; 21 + email = config.programs.git.userEmail; 22 + }; 23 + 24 + ui.diff.tool = [config.programs.git.extraConfig.diff.external "$left" "$right"]; 25 + }; 26 + }; 27 + 28 programs.gh.enable = true; 29 programs.git = { 30 enable = true; ··· 38 inputs = builtins.attrValues {inherit (pkgs) git fzf ripgrep;}; 39 interpreter = "${pkgs.bash}/bin/bash"; 40 execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"]; 41 + } 42 + # bash 43 + '' 44 git log --graph --color=always --format="%C(auto)%h%d %s0x09%C(white)%C(bold)%cr" "$@" | 45 fzf --ansi --no-sort --reverse --tiebreak=index \ 46 --bind=ctrl-s:toggle-sort \ ··· 53 inputs = builtins.attrValues {inherit (pkgs) git fzf coreutils gawk;}; 54 interpreter = "${pkgs.bash}/bin/bash"; 55 execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"]; 56 + } 57 + # bash 58 + '' 59 # Function to determine the ref type 60 function get_ref_type() { 61 local ref="$1" ··· 135 hopbase = ''!f() { set -o nounset; tag=$(git describe --abbrev=0 --tag "$1") && git rebase -i "''${tag}"; }; f''; 136 comfix = "!${mkFixupAlias "fixup"}"; 137 comreb = "!${mkFixupAlias "rebase"}"; 138 + show = "show --ext-diff"; 139 + lp = "log -p --ext-diff"; 140 }; 141 142 extraConfig = { 143 init.defaultBranch = "main"; 144 + diff.external = lib.getExe pkgs.difftastic; 145 pull.rebase = false; 146 rerere.enabled = true; 147 }; ··· 186 ]; 187 }; 188 189 + home.packages = [pkgs.ripgrep pkgs.difftastic]; 190 }; 191 }
-23
home/modules/programs/openshift/default.nix
··· 1 - _: { 2 - pkgs, 3 - lib, 4 - config, 5 - ... 6 - }: let 7 - cfg = config.programs.openshift; 8 - in { 9 - options.programs.openshift = { 10 - enable = lib.mkEnableOption "Tools to manage openshift instances"; 11 - }; 12 - 13 - config = lib.mkIf cfg.enable { 14 - home.packages = [pkgs.sops pkgs.openshift (lib.setPrio 0 pkgs.kubectl) pkgs.kubernetes-helm]; 15 - 16 - programs.zsh.initExtra = '' 17 - # Enable autocomplete for oc, kubectl and helm 18 - eval "$(${pkgs.openshift}/bin/oc completion zsh)" 19 - eval "$(${pkgs.kubectl}/bin/kubectl completion zsh)" 20 - eval "$(${pkgs.kubernetes-helm}/bin/helm completion zsh)" 21 - ''; 22 - }; 23 - }
···
+60
home/modules/programs/wezterm/default.nix
···
··· 1 + _: { 2 + config, 3 + pkgs, 4 + ... 5 + }: { 6 + home.packages = [pkgs.wezterm]; 7 + 8 + xdg.configFile."wezterm/wezterm.lua".text = 9 + # lua 10 + '' 11 + -- Pull in the wezterm API 12 + local wezterm = require 'wezterm' 13 + 14 + -- This table will hold the configuration. 15 + local config = {} 16 + 17 + -- In newer versions of wezterm, use the config_builder which will 18 + -- help provide clearer error messages 19 + if wezterm.config_builder then 20 + config = wezterm.config_builder() 21 + end 22 + 23 + -- This is where you actually apply your config choices 24 + 25 + -- bells 26 + config.audible_bell = "Disabled" 27 + config.visual_bell = { 28 + fade_in_function = "EaseIn", 29 + fade_in_duration_ms = 150, 30 + fade_out_function = "EaseOut", 31 + fade_out_duration_ms = 150, 32 + } 33 + 34 + -- For example, changing the color scheme: 35 + config.color_scheme = "Catppuccin Mocha" 36 + 37 + -- show a scrollbar 38 + config.enable_scroll_bar = true 39 + 40 + -- forbid window size change on change of fontsize 41 + config.adjust_window_size_when_changing_font_size = false 42 + 43 + -- disable ligatures 44 + config.harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' } 45 + 46 + -- set the font 47 + config.font_dirs = { '${pkgs.departure-mono}/share/fonts/otf' } 48 + config.font_size = 11.0 * 1.25 49 + config.font = wezterm.font("Departure Mono") 50 + 51 + -- setting up keybindings 52 + config.keys = { 53 + -- The default is `C-Z` (so also pressing SHIFT), I prefer to not have SHIFT pressed 54 + { key = 'z', mods = 'CTRL', action = wezterm.action.TogglePaneZoomState, }, 55 + } 56 + 57 + -- and finally, return the configuration to wezterm 58 + return config 59 + ''; 60 + }
-85
home/modules/services/restic/default.nix
··· 1 - {self, ...}: { 2 - config, 3 - lib, 4 - pkgs, 5 - self, 6 - ... 7 - }: let 8 - cfg = config.services.restic; 9 - 10 - bin = "${cfg.package}/bin/restic"; 11 - excludes = builtins.concatStringsSep " " (builtins.map (e: "--exclude=${e}") cfg.exclude); 12 - xFlags = lib.optionalString cfg.oneFileSystem "-x"; 13 - compressFlag = "--compression ${cfg.compression}"; 14 - flags = "${xFlags} ${compressFlag} ${excludes}"; 15 - 16 - command = "${bin} --tag home -vv backup ${flags} %h"; 17 - in { 18 - options.services.restic = { 19 - enable = lib.mkEnableOption "Restic Backup Tool"; 20 - 21 - package = lib.mkOption { 22 - type = lib.types.package; 23 - default = pkgs.restic; 24 - description = "Restic derivation to use"; 25 - }; 26 - 27 - exclude = lib.mkOption { 28 - type = lib.types.listOf lib.types.str; 29 - default = []; 30 - description = "Corresponds to `--exclude`. Use `%h` instead of `~`"; 31 - }; 32 - 33 - oneFileSystem = lib.mkOption { 34 - type = lib.types.bool; 35 - default = false; 36 - description = "If true, exclude other file systems, don't cross filesystem boundaries and subvolumes"; 37 - }; 38 - 39 - repo = lib.mkOption { 40 - type = lib.types.str; 41 - description = "Location of the repository"; 42 - }; 43 - 44 - compression = lib.mkOption { 45 - type = lib.types.enum ["off" "auto" "max"]; 46 - description = "The compression mode to use"; 47 - default = "auto"; 48 - }; 49 - 50 - # TODO: Add options for inlcude, password file, etc 51 - }; 52 - 53 - config = lib.mkIf cfg.enable { 54 - home.packages = [cfg.package]; 55 - 56 - systemd.user.services.restic-backup = { 57 - Unit = { 58 - Description = "Restic Backup Tool"; 59 - StartLimitIntervalSec = "25m"; 60 - StartLimitBurst = "4"; 61 - }; 62 - 63 - Service = { 64 - Environment = [ 65 - "PATH=${lib.makeBinPath [pkgs.openssh]}" 66 - "RESTIC_PASSWORD_FILE=%h/.config/restic/password" 67 - "RESTIC_REPOSITORY=${cfg.repo}" 68 - ]; 69 - Type = "oneshot"; 70 - ExecStart = command; 71 - Restart = "on-failure"; 72 - RestartSec = "2m"; 73 - }; 74 - }; 75 - 76 - systemd.user.timers.restic-backup = { 77 - Unit.Description = "Restic periodic backup"; 78 - Timer = { 79 - Unit = "restic-backup.service"; 80 - OnCalendar = "hourly"; 81 - }; 82 - Install.WantedBy = ["timers.target"]; 83 - }; 84 - }; 85 - }
···
+212
nixos/configurations/mimas/rustic-timers.nix
···
··· 1 + _: { 2 + config, 3 + pkgs, 4 + lib, 5 + ... 6 + }: let 7 + profile_name = template: lib.removeSuffix ".toml" config.sops.templates."${template}".path; 8 + 9 + environment = { 10 + RUSTIC_NO_PROGRESS = "true"; 11 + RUSTIC_CACHE_DIR = "%T/rustic"; 12 + }; 13 + 14 + mimas_template = 15 + # toml 16 + '' 17 + [repository] 18 + repository = "rest:https://restic.mimas.internal.nobbz.dev/mimas" 19 + password-file = "${config.sops.secrets.rustic.path}" 20 + 21 + [copy] 22 + targets = ["${profile_name "mimas_hetzner.toml"}"] 23 + ''; 24 + mimas_hetzner_template = 25 + # toml 26 + '' 27 + [repository] 28 + repository = "opendal:sftp" 29 + password-file = "${config.sops.secrets.rustic.path}" 30 + 31 + [repository.options] 32 + endpoint = "ssh://${config.sops.placeholder.rustic-user}.your-storagebox.de:23" 33 + user = "${config.sops.placeholder.rustic-user}" 34 + key = "/root/.ssh/id_ed25519" 35 + root = "/home/mimas" 36 + ''; 37 + 38 + nobbz_template = 39 + # toml 40 + '' 41 + [repository] 42 + repository = "rest:https://restic.mimas.internal.nobbz.dev/nobbz" 43 + password-file = "${config.sops.secrets.rustic.path}" 44 + 45 + [copy] 46 + targets = ["${profile_name "nobbz_hetzner.toml"}"] 47 + ''; 48 + 49 + nobbz_hetzner_template = 50 + # toml 51 + '' 52 + [repository] 53 + repository = "opendal:sftp" 54 + password-file = "${config.sops.secrets.rustic.path}" 55 + 56 + [repository.options] 57 + endpoint = "ssh://${config.sops.placeholder.rustic-user}.your-storagebox.de:23" 58 + user = "${config.sops.placeholder.rustic-user}" 59 + key = "/root/.ssh/id_ed25519" 60 + root = "/home/nobbz" 61 + ''; 62 + 63 + schedule = { 64 + rustic-mimas-clean = "*-*-* 01:00:00"; 65 + rustic-nobbz-clean = "*-*-* 01:30:00"; 66 + rustic-mimas-hetzner-clean = "*-*-* 02:00:00"; 67 + rustic-nobbz-hetzner-clean = "*-*-* 03:00:00"; 68 + }; 69 + 70 + mkTimer = name: calendar: { 71 + "${name}" = { 72 + wantedBy = ["timers.target"]; 73 + timerConfig.OnCalendar = calendar; 74 + }; 75 + }; 76 + 77 + notify = lib.getExe' pkgs.systemd "systemd-notify"; 78 + in { 79 + sops.secrets.rustic = {}; 80 + sops.secrets.rustic-user = {}; 81 + 82 + sops.templates."mimas.toml".content = mimas_template; 83 + sops.templates."mimas_hetzner.toml".content = mimas_hetzner_template; 84 + sops.templates."nobbz.toml".content = nobbz_template; 85 + sops.templates."nobbz_hetzner.toml".content = nobbz_hetzner_template; 86 + 87 + systemd.timers = lib.pipe schedule [ 88 + (lib.mapAttrsToList mkTimer) 89 + lib.mkMerge 90 + ]; 91 + 92 + systemd.services = { 93 + rustic-mimas-clean = { 94 + path = [pkgs.rustic pkgs.openssh]; 95 + inherit environment; 96 + serviceConfig = { 97 + NotifyAccess = "all"; 98 + Type = "notify"; 99 + }; 100 + script = '' 101 + ${notify} --ready 102 + ${notify} --status=forget 103 + rustic forget -P ${profile_name "mimas.toml"} \ 104 + --keep-last 4 \ 105 + --keep-within-hourly 1d \ 106 + --keep-within-daily 5d \ 107 + --keep-within-weekly 35d \ 108 + --keep-within-monthly 100d \ 109 + --keep-within-yearly 2y 110 + 111 + ${notify} --status=prune 112 + rustic prune -P ${profile_name "mimas.toml"} \ 113 + --max-unused=0B \ 114 + --keep-delete=12h \ 115 + --max-repack=50GiB 116 + 117 + ${notify} --status=copy 118 + rustic copy -P ${profile_name "mimas.toml"} 119 + 120 + ${notify} --stopping --status="" 121 + ''; 122 + }; 123 + 124 + rustic-nobbz-clean = { 125 + path = [pkgs.rustic pkgs.openssh]; 126 + inherit environment; 127 + serviceConfig = { 128 + NotifyAccess = "all"; 129 + Type = "notify"; 130 + }; 131 + script = '' 132 + ${notify} --ready 133 + ${notify} --status=forget 134 + rustic forget -P ${profile_name "nobbz.toml"} \ 135 + --filter-tags home \ 136 + --keep-last 4 \ 137 + --keep-within-hourly 1d \ 138 + --keep-within-daily 5d \ 139 + --keep-within-weekly 35d \ 140 + --keep-within-monthly 100d \ 141 + --keep-within-yearly 2y 142 + 143 + ${notify} --status=prune 144 + rustic prune -P ${profile_name "nobbz.toml"} \ 145 + --max-unused=0B \ 146 + --keep-delete=12h \ 147 + --max-repack=50GiB 148 + 149 + ${notify} --status=copy 150 + rustic copy -P ${profile_name "nobbz.toml"} 151 + 152 + ${notify} --stopping --status="" 153 + ''; 154 + }; 155 + 156 + rustic-nobbz-hetzner-clean = { 157 + path = [pkgs.rustic pkgs.openssh]; 158 + inherit environment; 159 + serviceConfig = { 160 + NotifyAccess = "all"; 161 + Type = "notify"; 162 + }; 163 + script = '' 164 + ${notify} --ready 165 + ${notify} --status=forget 166 + rustic forget -P ${profile_name "nobbz_hetzner.toml"} \ 167 + --keep-last 1 \ 168 + --keep-within-hourly 2h \ 169 + --keep-within-daily 10d \ 170 + --keep-within-weekly 65d \ 171 + --keep-within-monthly 190d \ 172 + --keep-within-yearly 5y 173 + 174 + ${notify} --status=prune 175 + rustic prune -P ${profile_name "nobbz_hetzner.toml"} \ 176 + --max-unused 0B \ 177 + --max-repack 20GiB \ 178 + --keep-delete 11h 179 + 180 + ${notify} --stopping --status="" 181 + ''; 182 + }; 183 + 184 + rustic-mimas-hetzner-clean = { 185 + path = [pkgs.rustic pkgs.openssh]; 186 + inherit environment; 187 + serviceConfig = { 188 + NotifyAccess = "all"; 189 + Type = "notify"; 190 + }; 191 + script = '' 192 + ${notify} --ready 193 + ${notify} --status=forget 194 + rustic forget -P ${profile_name "mimas_hetzner.toml"} \ 195 + --keep-last 1 \ 196 + --keep-within-hourly 2h \ 197 + --keep-within-daily 10d \ 198 + --keep-within-weekly 65d \ 199 + --keep-within-monthly 190d \ 200 + --keep-within-yearly 5y 201 + 202 + ${notify} --status=prune 203 + rustic prune -P ${profile_name "mimas_hetzner.toml"} \ 204 + --max-unused 0B \ 205 + --max-repack 20GiB \ 206 + --keep-delete 11h 207 + 208 + ${notify} --stopping --status="" 209 + ''; 210 + }; 211 + }; 212 + }
+4
nixos/configurations/mimas.nix
··· 12 imports = [ 13 (import ./mimas/paperless.nix inputs) 14 (import ./mimas/restic.nix inputs) 15 (import ./mimas/vaultwarden.nix inputs) 16 ./mimas/gitea.nix 17 ]; 18 19 services.tailscale.enable = true; 20 21 sops.age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"]; 22 sops.defaultSopsFile = "${self}/secrets/mimas/default.yaml";
··· 12 imports = [ 13 (import ./mimas/paperless.nix inputs) 14 (import ./mimas/restic.nix inputs) 15 + (import ./mimas/rustic-timers.nix inputs) 16 (import ./mimas/vaultwarden.nix inputs) 17 ./mimas/gitea.nix 18 ]; 19 20 services.tailscale.enable = true; 21 + 22 + security.pam.services.i3lock.enable = true; 23 + security.pam.services.i3lock-color.enable = true; 24 25 sops.age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"]; 26 sops.defaultSopsFile = "${self}/secrets/mimas/default.yaml";
+19 -7
npins/sources.json
··· 1 { 2 "pins": { 3 - "awesome": { 4 "type": "Git", 5 "repository": { 6 "type": "GitHub", 7 - "owner": "awesomewm", 8 - "repo": "awesome" 9 }, 10 - "branch": "master", 11 - "revision": "8b1f8958b46b3e75618bc822d512bb4d449a89aa", 12 - "url": "https://github.com/awesomewm/awesome/archive/8b1f8958b46b3e75618bc822d512bb4d449a89aa.tar.gz", 13 - "hash": "0a140ixasiyzyr6axd5akjcgdgx58pn2kqdgy9ag6hczhpf7jrk4" 14 }, 15 "fzf-tab": { 16 "type": "Git",
··· 1 { 2 "pins": { 3 + "catppuccin-bat": { 4 "type": "Git", 5 "repository": { 6 "type": "GitHub", 7 + "owner": "catppuccin", 8 + "repo": "bat" 9 }, 10 + "branch": "main", 11 + "revision": "699f60fc8ec434574ca7451b444b880430319941", 12 + "url": "https://github.com/catppuccin/bat/archive/699f60fc8ec434574ca7451b444b880430319941.tar.gz", 13 + "hash": "1lirgwgh2hnz6j60py19bbmhvgaqs7i6wf6702k6n83lgw4aixg9" 14 + }, 15 + "catppuccin-rofi": { 16 + "type": "Git", 17 + "repository": { 18 + "type": "GitHub", 19 + "owner": "catppuccin", 20 + "repo": "rofi" 21 + }, 22 + "branch": "main", 23 + "revision": "c24a212a6b07c2d45f32d01d7f10b4d88ddc9f45", 24 + "url": "https://github.com/catppuccin/rofi/archive/c24a212a6b07c2d45f32d01d7f10b4d88ddc9f45.tar.gz", 25 + "hash": "0236bcwad4cmr1fhnywvcnzf7xdmhhwgrkrq8jdg8livhh1h8rjq" 26 }, 27 "fzf-tab": { 28 "type": "Git",
+1
packages/advcp/default.nix
··· 7 stdenv.mkDerivation rec { 8 name = "advcp"; 9 version = "9.1"; 10 11 src = fetchurl { 12 name = "source-${name}-${version}.tar.xz";
··· 7 stdenv.mkDerivation rec { 8 name = "advcp"; 9 version = "9.1"; 10 + strictDeps = true; 11 12 src = fetchurl { 13 name = "source-${name}-${version}.tar.xz";
+1 -28
packages/default.nix
··· 1 - { 2 - inputs, 3 - npins, 4 - ... 5 - }: { 6 perSystem = { 7 system, 8 pkgs, ··· 17 config.allowUnfree = true; 18 config.google-chrome.enableWideVine = true; 19 }; 20 - 21 - awesome = pkgs.awesome.overrideAttrs (oa: { 22 - version = npins.awesome.revision; 23 - src = npins.awesome; 24 - 25 - patches = []; 26 - 27 - postPatch = '' 28 - patchShebangs tests/examples/_postprocess.lua 29 - ''; 30 - }); 31 in { 32 packages = lib.mkMerge [ 33 { 34 - installer-iso = 35 - (upkgs.callPackage ./installer { 36 - inherit (inputs.nixpkgs.lib) nixosSystem; 37 - inherit npins; 38 - inherit (inputs) nvim; 39 - }) 40 - .config 41 - .system 42 - .build 43 - .isoImage; 44 - 45 advcp = upkgs.callPackage ./advcp {}; 46 "rofi/unicode" = upkgs.callPackage ./rofi-unicode {}; 47 } 48 (lib.mkIf pkgs.stdenv.isLinux { 49 inherit (inputs'.switcher.packages) switcher; 50 - inherit awesome; 51 }) 52 (lib.mkIf (system == "x86_64-linux") { 53 inherit (chromePkgs) google-chrome;
··· 1 + {inputs, ...}: { 2 perSystem = { 3 system, 4 pkgs, ··· 13 config.allowUnfree = true; 14 config.google-chrome.enableWideVine = true; 15 }; 16 in { 17 packages = lib.mkMerge [ 18 { 19 advcp = upkgs.callPackage ./advcp {}; 20 "rofi/unicode" = upkgs.callPackage ./rofi-unicode {}; 21 } 22 (lib.mkIf pkgs.stdenv.isLinux { 23 inherit (inputs'.switcher.packages) switcher; 24 }) 25 (lib.mkIf (system == "x86_64-linux") { 26 inherit (chromePkgs) google-chrome;
-47
packages/installer/awesome.nix
··· 1 - { 2 - lib, 3 - pkgs, 4 - npins, 5 - ... 6 - }: let 7 - rc_lua = pkgs.runCommandNoCC "awesomerc.lua" {} '' 8 - substitute ${./awesomerc.lua} $out \ 9 - --subst-var-by FILE_PATH_WALLPAPER ${./nix-glow-black.png} \ 10 - --subst-var-by TERMINAL_ICON_SVG ${./icons/terminal.svg} \ 11 - --subst-var-by GLOBE_ICON_SVG ${./icons/globe.svg} \ 12 - --subst-var-by PARTED_ICON_SVG ${./icons/parted.svg} \ 13 - --subst-var-by NIX_FLAKE_SVG ${./icons/nix-flake.svg} 14 - ''; 15 - 16 - menu_entries = pkgs.writeText "menu_entries.lua" '' 17 - return { 18 - { "NixOS Manual", "nixos-help", "${./icons/manual.svg}" }, 19 - { "GParted", "${lib.getExe pkgs.gparted}", "${./icons/parted.svg}" }, 20 - { "Reboot", "reboot", "${./icons/reboot.svg}" }, 21 - { "Power Off", "poweroff", "${./icons/power-off.svg}" }, 22 - } 23 - ''; 24 - 25 - awesome = pkgs.awesome.overrideAttrs (oa: { 26 - version = npins.awesome.revision; 27 - src = npins.awesome; 28 - 29 - patches = []; 30 - 31 - postPatch = '' 32 - patchShebangs tests/examples/_postprocess.lua 33 - ''; 34 - }); 35 - in { 36 - _file = ./awesome.nix; 37 - 38 - services.xserver.windowManager.awesome = { 39 - enable = true; 40 - package = awesome; 41 - }; 42 - 43 - systemd.user.tmpfiles.rules = [ 44 - "L+ %h/.config/awesome/rc.lua - - - - ${rc_lua}" 45 - "L+ %h/.config/awesome/menu_entries.lua - - - - ${menu_entries}" 46 - ]; 47 - }
···
-612
packages/installer/awesomerc.lua
··· 1 - -- awesome_mode: api-level=4:screen=on 2 - -- If LuaRocks is installed, make sure that packages installed through it are 3 - -- found (e.g. lgi). If LuaRocks is not installed, do nothing. 4 - pcall(require, "luarocks.loader") 5 - 6 - -- Standard awesome library 7 - local gears = require("gears") 8 - local awful = require("awful") 9 - require("awful.autofocus") 10 - -- Widget and layout library 11 - local wibox = require("wibox") 12 - -- Theme handling library 13 - local beautiful = require("beautiful") 14 - -- Notification library 15 - local naughty = require("naughty") 16 - -- Declarative object management 17 - local ruled = require("ruled") 18 - local menubar = require("menubar") 19 - local hotkeys_popup = require("awful.hotkeys_popup") 20 - -- Enable hotkeys help widget for VIM and other apps 21 - -- when client with a matching name is opened: 22 - 23 - require("awful.hotkeys_popup.keys") 24 - 25 - -- {{{ Error handling 26 - -- Check if awesome encountered an error during startup and fell back to 27 - -- another config (This code will only ever execute for the fallback config) 28 - naughty.connect_signal("request::display_error", function(message, startup) 29 - naughty.notification { 30 - urgency = "critical", 31 - title = "Oops, an error happened" .. (startup and " during startup!" or "!"), 32 - message = message 33 - } 34 - end) 35 - -- }}} 36 - 37 - -- {{{ Variable definitions 38 - -- Themes define colours, icons, font and wallpapers. 39 - beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua") 40 - 41 - -- This is used later as the default terminal and editor to run. 42 - local terminal = "xterm" 43 - local editor = os.getenv("EDITOR") or "nano" 44 - local editor_cmd = terminal .. " -e " .. editor 45 - 46 - -- Default modkey. 47 - -- Usually, Mod4 is the key with a logo between Control and Alt. 48 - -- If you do not like this or do not have such a key, 49 - -- I suggest you to remap Mod4 to another key using xmodmap or other tools. 50 - -- However, you can use another modifier like Mod1, but it may interact with others. 51 - local modkey = "Mod4" 52 - -- }}} 53 - 54 - -- {{{ Menu 55 - -- Create a launcher widget and a main menu 56 - local myawesomemenu = { 57 - { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end }, 58 - { "manual", terminal .. " -e man awesome" }, 59 - { "edit config", editor_cmd .. " " .. awesome.conffile }, 60 - { "restart", awesome.restart }, 61 - { "quit", function() awesome.quit() end }, 62 - } 63 - 64 - -- Read the menu entries from generated file 65 - local menu_entries = require("menu_entries") 66 - local menu_items = { 67 - { "awesome", myawesomemenu, beautiful.awesome_icon }, 68 - { "terminal", terminal, "@TERMINAL_ICON_SVG@" }, 69 - } 70 - 71 - 72 - for _, v in pairs(menu_entries) do 73 - table.insert(menu_items, v) 74 - end 75 - 76 - local mymainmenu = awful.menu({ 77 - items = menu_items, 78 - }) 79 - 80 - local mylauncher = awful.widget.launcher({ 81 - image = "@NIX_FLAKE_SVG@", 82 - menu = mymainmenu 83 - }) 84 - 85 - -- Menubar configuration 86 - menubar.utils.terminal = terminal -- Set the terminal for applications that require it 87 - -- }}} 88 - 89 - -- {{{ Tag layout 90 - -- Table of layouts to cover with awful.layout.inc, order matters. 91 - tag.connect_signal("request::default_layouts", function() 92 - awful.layout.append_default_layouts({ 93 - awful.layout.suit.tile, 94 - awful.layout.suit.tile.left, 95 - awful.layout.suit.tile.bottom, 96 - awful.layout.suit.tile.top, 97 - awful.layout.suit.fair, 98 - awful.layout.suit.fair.horizontal, 99 - awful.layout.suit.spiral, 100 - awful.layout.suit.spiral.dwindle, 101 - awful.layout.suit.max, 102 - awful.layout.suit.max.fullscreen, 103 - awful.layout.suit.magnifier, 104 - awful.layout.suit.corner.nw, 105 - awful.layout.suit.floating, 106 - }) 107 - end) 108 - -- }}} 109 - 110 - -- {{{ Wallpaper 111 - screen.connect_signal("request::wallpaper", function(s) 112 - awful.wallpaper { 113 - screen = s, 114 - widget = { 115 - { 116 - image = "@FILE_PATH_WALLPAPER@", 117 - upscale = true, 118 - downscale = true, 119 - widget = wibox.widget.imagebox, 120 - }, 121 - valign = "center", 122 - halign = "center", 123 - tiled = false, 124 - widget = wibox.container.tile, 125 - } 126 - } 127 - end) 128 - -- }}} 129 - 130 - -- {{{ Wibar 131 - 132 - -- Keyboard map indicator and switcher 133 - local mykeyboardlayout = awful.widget.keyboardlayout() 134 - 135 - -- Create a textclock widget 136 - local mytextclock = wibox.widget.textclock() 137 - 138 - screen.connect_signal("request::desktop_decoration", function(s) 139 - -- Each screen has its own tag table. 140 - local svgFillColor = "#d3d3d3" 141 - local svgEnd = [[</svg>]] 142 - 143 - local partedSvg = [[<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">]] .. 144 - [[<path fill="]] .. 145 - svgFillColor .. 146 - [[" d="M13 30a11 11 0 0 1 0-22a1 1 0 0 1 1 1v9h9a1 1 0 0 1 1 1a11 11 0 0 1-11 11Zm-1-19.94A9 9 0 1 0 21.94 20H14a2 2 0 0 1-2-2Z"/><path fill="]] .. 147 - svgFillColor .. 148 - [[" d="M28 14h-9a2 2 0 0 1-2-2V3a1 1 0 0 1 1-1a11 11 0 0 1 11 11a1 1 0 0 1-1 1Zm-9-2h7.94A9 9 0 0 0 19 4.06Z"/>]] .. 149 - svgEnd 150 - 151 - local first = awful.tag.add("1", { 152 - screen = s, 153 - icon_only = true, 154 - icon = "@TERMINAL_ICON_SVG@", 155 - layout = awful.layout.layouts[1], 156 - }) 157 - 158 - awful.tag.add("2", { 159 - screen = s, 160 - icon_only = true, 161 - icon = "@GLOBE_ICON_SVG@", 162 - layout = awful.layout.layouts[1], 163 - }) 164 - 165 - awful.tag.add("3", { 166 - screen = s, 167 - icon_only = true, 168 - icon = "@PARTED_ICON_SVG@", 169 - layout = awful.layout.layouts[1], 170 - }) 171 - 172 - awful.tag({ "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1]) 173 - 174 - 175 - first:view_only() 176 - 177 - -- Create a promptbox for each screen 178 - s.mypromptbox = awful.widget.prompt() 179 - 180 - -- Create an imagebox widget which will contain an icon indicating which layout we're using. 181 - -- We need one layoutbox per screen. 182 - s.mylayoutbox = awful.widget.layoutbox { 183 - screen = s, 184 - buttons = { 185 - awful.button({}, 1, function() awful.layout.inc(1) end), 186 - awful.button({}, 3, function() awful.layout.inc(-1) end), 187 - awful.button({}, 4, function() awful.layout.inc(-1) end), 188 - awful.button({}, 5, function() awful.layout.inc(1) end), 189 - } 190 - } 191 - 192 - -- Create a taglist widget 193 - s.mytaglist = awful.widget.taglist { 194 - screen = s, 195 - filter = awful.widget.taglist.filter.all, 196 - buttons = { 197 - awful.button({}, 1, function(t) t:view_only() end), 198 - awful.button({ modkey }, 1, function(t) 199 - if client.focus then 200 - client.focus:move_to_tag(t) 201 - end 202 - end), 203 - awful.button({}, 3, awful.tag.viewtoggle), 204 - awful.button({ modkey }, 3, function(t) 205 - if client.focus then 206 - client.focus:toggle_tag(t) 207 - end 208 - end), 209 - awful.button({}, 4, function(t) awful.tag.viewprev(t.screen) end), 210 - awful.button({}, 5, function(t) awful.tag.viewnext(t.screen) end), 211 - } 212 - } 213 - 214 - -- Create a tasklist widget 215 - s.mytasklist = awful.widget.tasklist { 216 - screen = s, 217 - filter = awful.widget.tasklist.filter.currenttags, 218 - buttons = { 219 - awful.button({}, 1, function(c) 220 - c:activate { context = "tasklist", action = "toggle_minimization" } 221 - end), 222 - awful.button({}, 3, function() awful.menu.client_list { theme = { width = 250 } } end), 223 - awful.button({}, 4, function() awful.client.focus.byidx(-1) end), 224 - awful.button({}, 5, function() awful.client.focus.byidx(1) end), 225 - } 226 - } 227 - 228 - -- Create the wibox 229 - s.mywibox = awful.wibar { 230 - position = "top", 231 - screen = s, 232 - widget = { 233 - layout = wibox.layout.align.horizontal, 234 - { -- Left widgets 235 - layout = wibox.layout.fixed.horizontal, 236 - mylauncher, 237 - s.mytaglist, 238 - s.mypromptbox, 239 - }, 240 - s.mytasklist, -- Middle widget 241 - { -- Right widgets 242 - layout = wibox.layout.fixed.horizontal, 243 - mykeyboardlayout, 244 - wibox.widget.systray(), 245 - mytextclock, 246 - s.mylayoutbox, 247 - }, 248 - } 249 - } 250 - end) 251 - 252 - -- }}} 253 - 254 - -- {{{ Mouse bindings 255 - awful.mouse.append_global_mousebindings({ 256 - awful.button({}, 3, function() mymainmenu:toggle() end), 257 - awful.button({}, 4, awful.tag.viewprev), 258 - awful.button({}, 5, awful.tag.viewnext), 259 - }) 260 - -- }}} 261 - 262 - -- {{{ Key bindings 263 - 264 - -- General Awesome keys 265 - awful.keyboard.append_global_keybindings({ 266 - awful.key({ modkey, }, "s", hotkeys_popup.show_help, 267 - { description = "show help", group = "awesome" }), 268 - awful.key({ modkey, }, "w", function() mymainmenu:show() end, 269 - { description = "show main menu", group = "awesome" }), 270 - awful.key({ modkey, "Control" }, "r", awesome.restart, 271 - { description = "reload awesome", group = "awesome" }), 272 - awful.key({ modkey, "Shift" }, "q", awesome.quit, 273 - { description = "quit awesome", group = "awesome" }), 274 - awful.key({ modkey }, "x", 275 - function() 276 - awful.prompt.run { 277 - prompt = "Run Lua code: ", 278 - textbox = awful.screen.focused().mypromptbox.widget, 279 - exe_callback = awful.util.eval, 280 - history_path = awful.util.get_cache_dir() .. "/history_eval" 281 - } 282 - end, 283 - { description = "lua execute prompt", group = "awesome" }), 284 - awful.key({ modkey, }, "Return", function() awful.spawn(terminal) end, 285 - { description = "open a terminal", group = "launcher" }), 286 - awful.key({ modkey }, "r", function() awful.screen.focused().mypromptbox:run() end, 287 - { description = "run prompt", group = "launcher" }), 288 - awful.key({ modkey }, "p", function() menubar.show() end, 289 - { description = "show the menubar", group = "launcher" }), 290 - }) 291 - 292 - -- Tags related keybindings 293 - awful.keyboard.append_global_keybindings({ 294 - awful.key({ modkey, }, "Left", awful.tag.viewprev, 295 - { description = "view previous", group = "tag" }), 296 - awful.key({ modkey, }, "Right", awful.tag.viewnext, 297 - { description = "view next", group = "tag" }), 298 - awful.key({ modkey, }, "Escape", awful.tag.history.restore, 299 - { description = "go back", group = "tag" }), 300 - }) 301 - 302 - -- Focus related keybindings 303 - awful.keyboard.append_global_keybindings({ 304 - awful.key({ modkey, }, "j", 305 - function() 306 - awful.client.focus.byidx(1) 307 - end, 308 - { description = "focus next by index", group = "client" } 309 - ), 310 - awful.key({ modkey, }, "k", 311 - function() 312 - awful.client.focus.byidx(-1) 313 - end, 314 - { description = "focus previous by index", group = "client" } 315 - ), 316 - awful.key({ modkey, }, "Tab", 317 - function() 318 - awful.client.focus.history.previous() 319 - if client.focus then 320 - client.focus:raise() 321 - end 322 - end, 323 - { description = "go back", group = "client" }), 324 - awful.key({ modkey, "Control" }, "j", function() awful.screen.focus_relative(1) end, 325 - { description = "focus the next screen", group = "screen" }), 326 - awful.key({ modkey, "Control" }, "k", function() awful.screen.focus_relative(-1) end, 327 - { description = "focus the previous screen", group = "screen" }), 328 - awful.key({ modkey, "Control" }, "n", 329 - function() 330 - local c = awful.client.restore() 331 - -- Focus restored client 332 - if c then 333 - c:activate { raise = true, context = "key.unminimize" } 334 - end 335 - end, 336 - { description = "restore minimized", group = "client" }), 337 - }) 338 - 339 - -- Layout related keybindings 340 - awful.keyboard.append_global_keybindings({ 341 - awful.key({ modkey, "Shift" }, "j", function() awful.client.swap.byidx(1) end, 342 - { description = "swap with next client by index", group = "client" }), 343 - awful.key({ modkey, "Shift" }, "k", function() awful.client.swap.byidx(-1) end, 344 - { description = "swap with previous client by index", group = "client" }), 345 - awful.key({ modkey, }, "u", awful.client.urgent.jumpto, 346 - { description = "jump to urgent client", group = "client" }), 347 - awful.key({ modkey, }, "l", function() awful.tag.incmwfact(0.05) end, 348 - { description = "increase master width factor", group = "layout" }), 349 - awful.key({ modkey, }, "h", function() awful.tag.incmwfact(-0.05) end, 350 - { description = "decrease master width factor", group = "layout" }), 351 - awful.key({ modkey, "Shift" }, "h", function() awful.tag.incnmaster(1, nil, true) end, 352 - { description = "increase the number of master clients", group = "layout" }), 353 - awful.key({ modkey, "Shift" }, "l", function() awful.tag.incnmaster(-1, nil, true) end, 354 - { description = "decrease the number of master clients", group = "layout" }), 355 - awful.key({ modkey, "Control" }, "h", function() awful.tag.incncol(1, nil, true) end, 356 - { description = "increase the number of columns", group = "layout" }), 357 - awful.key({ modkey, "Control" }, "l", function() awful.tag.incncol(-1, nil, true) end, 358 - { description = "decrease the number of columns", group = "layout" }), 359 - awful.key({ modkey, }, "space", function() awful.layout.inc(1) end, 360 - { description = "select next", group = "layout" }), 361 - awful.key({ modkey, "Shift" }, "space", function() awful.layout.inc(-1) end, 362 - { description = "select previous", group = "layout" }), 363 - }) 364 - 365 - 366 - awful.keyboard.append_global_keybindings({ 367 - awful.key { 368 - modifiers = { modkey }, 369 - keygroup = "numrow", 370 - description = "only view tag", 371 - group = "tag", 372 - on_press = function(index) 373 - local screen = awful.screen.focused() 374 - local tag = screen.tags[index] 375 - if tag then 376 - tag:view_only() 377 - end 378 - end, 379 - }, 380 - awful.key { 381 - modifiers = { modkey, "Control" }, 382 - keygroup = "numrow", 383 - description = "toggle tag", 384 - group = "tag", 385 - on_press = function(index) 386 - local screen = awful.screen.focused() 387 - local tag = screen.tags[index] 388 - if tag then 389 - awful.tag.viewtoggle(tag) 390 - end 391 - end, 392 - }, 393 - awful.key { 394 - modifiers = { modkey, "Shift" }, 395 - keygroup = "numrow", 396 - description = "move focused client to tag", 397 - group = "tag", 398 - on_press = function(index) 399 - if client.focus then 400 - local tag = client.focus.screen.tags[index] 401 - if tag then 402 - client.focus:move_to_tag(tag) 403 - end 404 - end 405 - end, 406 - }, 407 - awful.key { 408 - modifiers = { modkey, "Control", "Shift" }, 409 - keygroup = "numrow", 410 - description = "toggle focused client on tag", 411 - group = "tag", 412 - on_press = function(index) 413 - if client.focus then 414 - local tag = client.focus.screen.tags[index] 415 - if tag then 416 - client.focus:toggle_tag(tag) 417 - end 418 - end 419 - end, 420 - }, 421 - awful.key { 422 - modifiers = { modkey }, 423 - keygroup = "numpad", 424 - description = "select layout directly", 425 - group = "layout", 426 - on_press = function(index) 427 - local t = awful.screen.focused().selected_tag 428 - if t then 429 - t.layout = t.layouts[index] or t.layout 430 - end 431 - end, 432 - } 433 - }) 434 - 435 - client.connect_signal("request::default_mousebindings", function() 436 - awful.mouse.append_client_mousebindings({ 437 - awful.button({}, 1, function(c) 438 - c:activate { context = "mouse_click" } 439 - end), 440 - awful.button({ modkey }, 1, function(c) 441 - c:activate { context = "mouse_click", action = "mouse_move" } 442 - end), 443 - awful.button({ modkey }, 3, function(c) 444 - c:activate { context = "mouse_click", action = "mouse_resize" } 445 - end), 446 - }) 447 - end) 448 - 449 - client.connect_signal("request::default_keybindings", function() 450 - awful.keyboard.append_client_keybindings({ 451 - awful.key({ modkey, }, "f", 452 - function(c) 453 - c.fullscreen = not c.fullscreen 454 - c:raise() 455 - end, 456 - { description = "toggle fullscreen", group = "client" }), 457 - awful.key({ modkey, "Shift" }, "c", function(c) c:kill() end, 458 - { description = "close", group = "client" }), 459 - awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle, 460 - { description = "toggle floating", group = "client" }), 461 - awful.key({ modkey, "Control" }, "Return", function(c) c:swap(awful.client.getmaster()) end, 462 - { description = "move to master", group = "client" }), 463 - awful.key({ modkey, }, "o", function(c) c:move_to_screen() end, 464 - { description = "move to screen", group = "client" }), 465 - awful.key({ modkey, }, "t", function(c) c.ontop = not c.ontop end, 466 - { description = "toggle keep on top", group = "client" }), 467 - awful.key({ modkey, }, "n", 468 - function(c) 469 - -- The client currently has the input focus, so it cannot be 470 - -- minimized, since minimized clients can't have the focus. 471 - c.minimized = true 472 - end, 473 - { description = "minimize", group = "client" }), 474 - awful.key({ modkey, }, "m", 475 - function(c) 476 - c.maximized = not c.maximized 477 - c:raise() 478 - end, 479 - { description = "(un)maximize", group = "client" }), 480 - awful.key({ modkey, "Control" }, "m", 481 - function(c) 482 - c.maximized_vertical = not c.maximized_vertical 483 - c:raise() 484 - end, 485 - { description = "(un)maximize vertically", group = "client" }), 486 - awful.key({ modkey, "Shift" }, "m", 487 - function(c) 488 - c.maximized_horizontal = not c.maximized_horizontal 489 - c:raise() 490 - end, 491 - { description = "(un)maximize horizontally", group = "client" }), 492 - }) 493 - end) 494 - 495 - -- }}} 496 - 497 - -- {{{ Rules 498 - -- Rules to apply to new clients. 499 - ruled.client.connect_signal("request::rules", function() 500 - -- All clients will match this rule. 501 - ruled.client.append_rule { 502 - id = "global", 503 - rule = {}, 504 - properties = { 505 - focus = awful.client.focus.filter, 506 - raise = true, 507 - screen = awful.screen.preferred, 508 - placement = awful.placement.no_overlap + awful.placement.no_offscreen 509 - } 510 - } 511 - 512 - -- Floating clients. 513 - ruled.client.append_rule { 514 - id = "floating", 515 - rule_any = { 516 - instance = { "copyq", "pinentry" }, 517 - class = { 518 - "Arandr", "Blueman-manager", "Gpick", "Kruler", "Sxiv", 519 - "Tor Browser", "Wpa_gui", "veromix", "xtightvncviewer" 520 - }, 521 - -- Note that the name property shown in xprop might be set slightly after creation of the client 522 - -- and the name shown there might not match defined rules here. 523 - name = { 524 - "Event Tester", -- xev. 525 - }, 526 - role = { 527 - "AlarmWindow", -- Thunderbird's calendar. 528 - "ConfigManager", -- Thunderbird's about:config. 529 - "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. 530 - } 531 - }, 532 - properties = { floating = true } 533 - } 534 - 535 - -- Add titlebars to normal clients and dialogs 536 - ruled.client.append_rule { 537 - id = "titlebars", 538 - rule_any = { type = { "normal", "dialog" } }, 539 - properties = { titlebars_enabled = true } 540 - } 541 - 542 - -- Set Firefox to always map on the tag named "2" on screen 1. 543 - -- ruled.client.append_rule { 544 - -- rule = { class = "Firefox" }, 545 - -- properties = { screen = 1, tag = "2" } 546 - -- } 547 - end) 548 - -- }}} 549 - 550 - -- {{{ Titlebars 551 - -- Add a titlebar if titlebars_enabled is set to true in the rules. 552 - client.connect_signal("request::titlebars", function(c) 553 - -- buttons for the titlebar 554 - local buttons = { 555 - awful.button({}, 1, function() 556 - c:activate { context = "titlebar", action = "mouse_move" } 557 - end), 558 - awful.button({}, 3, function() 559 - c:activate { context = "titlebar", action = "mouse_resize" } 560 - end), 561 - } 562 - 563 - awful.titlebar(c).widget = { 564 - { -- Left 565 - awful.titlebar.widget.iconwidget(c), 566 - buttons = buttons, 567 - layout = wibox.layout.fixed.horizontal 568 - }, 569 - { -- Middle 570 - { -- Title 571 - halign = "center", 572 - widget = awful.titlebar.widget.titlewidget(c) 573 - }, 574 - buttons = buttons, 575 - layout = wibox.layout.flex.horizontal 576 - }, 577 - { -- Right 578 - awful.titlebar.widget.floatingbutton(c), 579 - awful.titlebar.widget.maximizedbutton(c), 580 - awful.titlebar.widget.stickybutton(c), 581 - awful.titlebar.widget.ontopbutton(c), 582 - awful.titlebar.widget.closebutton(c), 583 - layout = wibox.layout.fixed.horizontal() 584 - }, 585 - layout = wibox.layout.align.horizontal 586 - } 587 - end) 588 - -- }}} 589 - 590 - -- {{{ Notifications 591 - 592 - ruled.notification.connect_signal('request::rules', function() 593 - -- All notifications will match this rule. 594 - ruled.notification.append_rule { 595 - rule = {}, 596 - properties = { 597 - screen = awful.screen.preferred, 598 - implicit_timeout = 5, 599 - } 600 - } 601 - end) 602 - 603 - naughty.connect_signal("request::display", function(n) 604 - naughty.layout.box { notification = n } 605 - end) 606 - 607 - -- }}} 608 - 609 - -- Enable sloppy focus, so that focus follows mouse. 610 - client.connect_signal("mouse::enter", function(c) 611 - c:activate { context = "mouse_enter", raise = false } 612 - end)
···
-20
packages/installer/base.nix
··· 1 - { 2 - modulesPath, 3 - lib, 4 - ... 5 - }: { 6 - _file = ./base.nix; 7 - 8 - imports = [ 9 - "${modulesPath}/installer/cd-dvd/installation-cd-graphical-base.nix" 10 - ]; 11 - 12 - isoImage = { 13 - edition = "nobbz"; 14 - squashfsCompression = "zstd -Xcompression-level 10"; 15 - }; 16 - 17 - # VMware guest tools are enabled by default in the installer and caused issues 18 - # on my Tuxedo laptop. 19 - virtualisation.vmware.guest.enable = lib.mkForce false; 20 - }
···
-22
packages/installer/default.nix
··· 1 - { 2 - nixosSystem, 3 - system, 4 - npins, 5 - nvim, 6 - }: 7 - nixosSystem { 8 - inherit system; 9 - 10 - specialArgs = {inherit npins nvim;}; 11 - 12 - modules = [ 13 - ./awesome.nix 14 - ./base.nix 15 - ./lvm.nix 16 - ./motd.nix 17 - ./neovim.nix 18 - ./network.nix 19 - ./sddm.nix 20 - ./xterm.nix 21 - ]; 22 - }
···
-4
packages/installer/icons/globe.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> 3 - <path fill="#d3d3d3" d="M16.36 14c.08-.66.14-1.32.14-2c0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2c0-.68.06-1.35.16-2h4.68c.09.65.16 1.32.16 2c0 .68-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.923 7.923 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8.008 8.008 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2c0 .68.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.65 15.65 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2Z"/> 4 - </svg>
···
-4
packages/installer/icons/manual.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> 3 - <path fill="#d3d3d3" d="M17.5 14.33c.79 0 1.63.08 2.5.24v1.5c-.62-.16-1.46-.24-2.5-.24c-1.9 0-3.39.33-4.5.99v-1.69c1.17-.53 2.67-.8 4.5-.8M13 12.46c1.29-.53 2.79-.79 4.5-.79c.79 0 1.63.07 2.5.23v1.5c-.62-.16-1.46-.24-2.5-.24c-1.9 0-3.39.34-4.5.99m4.5-3.65c-1.9 0-3.39.32-4.5 1V9.84c1.23-.56 2.73-.84 4.5-.84c.79 0 1.63.08 2.5.23v1.55c-.74-.19-1.59-.28-2.5-.28m3.5 8V7c-1.04-.33-2.21-.5-3.5-.5c-2.05 0-3.88.5-5.5 1.5v11.5c1.62-1 3.45-1.5 5.5-1.5c1.19 0 2.36.16 3.5.5m-3.5-14c2.35 0 4.19.5 5.5 1.5v14.56c0 .12-.05.24-.16.35c-.11.09-.23.17-.34.17c-.11 0-.19-.02-.25-.05c-1.28-.69-2.87-1.03-4.75-1.03c-2.05 0-3.88.5-5.5 1.5c-1.34-1-3.17-1.5-5.5-1.5c-1.66 0-3.25.36-4.75 1.07c-.03.01-.07.01-.12.03c-.04.01-.08.02-.13.02c-.11 0-.23-.04-.34-.12a.475.475 0 0 1-.16-.35V6c1.34-1 3.18-1.5 5.5-1.5c2.33 0 4.16.5 5.5 1.5c1.34-1 3.17-1.5 5.5-1.5Z"/> 4 - </svg>
···
-5
packages/installer/icons/nix-flake.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> 3 - <path fill="#7ebae4" fill-rule="evenodd" d="M13 11.115L6.183 23.76L4.59 20.87l1.839-3.387l-3.651-.01L2 16.029l.8-1.477l5.2.018l1.868-3.447Zm.527 10.108h13.64l-1.541 2.922l-3.658-.011l1.817 3.389l-.779 1.449h-1.593l-2.584-4.825l-3.722-.008Zm7.94-5.541l-6.82-12.645l3.134-.032L19.6 6.4l1.834-3.379h1.557l.795 1.479l-2.612 4.807l1.854 3.455Z"/> 4 - <path fill="#5277c3" fill-rule="evenodd" d="m10.542 16.324l6.821 12.645l-3.134.031l-1.821-3.4l-1.834 3.38H9.016l-.8-1.476l2.615-4.804l-1.855-3.457Zm7.922-5.573H4.823l1.542-2.922l3.658.011l-1.816-3.389L8.986 3h1.592l2.584 4.825l3.722.008ZM19 20.888l6.817-12.644l1.593 2.89l-1.839 3.386l3.651.01l.778 1.449l-.8 1.477l-5.2-.018l-1.868 3.447Z"/> 5 - </svg>
···
-5
packages/installer/icons/parted.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> 3 - <path fill="#d3d3d3" d="M13 30a11 11 0 0 1 0-22a1 1 0 0 1 1 1v9h9a1 1 0 0 1 1 1a11 11 0 0 1-11 11Zm-1-19.94A9 9 0 1 0 21.94 20H14a2 2 0 0 1-2-2Z"/> 4 - <path fill="#d3d3d3" d="M28 14h-9a2 2 0 0 1-2-2V3a1 1 0 0 1 1-1a11 11 0 0 1 11 11a1 1 0 0 1-1 1Zm-9-2h7.94A9 9 0 0 0 19 4.06Z"/> 5 - </svg>
···
-4
packages/installer/icons/power-off.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> 3 - <path fill="#ff0000" d="m16.56 5.44l-1.45 1.45A5.969 5.969 0 0 1 18 12a6 6 0 0 1-6 6a6 6 0 0 1-6-6c0-2.17 1.16-4.06 2.88-5.12L7.44 5.44A7.961 7.961 0 0 0 4 12a8 8 0 0 0 8 8a8 8 0 0 0 8-8c0-2.72-1.36-5.12-3.44-6.56M13 3h-2v10h2"/> 4 - </svg>
···
-4
packages/installer/icons/reboot.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> 3 - <path fill="#ff0000" d="M12 4c2.1 0 4.1.8 5.6 2.3c3.1 3.1 3.1 8.2 0 11.3c-1.8 1.9-4.3 2.6-6.7 2.3l.5-2c1.7.2 3.5-.4 4.8-1.7c2.3-2.3 2.3-6.1 0-8.5C15.1 6.6 13.5 6 12 6v4.6l-5-5l5-5V4M6.3 17.6C3.7 15 3.3 11 5.1 7.9l1.5 1.5c-1.1 2.2-.7 5 1.2 6.8c.5.5 1.1.9 1.8 1.2l-.6 2c-1-.4-1.9-1-2.7-1.8Z"/> 4 - </svg>
···
-4
packages/installer/icons/terminal.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> 3 - <path fill="#d3d3d3" d="M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16c1.1 0 2-.9 2-2V6a2 2 0 0 0-2-2zm0 14H4V8h16v10zm-2-1h-6v-2h6v2zM7.5 17l-1.41-1.41L8.67 13l-2.59-2.59L7.5 9l4 4l-4 4z"/> 4 - </svg>
···
-9
packages/installer/lvm.nix
··· 1 - { 2 - _file = ./lvm.nix; 3 - 4 - services.lvm = { 5 - boot.thin.enable = true; 6 - boot.vdo.enable = true; 7 - dmeventd.enable = true; 8 - }; 9 - }
···
-37
packages/installer/motd.nix
··· 1 - {pkgs, ...}: { 2 - _file = ./motd.nix; 3 - 4 - environment.etc."gui-motd".text = '' 5 - Welcome to NobbZ' <b>inofficial</b> NixOS live disk! 6 - 7 - The tooling, configuration and drivers on this disk are mostly tailored to 8 - my own needs and might not work well for you. 9 - 10 - Currently you are looking at an <tt>awesome wm</tt> session, the modkey is 11 - <tt>Mod4</tt> (the "windows" key). 12 - 13 - Most important tooling is available through the "awesome" menu, which is 14 - located in the upper left corner of the screen. 15 - 16 - If you want to use the terminal, you can either use the menu, or press 17 - <tt>Mod4+Enter</tt>. 18 - 19 - <s>Rofi is available as well, you can open it by pressing <tt>Mod4+d</tt>.</s> 20 - 21 - A more complete list of keybindings can be found in the awesome help screen 22 - by pressing <tt>Mod4+s</tt>. 23 - ''; 24 - 25 - systemd.user.services.motd = { 26 - description = "Prints a test message"; 27 - wantedBy = ["graphical-session.target"]; 28 - script = '' 29 - motd=$(cat /etc/gui-motd) 30 - ${pkgs.gnome.zenity}/bin/zenity --info --text="$motd" --no-wrap --title="Short usage notes" 31 - ''; 32 - serviceConfig = { 33 - Type = "simple"; 34 - Restart = "on-failure"; 35 - }; 36 - }; 37 - }
···
-9
packages/installer/neovim.nix
··· 1 - { 2 - nvim, 3 - pkgs, 4 - ... 5 - }: { 6 - environment.variables.EDITOR = "nvim"; 7 - 8 - environment.systemPackages = [nvim.packages.${pkgs.system}.neovim]; 9 - }
···
-8
packages/installer/network.nix
··· 1 - {pkgs, ...}: { 2 - networking.networkmanager.enable = true; 3 - 4 - systemd.user.services.nmapplet = { 5 - wantedBy = ["graphical-session.target"]; 6 - script = "${pkgs.networkmanagerapplet}/bin/nm-applet"; 7 - }; 8 - }
···
packages/installer/nix-glow-black.png

This is a binary file and will not be displayed.

-9
packages/installer/sddm.nix
··· 1 - { 2 - _file = ./sddm.nix; 3 - 4 - services.xserver = { 5 - displayManager.sddm.enable = true; 6 - displayManager.autoLogin.enable = true; 7 - displayManager.autoLogin.user = "nixos"; 8 - }; 9 - }
···
-14
packages/installer/xterm.nix
··· 1 - {pkgs, ...}: let 2 - inherit (pkgs) writeText; 3 - in { 4 - systemd.user.tmpfiles.rules = let 5 - xresources = writeText "xresources" '' 6 - XTerm.vt100.foreground: rgb:d3/d3/d3 7 - XTerm.vt100.background: rgb:00/00/00 8 - XTerm.vt100.faceName: FreeMono 9 - XTerm.vt100.faceSize: 12 10 - ''; 11 - in [ 12 - "L+ %h/.Xresources - - - - ${xresources}" 13 - ]; 14 - }
···
+1
packages/rofi-unicode/default.nix
··· 8 stdenvNoCC.mkDerivation (self: { 9 pname = "rofiemoji-rofiunicode"; 10 version = "${source.rev}"; 11 12 src = fetchgit { 13 inherit (source) rev url sha256;
··· 8 stdenvNoCC.mkDerivation (self: { 9 pname = "rofiemoji-rofiunicode"; 10 version = "${source.rev}"; 11 + strictDeps = true; 12 13 src = fetchgit { 14 inherit (source) rev url sha256;
+1 -1
parts/auxiliary.nix
··· 29 30 devShells.default = pkgs.mkShell { 31 packages = builtins.attrValues { 32 - inherit (pkgs) npins sops age ssh-to-age nil alejandra lua-language-server; 33 }; 34 }; 35 };
··· 29 30 devShells.default = pkgs.mkShell { 31 packages = builtins.attrValues { 32 + inherit (pkgs) npins sops age ssh-to-age nil alejandra; 33 }; 34 }; 35 };
+18 -16
secrets/mimas/default.yaml
··· 1 - restic: ENC[AES256_GCM,data:RalEtjybp8zatg==,iv:9NdaTuhLR57mv8OaCSyso9cfr8V1iQNuQuWInKyi3bI=,tag:7JqSaYtGIjScuB/T1WzvuA==,type:str] 2 - traefik: ENC[AES256_GCM,data:YY4zAJ5FEeW2/We+BgO7G7AJmqTvO+cAnlq1hBdXgtzpXhm9viv8WIjbUAPGOzsBk8qgWMgZ1azECUWoFJWNRRFVrDNRxzM2GkGK5RoM6nUY+A==,iv:ZL90s3YuBmwafBz7VEwCTr2flnkguUxJgPp9OrnyfGA=,tag:JkMJsFeEk/UKbdyL/VTBhw==,type:str] 3 - warden: ENC[AES256_GCM,data:/vG+a9TP18S8jYy1/ZoXFjbYYpa83HoHC5VSHaAHzkzGSYD8jTq3PyKQke0EwfO6STd0BU1MUGYhq60uGQO/anOXiW4T8j42a+7Vf5PLQ4kMHHTn57fG3UaWILg8dOE7cpRgKaLNsWwYZqgngP56w4265LPm9I2o9UYDYuNn8qTt/TSHKba31NWEbBjIDxbY7fW0EXzqOG+5RP1BgQeoQYNhiRB/45VZ5zOTsq4RWHJdhpKnkpO8ory0ONIqnBSQk5x2zRO99ys2renWRCkRQeJlWTsLfY/zd9NucrzajTT4jJfoe523oYtEAaRY2zGbI59hkrqMBThIVfU=,iv:OauSp63ywmrkENIqBVGVQ99Ozyom0o+DfSqYaL46Ujg=,tag:I1WMIXLHPZCActYPqSJY3w==,type:str] 4 sops: 5 kms: [] 6 gcp_kms: [] ··· 10 - recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r 11 enc: | 12 -----BEGIN AGE ENCRYPTED FILE----- 13 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzbEMwUDc1ODlPRWtDOEFr 14 - MVRpSkFhTHVudk5zVm12a0llWUpuR2poWUh3Ck5yUDBINUZNV1VQNXdRbkx4MjJr 15 - UjUzQzBEVjVHS1FvT1BaVDlQb1ZzaTQKLS0tIGN1RndkUXZnQy91UXVzdkRpaUNH 16 - RHMySGZkS2M0YkZTaFBDclpxYW43azgKl75qDMpRi8XSghFaiHKzXhkhaHcTfB/4 17 - tXxlqpLNalHd0i/iDirFUwtGr3k4544gZ/yVgE77P9SX1jA7kYJXJw== 18 -----END AGE ENCRYPTED FILE----- 19 - recipient: age10jl78vwyqk622dpn2890l9jl4et3p7lsr8wh8vusem3j8jdxle8qg000qa 20 enc: | 21 -----BEGIN AGE ENCRYPTED FILE----- 22 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Q2ZJREVJdlFuVmY5T0JL 23 - WGVFaW4zYkc5aWxIRk96UDEyTVZ4ZU1QaWp3CjA0V3RCWTZVU0ROL0lTUExXbEdF 24 - U3R1WUNkZ29vU3FtcU1TaVpJWE5MZGMKLS0tIDVNekFEQUR4eEdTWGU1ZmUwb3Nu 25 - UXN2L2RmZjZUcEtIeC9jbzFHMXlUR00K1A+9Sys/oH8FDcY8KUKY8BjcNv9l+3OK 26 - c/GmQCNaz6uUf/SWfSM1E/RhTHus3DEYD6fWZdzKwEzsYs2ZPRI5Xg== 27 -----END AGE ENCRYPTED FILE----- 28 - lastmodified: "2025-02-12T10:24:40Z" 29 - mac: ENC[AES256_GCM,data:lJO5gsg9NTWxdbS0XbamH3rcFHHUTthRmdJ4eqXGX/g1bsQcFwoSVy3FLXkN/NQkaNpbjdoqWwRkvUlwhuvDhjCrMERvEUFCEivSvWVZkl6TqA1soMFsO1FngaUvaCijlMbxdE94ZLVu9QRe5Q0sY7qL7EthUvC+ykXiBwvzbEk=,iv:vGv2nhSfBn3nxv+BbxkAb//m9Q4Ycn67a1Fz9sfTptA=,tag:BjB9IP0U30473t80FffeZw==,type:str] 30 pgp: [] 31 unencrypted_suffix: _unencrypted 32 - version: 3.8.1
··· 1 + restic: ENC[AES256_GCM,data:XMkh9jvehbD3Zg==,iv:9NdaTuhLR57mv8OaCSyso9cfr8V1iQNuQuWInKyi3bI=,tag:Kz08EadPaIWcytF6ASJssw==,type:str] 2 + rustic: ENC[AES256_GCM,data:ETWxyvBz3AlXNp0=,iv:MXlQuvTJa2mZuXeiCX/YYpbqKpT1+RE5TNahBrUMM3Y=,tag:Vl7n0JF5M9Q+xZD32G1njQ==,type:str] 3 + rustic-user: ENC[AES256_GCM,data:2hwYQS4nAA==,iv:y0pbF5axrPRdYRGAmx+kp7jkmSl77R8LQMUKQaiDWak=,tag:8kgcxNtvjmyT9PPc/WjrOg==,type:str] 4 + traefik: ENC[AES256_GCM,data:kMnWaxpt0fLxJeX3oYLQrnZPS+pq/xjqVINleaCfaiXeMlJ8qno0eHBkx82gjldeObvTO1ENFz5k5EJ0ICbnS0ny6qHxeBAMaNVF3dZ+XmKx7w==,iv:ZL90s3YuBmwafBz7VEwCTr2flnkguUxJgPp9OrnyfGA=,tag:UeyiUtdQwOlyQoHObL+80w==,type:str] 5 + warden: ENC[AES256_GCM,data:H3So3oZfZ6MBKsjxJNnxk/6UZi6J5D6H5bCMsb1E7rk/r51qYDe+1z2Gq1o0qqwX0k/O4Dxq7wJPaelLO4kE9bxQHvoT1NJQIZolnYF5G/PMqMKWIE4bxq6uLmxNKBmjOkJLo3hBiOHT8MjD/S6rOkUAB6Mn4YRKqcG+EG1Wz0sw1a+6KcNFMqO9xdcwD44MZYrreexOiwVx6UMPSJc/67fvzJ4ms/E3gQEOq6VvCHpxmk4bujo9ucqajfPGK4ewHqkdn4r0vQvrYxXMBkX7AXcL6CHSZ+ht0Hcw0A+m12GuTSHC0g38Avz5klP3FIruzj7oWcjv6XPBYfk=,iv:OauSp63ywmrkENIqBVGVQ99Ozyom0o+DfSqYaL46Ujg=,tag:ZcYkapCUZZE9DDh0PSfZEg==,type:str] 6 sops: 7 kms: [] 8 gcp_kms: [] ··· 12 - recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r 13 enc: | 14 -----BEGIN AGE ENCRYPTED FILE----- 15 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVRkRBcWlnM25ablJBdit2 16 + b0Y1Zy9PM2FjRmg5ajN0YWpsaitJUStTTXlBCnpuL2wvU0hxZFpDREhiTmhnaFFi 17 + LzkxMmVHYWo4TkZOaStJeHZsK3pIZG8KLS0tIC9DSjUyUVk0SG9mNHd0aGdXN1ow 18 + N2Q4QWk3RU83dUxuSG85V1N5TzFkSVEK58cE6fE6mxjRCgtHRMqqahqMkwYeUnhx 19 + F2Bdg5oPPQxoqIf769fZD9L1y/+LZ6Vi4YhJkjfMVFXk6YtEjKJSmQ== 20 -----END AGE ENCRYPTED FILE----- 21 - recipient: age10jl78vwyqk622dpn2890l9jl4et3p7lsr8wh8vusem3j8jdxle8qg000qa 22 enc: | 23 -----BEGIN AGE ENCRYPTED FILE----- 24 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkY3EzZyt1YXFTTlVhK3Rk 25 + djUvWmVjeDBSajlENCtNc0RZMVRVWUVuRWtBCnFpa0NnVjBvb0J2NCtpYitoMngv 26 + WkxNaDNIQnRSSm0vSXF4a1RYcmNsK2MKLS0tIE5zSkExNVVJYkZsV244eElwMTd0 27 + N3ZuTHhVdFo0aGZVMXFlaTdsRi9lRUUK+K5CUVCdjtMVegVydoKRIb6kpPnfBiy1 28 + FxkXAp3a1qU2WqNvXCSO3gtUwYaMG+MPSCWI1gA3oBjGGtTasHyHsQ== 29 -----END AGE ENCRYPTED FILE----- 30 + lastmodified: "2025-03-08T10:44:25Z" 31 + mac: ENC[AES256_GCM,data:iKKmalnJnmm8EkDupTPKmKJydLLYkbAabLy5KJdQfKGvRj6vbJAQHZ3u0Pu2TI0oi5Xv3dtPh7ww04kT0Whe1E97p4t3RPyNCCGNqA8OqQiCPDUn6uqTQwOo1//3xIGFnnRC0VSYrQT0rjebbL96RnWE9XF67TefycxIMHusUXU=,iv:FU6VTW2zkEIlH5P/rr58gmuMnz16TCLP+UtEVkiLueg=,tag:uf7I1GwWxXOT190y8Hddow==,type:str] 32 pgp: [] 33 unencrypted_suffix: _unencrypted 34 + version: 3.9.4
+13 -13
secrets/mimas/nmelzer/default.yaml
··· 1 - rustic: ENC[AES256_GCM,data:BX02oTejsYOoHBI=,iv:NHuqnSibmY/RkJrSUWm0TbgG45iSdjso9ABI8SGqUTg=,tag:XJsnyxfZlNgl1FO7gjwoIQ==,type:str] 2 sops: 3 kms: [] 4 gcp_kms: [] ··· 8 - recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r 9 enc: | 10 -----BEGIN AGE ENCRYPTED FILE----- 11 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0Uit0RVpUeit5TTBXQUd3 12 - OG9xTUxIU0o3K1NpN3VBMlNTZ05LT3RFK3dRCnZ5OXhGS0o2K1YrQTBXV21tMXgw 13 - SEVsNjU2cHQxOTJTZ0dkWjA5Sis4SVEKLS0tIGNobnV2WENqZ3ZGMWhTdDNzTElR 14 - R2hvVDhrOU5FcGVJTWdBSzBReTdYS0UK10tHmEHoXsdNKsdbLLMe28y6MYgvfzCX 15 - pxomYYMYRfy8DCyLBX50YP++47fTUUb+tY+cGXNvvNvCW6fgYFo3lQ== 16 -----END AGE ENCRYPTED FILE----- 17 - recipient: age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6 18 enc: | 19 -----BEGIN AGE ENCRYPTED FILE----- 20 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWOWtneGFlQXQzUjdPMUJh 21 - YXIzdFJhdUtMcjdYMGhsT3MxZmhicG8xQ0dJCnR1V2ZEdFYrcWMrQlFCa1VMdWIr 22 - a2h4ZHJaYk9VSTBxWC95aEZtbXc0amMKLS0tIHJ1Qk91RWk2cTMvdXdQQTRwWHhj 23 - NVBxSk9YQWVrRi85WHhxbVE0Y3BMaEUKjp9LEdjkgcHhbQR9WcVnd2z/nHyaSeSU 24 - d9rRK/V97WRG6Bb+e6ljVEG7abZu1ni882ztz5Oa8DtLraI2+UGjCw== 25 -----END AGE ENCRYPTED FILE----- 26 - lastmodified: "2025-02-12T10:24:40Z" 27 - mac: ENC[AES256_GCM,data:CjXgBwBPVcdER8rJC9S3QXMoSf/5cSfebxfusBEAoFzdQg1w6USN7inFC+xBVrjpoVKa295k5I+CRqaECOl/E2tmRcftbl7d49XnAOk2P4Cx7IfsUbUWPjJER07c43Nktehxiw8Okh1uw5v85UQ1VUmzpWFcwgNRsHxHEwQQ5lc=,iv:JHTol2haBhvEaaJ+c+y35gV59VyliI2gN7mY+Q9M0Ac=,tag:xwbRi3WTbOh09VTcoK2Gbg==,type:str] 28 pgp: [] 29 unencrypted_suffix: _unencrypted 30 version: 3.8.1
··· 1 + rustic: ENC[AES256_GCM,data:aYi1wQgLgRL3n40=,iv:NHuqnSibmY/RkJrSUWm0TbgG45iSdjso9ABI8SGqUTg=,tag:k13fNK3kDcylC53d/haqog==,type:str] 2 sops: 3 kms: [] 4 gcp_kms: [] ··· 8 - recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r 9 enc: | 10 -----BEGIN AGE ENCRYPTED FILE----- 11 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3U1ExOVN2aWVRVnB2M3RR 12 + QmxQNDZnSWVWMW1IZWh5YmFmNTZYbGRzSFVRCjdvSGp1WThzc29aNUZQMHJDMThJ 13 + MXNURHJUVVpDQ1hmUDBFamJ3TnRUSzQKLS0tIExXdWNoRm9aL29nUldQemwxOXdV 14 + aktSY1lQZmxkTThpcU82Q0dwSUUzUmcKm2VCJHEUzjz2vXAJH1wOovNqzK6Hkk2z 15 + hoIQzqgfQL3a4WA1q0Oj+R8wBChuRMUAYW4+TWCIAckKKwLqRyzBcQ== 16 -----END AGE ENCRYPTED FILE----- 17 - recipient: age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6 18 enc: | 19 -----BEGIN AGE ENCRYPTED FILE----- 20 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSamQ1R0tHZGIxUlN3NWtV 21 + Q1htSVdJMG5rUEN6Rm1QTStONys3YjNiVEdzCmE0bDJCa1VaVTIyK1IvTDBFbVhs 22 + ZWVGSzdwUWpVZTNSYUkvNjNtTERnZHMKLS0tIHRLSnBxTm8rVVo5ME4vS0dKZXF5 23 + MjdaWk9mZEczVGVxZEpnN3pCQTdMOFEKO4oemn8P9PYZVTsJ81oDy17PRAaeu3pn 24 + zxZ5a8/IrS/lZfMJ1vYwlZf0AEgOMTSyjVMNyOkWAgWIq8z1UkrpUA== 25 -----END AGE ENCRYPTED FILE----- 26 + lastmodified: "2025-03-08T10:28:45Z" 27 + mac: ENC[AES256_GCM,data:k+Ui8hxJM/W4vHxZtSkTO86L81ZnzXHcX+VEzef438dfoB6rhIUhz6OaVfLnF6v3RSzRPsYCoDP8L2p1vHAY42ljl4jzZvMqrIYU2N7ATTNFc+m2FO1lcfmKbsOqjkrVQxnux8lwBdD9e2H4/xOB+nAivuCEDd3rihYR0yRYiMI=,iv:yMu0MA0VTdwUsKkZUZAVo91iI9qaT+qOVVI3hlmZC0c=,tag:bbKM/vE0lEpvPHIKWk9llQ==,type:str] 28 pgp: [] 29 unencrypted_suffix: _unencrypted 30 version: 3.8.1
+13 -13
secrets/phoebe/nmelzer/default.yaml
··· 1 - ssh: ENC[AES256_GCM,data:1piCN4mFAU9cJXkag+MQ6t1XnaKg8FOvd2vf9Q4EhdlEJWNqkdepy7bZu2yQb71TWdVqtY7ctKyDWbrjgrRKryJs1LMnIrsCfkjsfAGogBUdpcaYkIfi2huVnLyAB/qZG3NGYqaWpuZXEZMZQD5NWOyY1hZb3sXVV6macu8PCBbQFl2vz+0ZssKXSphrJcgxyPF6TpNJ4ql9WYjA+g3tQMlOdQEgJ+v4zFCheqc/cpvP/sV2,iv:poHvd4U4dJha27Bqf4hA1pFhna29kO/RnFNjJsflpaA=,tag:Ph2JnUD4hitPUvGUZgZY+g==,type:str] 2 sops: 3 kms: [] 4 gcp_kms: [] ··· 8 - recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r 9 enc: | 10 -----BEGIN AGE ENCRYPTED FILE----- 11 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtR2lNeVBuU2Z0WDd2Uytr 12 - UkVCTUJZMDZUWFdGVmp1cG5saHZFWjlRK2x3CllLOHhQQ2Q2cnlXM1FFVzVnWDRF 13 - cGhOYWdXWG9sQUIwaFdxRUFNUmtQNXMKLS0tIFcrMzcvSkZnOWpLdjMzR0JXR21n 14 - VlMxUTA0emZhYVZvenllTGl0WmRvODgKlD476Ysv364IcPABFXH0I+CwLIa0xZ6h 15 - uhD+zb0Ea0rvrevbifFofi2bI0YN6s6OiTgoEa+UCUL7zTJNgvR9YA== 16 -----END AGE ENCRYPTED FILE----- 17 - recipient: age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna 18 enc: | 19 -----BEGIN AGE ENCRYPTED FILE----- 20 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNcElzVmJjeWxYOUZOVDlp 21 - S0Z2Y0Q1enBGanhyTENUSmFRVGtlM1lWeGpZCkdqcTBYWUdLQnJWMXlxV0pOem9M 22 - L0RKa1Q3YmFMWk1BTzNxTFBsRElkcU0KLS0tIEdDb3RVR09uSWdCQ3BkR2hNTGpv 23 - b3cvUGNPYnc3aVY2SExFUEI1ZngzYXcKUptdyK0c5amD9mfXfZOu1IwlLeDqacW2 24 - wLlrabrv17jatrfiW7Ow0SVt7yRNj9NLeYOO5DWB7qj+FIkioxiNZA== 25 -----END AGE ENCRYPTED FILE----- 26 - lastmodified: "2025-02-12T10:24:40Z" 27 - mac: ENC[AES256_GCM,data:MpQENnVZ0nRy802BSi0wYlxm5Xmd6cDOgVEFnn4xndm+JdZiWLP4Or6QWKoqBwwVuwWIYC3pgwhW7zSIIbNOazAVK12BVsCAckaV4zMuw3MMJE0LqKQaAUlURmnLCId0Om4tGRJdXFZjw47spI76wZ70DJQVKpemrI7qBEkMypk=,iv:4ml2v2TXmmgsh1560hRC7MzwR5nmg5PCIIeNs0fA2XE=,tag:slp6EI/h1f7CTNN3irWZfg==,type:str] 28 pgp: [] 29 unencrypted_suffix: _unencrypted 30 version: 3.9.1
··· 1 + ssh: ENC[AES256_GCM,data:Ti7PvRp+ooyu/MHGv90zlACZVzE5EseJUFk5KvxwYbE+bLcEKnTWW8yV+BBa3xoOe50P4X0GeNFHLsaCcCtrjNshNJSxZ3QHt1TQjLABvKrQvpU8BgN3qT3RMo019NMj0+UxWL4/5icaR4XAax+JWCTBXhncqFzyXqcB/IbLLJKKqqFTWe4zYhvQitBDF+oU6nTv/qTtj/6B7XN6byTbGPjTJrEXLotmbvl8ll/LiEkTPmuu,iv:poHvd4U4dJha27Bqf4hA1pFhna29kO/RnFNjJsflpaA=,tag:uUfl6tjzVQQ5oaKOcmUYQA==,type:str] 2 sops: 3 kms: [] 4 gcp_kms: [] ··· 8 - recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r 9 enc: | 10 -----BEGIN AGE ENCRYPTED FILE----- 11 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwMnNzT2dFWWVPRjh2QUdF 12 + VUZkUzdsQXRISG9kaHVqSGp2UWhCNlN3cVFJCmtQbE9LelRkbW4yU3ZyWG9MdnZB 13 + b1k1QUwrOXBZQTVoRTArNGFtTEJSU0kKLS0tIG5KS3ZFd0hKMEhsSkV4ck5za2VQ 14 + YzFLSjNUVXNRaklnczVKdGQ4V0JYUE0KGVHj8sWKKvVGwMrYmx0Js1uI1DmD028V 15 + R+Y+p8H766496hBt6Eza6r7JhKtLXR5CrcoItq8m+fWU6lu+ElsnAw== 16 -----END AGE ENCRYPTED FILE----- 17 - recipient: age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna 18 enc: | 19 -----BEGIN AGE ENCRYPTED FILE----- 20 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRSTB0dGxWOFhTK0FHcGxI 21 + VkFKV2NkZTlJRVNSZ1dnWVBKQk02YmZ3aERnClZaeTFSYzRJZ3ZWQjNPc1BnanhU 22 + ak1RZ0w0MDExZVlJWVNrYjZxMHZsNEkKLS0tIE9tWHlVMEFpek1VTFdROE8zUFZa 23 + VU9yempBMGVXenkxdkpHZC9YdlFZYm8KsdOmOI4ah0pEjqPt9XnJNxMyFSY4eYsI 24 + UOgJZqRhlG8Y4NL6J1DyJPfeKeIroTAbNoCb65lxWHHWfoPvt3gU3A== 25 -----END AGE ENCRYPTED FILE----- 26 + lastmodified: "2025-03-08T10:28:45Z" 27 + mac: ENC[AES256_GCM,data:ycmOZIduc6cbx9daCGmLOL6eNSroAkGJw9dSnR79feaplXi6hmvycijcSJkys2vA3m81K2E7MW465GfodkpW1YWT1xW8RPp+WOOlqZvu3qoSu3F2T/VJxx4wCzTaXwvkcY9APAqb+WydN5KQDzakWaJfw+gTP3OS8LTRkYCDtcc=,iv:soCcQcGoi41g+g5X1SVDNH7iH28BCSImZqY1OE/H1Bo=,tag:RGY47osA22GETBuOynX1Dg==,type:str] 28 pgp: [] 29 unencrypted_suffix: _unencrypted 30 version: 3.9.1
+28 -28
secrets/users/nmelzer/default.yaml
··· 1 - access-tokens: ENC[AES256_GCM,data:sEO1XoSCQr0b0wrXf5LZj4U78J6Wz5+rVGWbrN/IYFGGS4izbJ6Xack3hTekLvzQPi+q3Qfc5pEj3Qv5rZxirWFJPK8=,iv:BPI8HwuKwfzOMT2gs7U0cpbpP77f+X/HvCcfvIJh9Q4=,tag:CTi7plldS7ZBRgjHr0Puwg==,type:str] 2 sops: 3 kms: [] 4 gcp_kms: [] ··· 8 - recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r 9 enc: | 10 -----BEGIN AGE ENCRYPTED FILE----- 11 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWS3EvTU92VDdSdk95RmY0 12 - b0xKN2dyY3p2U2ZhNkhHM2ZCK2JDbDZEcXpFClk5bEV4dDlESU9oeWhuNGlvL2ly 13 - bUkvQW5MTVRkSlVra1YrTTlzdlRZY1UKLS0tIEtsaGhTNFR1eEZBWmZMTDlkcWxx 14 - b3pxY0l2cm5jZGhjcG91Ti9MdGZGd28KmZDDCJ356ZGwBbLkFg1fOUUumWhXAaZP 15 - fhQRu6MNJRa6TPseH6ldxQwZp2SQdOC0mpWBmKL6i5KC6OqDyOYPUQ== 16 -----END AGE ENCRYPTED FILE----- 17 - recipient: age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86 18 enc: | 19 -----BEGIN AGE ENCRYPTED FILE----- 20 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmc2VoR204YVM1RjhNNUIr 21 - eS90aDhob2hHV0JSMDFyQklSTmZLN3BXSUM0CmJiR05MVjQvM2J5YmdzbHhVTWN1 22 - VWxSS0FlM2JFQmtyakxTYjljUHcvVXMKLS0tIDJyc0t6d0VYWC9zbEh1Q0M5bFVt 23 - MU1YaW01L2xXVTU3MFpNNXZGRHhDdkkK1kqVO0yMR/kvTGmddZSwCZoJ8UQ+r+Ps 24 - Vjjf8xZrV+Q00LTfA6NPGkcvFi+j06a+bwxG/w4LiwR2EMxNpZY4Ng== 25 -----END AGE ENCRYPTED FILE----- 26 - recipient: age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6 27 enc: | 28 -----BEGIN AGE ENCRYPTED FILE----- 29 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1T0ZpbWJZOWdXdjN1ZEF3 30 - OTN6djhkekZwenQvSjRaNWlDWFVoVDVKWTJFCkdBNmVMcHJMZWc3SlJlNy8zRWRn 31 - Y2hMdzBpc1JDc0ViYzk2VDRpUTF0YU0KLS0tIFFzbUZnMUFkcnZSNzFGV2ZhZmw1 32 - WGtrZW4rQ21rcGhzV3dkZUJkdFRvbUEK7uZVXjJvVCZ7SxhBIdjgP3Sd/Qx0Acje 33 - zjxw1zNtT8NWDcM8tu1A0e/TTHveq8oipiyCq9o3XCayk2aynDrb5w== 34 -----END AGE ENCRYPTED FILE----- 35 - recipient: age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq 36 enc: | 37 -----BEGIN AGE ENCRYPTED FILE----- 38 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3OC9yZlRESUZQZS9iZ1cz 39 - YVRqZXJyRk5ZT0tUR0lPOFgwZHpjSVhLNlc0CmFGZGxiLy9kSDlrWGdoS0lWS21G 40 - cHA0c1VRbG9qK3BoemwxYjgwaTBkeEkKLS0tIG10cjlIMVRCbXA1bUpmSktHZ2RY 41 - RFJrZFppSVRNL2ZKZnVzbUREVk5qWHMKTo/zA09taUFYIKGJOwKnjtKuZ57KB0Px 42 - QvKkD+E7bYaGZTV4/2sXLvYpabZlCEgp02z3HDfiPk3ginD/exUW8g== 43 -----END AGE ENCRYPTED FILE----- 44 - recipient: age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna 45 enc: | 46 -----BEGIN AGE ENCRYPTED FILE----- 47 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0MDVlbmE5MkxKRThJd2JJ 48 - SXk1c28vdlZZY3pxOEUrdUJZNGJKTDR0ZERrCkRwNDhnNUh5WU1HQ2lHMFlMVE5H 49 - L09rbFVtd0pyeGF4dGpwdkh0NmZyNzAKLS0tIFlXdGxweFVHY3dFanMwYXlnUXN2 50 - STF5VWRkM1pJVFpvamxJL1RKQzEvTFEKtdJuevKDW30qOj1J3Hn6oMC3Nwa5BZeN 51 - BiXYiRE8b+Zu4gu+QuVt6XhJw3a1ylScKX3fze4iIsGlS9yyK3dBDA== 52 -----END AGE ENCRYPTED FILE----- 53 - lastmodified: "2025-02-12T10:24:40Z" 54 - mac: ENC[AES256_GCM,data:ZvpURYEx4qFcSr2y7GNKdcQ/Qawlih1t5rxooDb0gjZQNzu8zl9+KPUcVFrn1njlp1ES7BWN93s51gsssqZ1+RiG8xXfaOK5SO/z/pAfUPRdwT6MO8SnnpKTtucdu2KodhZ87p/pD1A39rdCQ37kWwv3VpqeJFtL/J2WH3hNRPg=,iv:RMdg0KRgIu9Sp1Mm9bLsKCb0vuPdgQ19Es3HtweRu3E=,tag:g6etCq1zRBQvevrObBQuDw==,type:str] 55 pgp: [] 56 unencrypted_suffix: _unencrypted 57 version: 3.9.1
··· 1 + access-tokens: ENC[AES256_GCM,data:sLkIWAyispOwNUZJqXfTFVl8NbUcLhWhgLIVI2rahROYHMO3aU/0x8BOtmm0QkPYHA3C7GwzyvatMoASJWrqn6ife48=,iv:BPI8HwuKwfzOMT2gs7U0cpbpP77f+X/HvCcfvIJh9Q4=,tag:Kf2wZ+3xtKhaSY5S1QjTuw==,type:str] 2 sops: 3 kms: [] 4 gcp_kms: [] ··· 8 - recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r 9 enc: | 10 -----BEGIN AGE ENCRYPTED FILE----- 11 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcVV6MWRlWjhSQUt6V2E4 12 + R3h5ZTlTei9QaTBnSm0zQXU4Q2dkVFdkL0JRCjVnbHFpQ0VaVis1TENCbVQ0Tm9F 13 + bmxZakNpMmIyTmZTdy9aRDJKNGU0dWMKLS0tIHYwMGJxV3VhNTd3b1gwRUREMWVW 14 + MUVzclBGZmV5d2lZcFJyMzViZGxXbFkKpgyVR4xv8NA6J7keZwVvJX0QSjoTAaW7 15 + 9fu5UR/d/pYIoJswd7jPNdhnClRLnTpJB62RZf+HHzGU2uq6aND1AA== 16 -----END AGE ENCRYPTED FILE----- 17 - recipient: age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86 18 enc: | 19 -----BEGIN AGE ENCRYPTED FILE----- 20 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXeGFqL0NVaFYxaWVNdVFa 21 + Y3JKdFE3dnh0cFhQRVFqZjdXWHJ6VjV4eVdZCmZQUmJXNDZUbmVvWjRaMk5VSkxL 22 + dFpVTDRqR05xcm5OMDYxc2NjNXNJYTAKLS0tIFNmZ0JsR2MwSzhWeWhwUEx0WlUy 23 + ZlM1NXhPSjdQaGZlVDN1UGZLNDJRNVEKLmyd5dcZhNPKltxgVgHjJR1KQEcYOJ1V 24 + 6jY2Pq1dw8n8CswcThH4GmWBTqttEirFV8tB8CkYvHGk7oJCpX8gIg== 25 -----END AGE ENCRYPTED FILE----- 26 - recipient: age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6 27 enc: | 28 -----BEGIN AGE ENCRYPTED FILE----- 29 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwTEZRbk42bk9UdWh5bUFY 30 + MlBoVUFScE0yUlJNeUlDOFNkZTNmZ2ZYZXg4CnV0a3JTOEZmZXdJYmxUOUlQR2pm 31 + QzRmcGhWZW5RcGpLYURTWGoxcEtZVVUKLS0tIHVieWVteHcyMFRUOEZFVVYxN1oz 32 + SklxWSs3RDhtNHdjZ2tZb0ZSRG4ydlkKvjxtjpOtaNmzeGnVqVLbkI8cEh0wKsLH 33 + k5J7At247/4BFnQApfnw2cbeve2aQVsDjO6a6aZwcVrYQrErq/Ltog== 34 -----END AGE ENCRYPTED FILE----- 35 - recipient: age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq 36 enc: | 37 -----BEGIN AGE ENCRYPTED FILE----- 38 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvemdIMXNVSFNibjBmc3cz 39 + YXR3dHNGVGpUZDhtWGtSZVMwWHdKcU9zQ0VjCnNpdmMzNldvYi91ZWdGTkJyaWlF 40 + R2tBcHg5aXpFR2x3M2Q0RU0vVWU0OUEKLS0tIEZYRWVpc2JLWGEvVExpSktDcFNQ 41 + ZDFySCtOdk1Kdm1yRnlaTzFZRkpvQVUKGZoNU9KJgFOJau7Gxge47txwpAlMh2rQ 42 + 6Hfjf8E1igzLnbjvxQcGa2xVvI95KqhKZZclzPX9Vagl1z3XnoCvSw== 43 -----END AGE ENCRYPTED FILE----- 44 - recipient: age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna 45 enc: | 46 -----BEGIN AGE ENCRYPTED FILE----- 47 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1ci9GbWNmMWU4S1lGelFi 48 + TVAvUUE0TmtxNE9nSURqQjVSb244bnBjdlJBCkY5eHhaRUxiOXA2OFhSTkthR0d4 49 + dDhMUGhNeXA3aHcvemNZczU2bVpsQkkKLS0tIFZEMFFyTGJwWkR6QXFvYnZHVnNs 50 + OUR3N2IyMkxJc3RqcmorUFBOYjRpa2cKPQT3cmtP7I2C38OPaRqxudCXv6CEObnp 51 + DOVPG5JpeQGEu74kK5WTqbWlQU8AToOXmJdc+ru7ea1wAiXZiKEG4Q== 52 -----END AGE ENCRYPTED FILE----- 53 + lastmodified: "2025-03-08T10:28:45Z" 54 + mac: ENC[AES256_GCM,data:VktkGG1xk+tFtgdmLrM7rLQ+NEqDMATyu0kdm4iRe61mcMppNVR7ZxjP7Ryfz6kkiwAfqrv5g8pzaoHHCJoLAOShgCDdHB49USDVR7OZHp/BiNJkSwSYgSWsWQf4Wxve2lADcGJNrOD/l8jmO9DcUDldLdGEGJeZ6waej3g7z7Q=,iv:FhfHa/LN9UVC8fnilYv2NxlNT+xRRXdsKIejOqug4cc=,tag:mTBuhaR2AxulRrfPSB6F+Q==,type:str] 55 pgp: [] 56 unencrypted_suffix: _unencrypted 57 version: 3.9.1
+8 -8
secrets/users/nmelzer/github
··· 1 { 2 - "data": "ENC[AES256_GCM,data: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,iv:+pnvwKJLNUD+0tpxurFocDgK0qOGzVsYkcV6b6KYock=,tag:fgbaERoc0mo75uKw7SRgUQ==,type:str]", 3 "sops": { 4 "kms": null, 5 "gcp_kms": null, ··· 8 "age": [ 9 { 10 "recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r", 11 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1Y0JDbzhodnZnaFZhVWxl\na29GQ0ZWV2E1UHFFMGFwMjU5eC82dVkvSkc4CnFDUmZWK3MxM2krbm9uMmtaSzhC\ndWJaOFJocGlzMzZSdXpDQzhmem5zb0UKLS0tIHhlQWVKS21wVGhkNEZJWkRVMHRl\nVGphcGx5cDFxS1pmT1pxRUppZU1UQUkK2bM0cid/qyZ5/Hi6ZOI9zGjXLIq/yYpB\n2JQuVXr8c23I3e2KNQFmFv/KmDluaEYdUaCjmmyQIqYvgYjV3fo4kw==\n-----END AGE ENCRYPTED FILE-----\n" 12 }, 13 { 14 "recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86", 15 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaMmV4Snhocm1QKzE5cGFK\nbGxiZlRDT0JIalNDN2dzODBaWEh5TVNvNXk4Cm0zaUEzL051SytvdlBDa25CMmY1\nQnJjQzVXbFNuMXFyT1dZQ1BiN1ovbFkKLS0tICs2MHlDbVFra0REYUhGaGcyT1NS\nQnpUTGFtVnZJbGRzbHdoU1dkdk9rOWsKctvwtwwFjV8VMDsDexCmSj3BGa+OkGdL\nKgbhQYNPwkjui2lFepHq7aHAtxqodWFBc9KKlNaxB2mes0u7aqjSkw==\n-----END AGE ENCRYPTED FILE-----\n" 16 }, 17 { 18 "recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6", 19 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYYWcxUXBIS0ZNalpmMGMz\nT2c2N0FyNmt2RFpENzduQ1lmS3VKdzhUS1hNCnJXUUkxc3ZibktuS0I3dEZaMHF5\nZ0dFL05DdkYxeHZGMkk4eFRkQmF1SjQKLS0tIEVweC95WWhFNmE3aUJEVDMwV1I4\nMDNPbzBBVk8xVVR5UElMOXlCRzBOSkEKYWrFpBx+D+8vy+VVo6uN6bN4kzE2CWlW\nw952FbmJ1hZWmGtLuxIpwVXr4nQB6oy0VMgiAJuBqg8rnpg1QQCFoQ==\n-----END AGE ENCRYPTED FILE-----\n" 20 }, 21 { 22 "recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq", 23 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiVnV6VTRpRnVmeFJUbEs5\nWHB5RUpmNDEzTWR2cUpjUjBHOEEwWXQxNkRJCjQwYXdUd0NRNGYyTUo0NEFKaCtX\nNVlHUXI4N3NjWi9BbGFBMzZnUGFwVTQKLS0tIGFERHZzaHhQRVArbWNTcjF5NFRX\nWGZNNG1TTlJzY0gyTWNpWUowcUNiZncKeCf40+mUFwV9/I2rQfNOWAxAuwmdZLnU\nzFMei2bDhazVeZgqY7ZWFLzkTZB0c01+15aPNvzxyCt9cMvWGpNfyA==\n-----END AGE ENCRYPTED FILE-----\n" 24 }, 25 { 26 "recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna", 27 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWYXN3Y1RMTHdheWlUcitB\nQnl6K2VMUkRoTkx1WUpGVlRvNjRyVGt4eFFrCjd6LzZmMFY0MHp5VVFMOUNNSzhK\nTjdRUEtPRnBMSVlNVXdqRWR6Y3VTZFUKLS0tIC9mRmVjZUplVVhvVVZ2RzgxOHJJ\nSVZrOGdsTVBMbnFlT2gzQUgyQ2p2WUkKsQOyJlxGEhqAy3XiWETLquDQKBbsp4Gf\nFiKiqnO/ggXubgjn6PJ8iRBitYrbt3sB/lmB1HpNCyvMQu3Aa3Y2Mg==\n-----END AGE ENCRYPTED FILE-----\n" 28 } 29 ], 30 - "lastmodified": "2025-02-12T10:24:40Z", 31 - "mac": "ENC[AES256_GCM,data:lMDbF+FIV/QK1BGWiDsBg6xSoL/3/jIxRsZm/axPeRgBnR92ME0wfGapXQ5OxWGZkBMRXgpuS9mW5AtL4sFEXHuzOYZIByEwZH4Lu+HYyXjoc8TjZ5AVYlXJk6eiJv5NFhWOqz+RPv+OkYbO/Mi8uZiS1qFMSkzRrbpCNBNQ8qA=,iv:5ve3Kfxfu4VaXToKdDUDDGGLy/DRMNv1edJHyXdHO4I=,tag:pia4ov7cyGEFsk4IoYdtOw==,type:str]", 32 "pgp": null, 33 "unencrypted_suffix": "_unencrypted", 34 "version": "3.8.1"
··· 1 { 2 + "data": "ENC[AES256_GCM,data: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,iv:+pnvwKJLNUD+0tpxurFocDgK0qOGzVsYkcV6b6KYock=,tag:oVCamxWlyuQU7McVwxZUKw==,type:str]", 3 "sops": { 4 "kms": null, 5 "gcp_kms": null, ··· 8 "age": [ 9 { 10 "recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r", 11 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOSEw0c0dWY0JhdGpMVFo1\nc2kzQm1FdHZIaEtuRG4zYUIyU0Z0QmVOdVZFCkpNTFJpTi9ha1VFb2l5czJONnl4\na3lYU1VmNmpBNzNBdVZEMjNRVjF0RG8KLS0tIFRhTEs1RFF0cTRnNTJqbDVJajh5\naG5UWExpVVl5YjZKUUQrT3gxR09CbVkKc64s7ROfryegUfEr+lS1KkbUDJo7+hso\nBvdJ4EJqS1Uu6H2XugpwBco640PKknJABrkL68LdUGlsUsITqK/MFQ==\n-----END AGE ENCRYPTED FILE-----\n" 12 }, 13 { 14 "recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86", 15 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGOFBxeFNVU1RTSUNCOG1B\nZGhZQm1WSjR1NmsrYkpBd3A0M3liNlNEYXdZCkJKUkp3TGRsMzMrZ2RvU1YxVU0y\nMDJGT0dwQzM3T2pHZFplcFozYi9Pek0KLS0tIFlEb3VuaVJ1QlJPRWlVVDJaMnV4\nQzNhNzBuL1JZeFljb1hwMkp6NE9hY0EKtSZY/B+DbKkDW6cof3sjud77Qz+S6qO4\n81N0I13ywjMmLKLE/eXKEwRXvZkTV8o4AfkZIZo+JPvMgXcujrTFzA==\n-----END AGE ENCRYPTED FILE-----\n" 16 }, 17 { 18 "recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6", 19 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKMHA0ZHRjU2tYSEZna2ZV\nUjFTRDdMV1B1Ny9YbGlXVmEyRUNuMlRWSDFjClR6cjhHaHVKRFFGWEJHdERZZDRw\nQU9sVC9SNGZUUGxrVUdJWlVwbGpBa1EKLS0tIHYyeWZtS2ZjWTVJZWExTkJWdzFJ\na3NDMUNhSEtiamhIVUV6T2luNjI0S1UKIVHr+P3jpJY/k44EEE1RYB/PQxI4E3lw\n1DdyulRw0CvhuxVoZsINckTjgNIfRSeJlqS2OYEYfHPvqg2xcBNlGg==\n-----END AGE ENCRYPTED FILE-----\n" 20 }, 21 { 22 "recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq", 23 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArRWhuWVNScC9IK0Vya2oz\nZ1JSRERnSmpJVEVNY3VlWnZLcUFESUxVM2dBCjFSdUtEbTVDZ3V1eERja1hnb09I\nWGNLcmNKcW5wOHFIMjJUWTJrTXh4M2MKLS0tIGI2OFh2ak5PTEV4MFZKWjhIVSsv\nZXA1dFFRY2FjVnI1MnE0TUtJemoxTEkKcCGDk5Mj16JL4/fevQCXYuTdY5ZVE2rb\n7nP+oqXXRTQAMVYsWwWIftNjd2XCM43UkTUKetMktGlcBMd/vNh/Xg==\n-----END AGE ENCRYPTED FILE-----\n" 24 }, 25 { 26 "recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna", 27 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1RE0rOU1pYWVQOFU0N3da\nd2NmNjlZVWtEdisvcTVJa2ExRzVsK2lFcDNvCnkzb0dTQ1ZkM085VFpLQ09NZXBR\nd2VKNWtmWVp4YVViV2dpeUJyblBoNHcKLS0tIGUybXNsQ2tsaU81MURmKzJ5YThY\nS280YUMyL2JyK2pHMWlRTnNpSjRqNmsKg80xYn2ZE2zjt/t6pSUpXm0umg1+OM3h\niWJzu2RPayXglUc22hIiC08kahueHA+iJ+OPvMkl+NEM0FBMHotGLA==\n-----END AGE ENCRYPTED FILE-----\n" 28 } 29 ], 30 + "lastmodified": "2025-03-08T10:28:45Z", 31 + "mac": "ENC[AES256_GCM,data:xbFr0rhkcvO/+fTrGrOLCcmE52QVVxvwEu2Zg2vQ8DIt9aa+8p/aXI5ndY8TDoHsrl27IqZUetTYReXgyNBWuYhCbh6pLlJ/9GBipq+HTtyTuorj/hAREnaWDI049awM9yR6S6jELBSvPfUSKDi8JfBYelO04D9a2VinuAyP8/A=,iv:HzqLaMQbsNhwgBCX2YZj4pNbnLf73hc/IpJ8Hm5+pDQ=,tag:3rBwAgrscRB7hSKKj8ps6Q==,type:str]", 32 "pgp": null, 33 "unencrypted_suffix": "_unencrypted", 34 "version": "3.8.1"
+8 -8
secrets/users/nmelzer/gitlab
··· 1 { 2 - "data": "ENC[AES256_GCM,data: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,iv:wutx8cOVSjjC69NzlIrojwRLhs28QvNXRnRJSC6MMb0=,tag:NqVzDBsbldbYJj9fYhfbrw==,type:str]", 3 "sops": { 4 "kms": null, 5 "gcp_kms": null, ··· 8 "age": [ 9 { 10 "recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r", 11 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmN3lILzRiK1R4clYxaHg4\nN2VOU0ExZ3J6RGZsOVdrcDVVeWgzMXFLd1RnCnNwK1NWT1lrYmJnUDNhR055QWRt\nVTVPTTk2UjB0OWwzL1M5a1ZRNzZUTXMKLS0tIHZ3d2Y3cXVLNGpNd2VvWW5Ic0Zt\nZWFaU3BtUloxamRDd3NqR3hIeldXb0EKAz7w9b3UvoBpqJ15RQgltvhJ38Rs5KOO\nC6CtG99aM6QyjtHfr6GO69UI2uoGTx3W7609qJ/G7sBTb3KU+iVMSw==\n-----END AGE ENCRYPTED FILE-----\n" 12 }, 13 { 14 "recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86", 15 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQM09XeEVCd0xXY1hFdmt2\nTTlWem9xVkt4OVJHbzcvQ29LbzhSdW96T0NVCjZrY09XREVwTzRCRzROUVMvMXBP\nVnBxenR2MXRYT0VHVEZWamtZNUdwRHMKLS0tIGFkK0QwZXNBV3pyL05yamlZT3lT\ncCtMdVJ4QXVhc05CUlA0WDJla09XTGMKo2x9LLhcf361xUQc2xdaZBTUSheRDwsw\nCOOMuwWJRTQ0CJpExtDDYbtc8et1uHhskXUkyAmpPCOrEdAKm2mPsg==\n-----END AGE ENCRYPTED FILE-----\n" 16 }, 17 { 18 "recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6", 19 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDY0orVGRNa283bjRLaWVz\nRTlvSk1hN1k4anVYbWdidk1vczhaWnc3Z2dnClRXSkZiSVNUZ2pHMEdtcndEdStP\ndS8zajZDbnJSM3hkTDVuR3E1dUJWd0UKLS0tIDBpS2xPZzBySWt6MlFvejZRdjgy\nVFlVVzR0anl4RFRGcG9vRGVueStBeXMK3T+vEuyG4hIWefM9TFju7lbudAamtdQ/\nHFME2nzXYrgAu/VqhlF//FHZgqwBR2U+z2TNKi5E+GrpCd1DRUTnMg==\n-----END AGE ENCRYPTED FILE-----\n" 20 }, 21 { 22 "recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq", 23 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCajNubzNiRVJpU3Nialp1\nS0xCZjFjUE5hRnhhbjNUclNOdDYyYWJBMlZVCnNUZjdoaHdEZm1yc1E5N2dvUmUz\naS9CNGtvZHRTVHdUL1A0eCtjTjFrbmsKLS0tIHBaZGNZQ1ROVnZTVU5LZC9YVHlj\nYmhTclZVcFNYNlNrcWQzbFRMR0RLTncKz3+P6Qp+JhfKtmuPUJsR9+MS37HWsv2D\nsUJ/lSM/d998eI92lZrNK1Upv101gN09W2b8HC0OWFN/iY20r5Gv9Q==\n-----END AGE ENCRYPTED FILE-----\n" 24 }, 25 { 26 "recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna", 27 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaMGQrdTFZUGY3N2dQUElo\nb2R2RmlPUFRabGZpMHdRZzNnTVN5SVRmL3c4Clp4R3NtL1BHb041ZDBXVE1VVHFw\nYmY2MmRXejlERUtXcENLcExoTzhyV0UKLS0tIEx1b2I4dXVuNlcxMlVBcGpvcWpi\ncGVDaEliaHZCU1ZxT0g4c2Y5TDI3SDgKXic2iDP02smtVJdgkRttCyLSLFuMa88A\nLOB01wvoWPbJwYnTcaq2n6HuhhyQUwXaAkWAC+9OuvIeJmpvFWBEJQ==\n-----END AGE ENCRYPTED FILE-----\n" 28 } 29 ], 30 - "lastmodified": "2025-02-12T10:24:40Z", 31 - "mac": "ENC[AES256_GCM,data:0ZO6VIUEAwe/9ttqhGy/XrWQI4nSS+Iyw8Gfby2Y4ulCPE2yDXperkFfe8eq+WjBi2sl7/QIhV0BfCfRThfQgTY19RnSAYLtUqWJB5jNjFbcxoh62FL707XzIbB51pt1YYkKR+HelbGHP3Tt3FaGeTNxkRdAk7v0AlCRUaoD9DM=,iv:wElRFrilXej//AEfx7Bok9ZTL64KxFbze3iJMUidgHs=,tag:PXs6an8tTWOGJcP17hauhA==,type:str]", 32 "pgp": null, 33 "unencrypted_suffix": "_unencrypted", 34 "version": "3.8.1"
··· 1 { 2 + "data": "ENC[AES256_GCM,data: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,iv:wutx8cOVSjjC69NzlIrojwRLhs28QvNXRnRJSC6MMb0=,tag:cPf78d+51Op/58UiaM8IqQ==,type:str]", 3 "sops": { 4 "kms": null, 5 "gcp_kms": null, ··· 8 "age": [ 9 { 10 "recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r", 11 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJc1N0MUNwVFNlTEdjUElq\nUWlsTG8vc2xQYitYNWlUTlRGRTVLVzRyY1dBCmlMVG9OcUU5bjhzNDhpWStDaWVn\nRTcxZ1QySFhabklhQzJKL3BqSVVydncKLS0tIGhIamdINjdJZERnbXowZTlNRGtY\nOVVJSEZ1Q2NNNXNXV3UrbldUTy8yTlUKeLwquuhjLHDwzzL8JERFELXD9b6HWlKD\n6YXv+mHaeKtcN0y61uzH2O51U13e79ipex9AeYj8YSIZx1DRiJAg5Q==\n-----END AGE ENCRYPTED FILE-----\n" 12 }, 13 { 14 "recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86", 15 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlU2tFSTgwSXFyVEo4YVdO\naUx5R2F3UGxhY0RBbStMNDdpMWZCdkVzMEc4CmcwOVVFbDBGRlZDS3dhdGZNNUtI\nWWNCRDRUelhvVzA2ZFIwZ09QYUhZWk0KLS0tIDRORmpMZk5CcDdOL2pvMW51clA2\naFpFS1k2dW9rY1dQR2hwb2FlMWVrREUKL3F0eiR8lKlDfQMYekRvxUo/c/qDVgKJ\nl5+yOsCMh6iu2u696gRcrnzrZ/aX23TJE98ttYS97DeUjUCc0Dpo1w==\n-----END AGE ENCRYPTED FILE-----\n" 16 }, 17 { 18 "recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6", 19 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHcUhZOU9kQ1FkMWY4TkdS\neStwOThKdkpWa04xYUU4MENrbjZRQ29ya3pZCkpqaHRGeVUyeGdDemZUeXNkMlo5\nTkg3dFNlL3c1NWJNS1FzWUJ3b3FSYkkKLS0tIG9aUkxYTTVDRitCWTh1TmRFMXoy\nU3p6RHk4cUVOOTlDamNSZFdIVmc3STQKdvB/aVmyKhVAA+JKT8aQo1VmDa2WhGl7\nzGIGX77gsjDiy9Jb15Z3KWGu4AP+bonUTmTkUWA5Oiqe1rhOe9MDMA==\n-----END AGE ENCRYPTED FILE-----\n" 20 }, 21 { 22 "recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq", 23 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaNWhBaWQycm1EZ0JwKzIv\nSit2UjFhNUsrd00wSzhua2xONXZwZlA1WjMwCk80WG5acXNGTkFEdmxyYlRCNlIv\nc05CY0RQM3Z0ZXZNTkswOXVsaVcwS0EKLS0tIHBrNnpZbFRpY1BuMm5ocnlYWXNZ\nTXdBMkhROGxBM0R1MDdPNHhKM1NYYVUKjZaHwqh/0OKB+ybatAfxEF4OmskYW2E9\nYEjuhy9jdcqi2a3hm2bI6rdSCsemAADJPW2PWsqjNc2TB9QeAK9ZgQ==\n-----END AGE ENCRYPTED FILE-----\n" 24 }, 25 { 26 "recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna", 27 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTUEJ4ZjV5aUhLNUVxNlZp\nY1N1WUEwNE5odUQ2ZkdqdFV5cjB6WW1LWkRNCndObExzUDB4ZFdsYVVNbUtBbFE2\nSU5kZy9iK3RlY3FLWXFrR1pzZmhYOU0KLS0tIG04dm85SGtMQmZmT2RqTGYyRWlS\nTVhCRVUwWGhUaGdpUExPVjIxUVl1ZzQKkcnzuMCngr9oWFDynRENTlJQEFIbRJV/\nY8THko3rajg5QrIcoDTHeQ85WM6ucapUakAUTbis+Sa9xBoQ2coqDg==\n-----END AGE ENCRYPTED FILE-----\n" 28 } 29 ], 30 + "lastmodified": "2025-03-08T10:28:45Z", 31 + "mac": "ENC[AES256_GCM,data:1Y93EdZwSxZ3u+F0umtNc0jxzHHR7CdF2OUDb+DhxhmJrt9dEBoK1pRAN2qkdTMRMu5SDZVh0oilbQQC8HSC0iegpvlJo7lkG/qXyo1ixqEdp/P+mjqZTRqyxt2F/fFTPU9ggXhpQKyJcDgV6fjGm1pyYcTSMsvm0hOyrFq2+fE=,iv:rBYnAsB8PFoK2y0rb3G8YgX7e0yACTSE/AO1fYoRV8Q=,tag:TR6ZqCdPll7zPVSL/qUTzg==,type:str]", 32 "pgp": null, 33 "unencrypted_suffix": "_unencrypted", 34 "version": "3.8.1"
+8 -8
secrets/users/nmelzer/nix-community
··· 1 { 2 - "data": "ENC[AES256_GCM,data:42sg/B50963tjrRNOutF+/5Uvdoile+fQQheRysu3rhV2ldZsSdGqNOFm95ILyrdPteJwFzi3QoaoXy/UbG+Pa9THIYZq9yX4y1EYlAsr8+k7Bal03ogQeHejEeVaM0SOCCk6QIuQqij941GuwQaG3m4oykweQ9Wo7kKW9mIZKHw+uB01mcrLCqvR1/rXtIvnjPvyfWe7OAx5mZ5Icb/r5MdfqFcwmnEDq9x5OOVY/2/Mnh25W3qMk+OvK9JM9KEdCxXdguX46b6q24RFKW9GL+m1AeD7e5RHKMq7L5Z24M04FDZhPaa8V2rKlLbjZyfcyQMGIuOAO4v+YX4uvfOv76N7Apgf7xfBZH62k82WkP09g/ime1ml/dvJCx5XszMH+XMvcM6lKZ0uSwWjDrJrdYNkdTDx9IfIl03KuI6go4R5vwYMFydstnIaAbpYYoQQqUGNorpH8Bz9xG5e93fAPFBtMYPe+QahWiESSSRhQ1wPZkQMW8YDG96l/e5LZsL3YnnntYDodNP9MQk4Ivs,iv:liL/qeyXe5Wbm3WtMCR8iIUk0O7gdIqYTOS9sBJSyqo=,tag:zn9YVua0rWGMyoKD1q9poQ==,type:str]", 3 "sops": { 4 "kms": null, 5 "gcp_kms": null, ··· 8 "age": [ 9 { 10 "recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r", 11 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArVEk0N2prK2Q2VTBHNldw\nYVlrdDBrcFJ2VUFVU21JaGNqU0N0ZEZrQ2dNCnBvekV5Ym90QlBoQmZ4UmZ2NG9Z\nek9oSngyOWRKVDYxMXRHZVBzYnJFQjQKLS0tIG9rTmEyTDdQS2Y3d0thMEk2N3ZP\nbCtRd1ZZcElNcCsyNDdDMlUwU1NYclUKbXXMSVn9QheND/63/rLBJeArT6IJobim\nK9Ta3nk4rwjEumV8hZIZV8Q432/NfhwQuI6PZRf4lfpVFBHU1qe5kg==\n-----END AGE ENCRYPTED FILE-----\n" 12 }, 13 { 14 "recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86", 15 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLZjBzUmo3cVFRV0s1anJs\nd1ZCRTNjcjd1ZTJTZVRYaTg5UjNVOFBKdEFVCk02LzJWRStHdDA3T0hDVmFzQ0Fs\nT3RBenY4aHJKR2RodmJGM3lqZm9qR1UKLS0tIE9BMlo0Zmp3QnRJZFdpajlsUTBT\nZEVYcE93eEVadERvWXlXM1NidnhoMDQKQ+hACUvBIMX39s5WzPiPY/JX35BbN76H\nmxgzDLsLuVfRFoMVaEoqMoBFUSFxkVunlFFML5eAuEXD9MntZb5aww==\n-----END AGE ENCRYPTED FILE-----\n" 16 }, 17 { 18 "recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6", 19 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOb0JIN01McXoyUTYyTzZu\nYzVYWEEvU0c5dEx4RTIxMEllVjRpZkVLczJjClN5ZTdqek84eExqTFdBQStRNEsr\ndE1zTzEwZmNQK2VyQkw2cGV1MjV4dDAKLS0tIDZTcGhlVkV1Ym5HOHg4bHBoK3p6\nTEMwWDZMK09rTDMySkt1MXdDMVEyTkUKzJayAA2EaSo78xEeo0m+x8bsF1S5dn3O\n+QLCMIGtfqHyN7ipGNIv1qg8shZMpCKW0WmnHKGM/Hr69CFYzILeuQ==\n-----END AGE ENCRYPTED FILE-----\n" 20 }, 21 { 22 "recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq", 23 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxNE0zSngvalNtWkNtK2dz\nWUtKWWdORDhhNzdLa24xTkxHVzNFbUI3SG5BClBSWXRHS2daU1o2b1VxQzZ2WTYv\neEdxWWZ4bXMxUzV3ZWI1TG9tZUFmQlkKLS0tIEtTVmg3ZGNZWWNpU01JaGgvcE5B\nT1Vjd3R3UWRpMG40MlNpSk5Yd01uQ0kKuvvRCeQ89cHb5tR2coVX00P1wZQ5JerY\nej5my/Sj7jm0wC8+RT50RT+OaBFPAVdNzna88o4eNz4WKy7FbkJq7g==\n-----END AGE ENCRYPTED FILE-----\n" 24 }, 25 { 26 "recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna", 27 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5UXdVeUtQUlM0MnBkSytK\ncjhwdXF4aG84Uy95MnN6VTR6c3FNd0VsNWxBCjJGNHM2NGdlckp3U3pNL0Z0N1VL\nTUZKWjg0R2UrUm9HR2ZsaWNUUEFXTmMKLS0tIDk5REhwUTh1dkVCOVRpODBYR0M4\ndzd2TDRhTnBNZnE5RldwN3RaZXFSUDgKCOh7eUpnv6UTjZHOts7g/Cqxi+/u48jT\nx+WGXEfIilCFc2kaMMB3lS61jbV9tFsVcVBh9GyRwwpY4WpGm/BYJg==\n-----END AGE ENCRYPTED FILE-----\n" 28 } 29 ], 30 - "lastmodified": "2025-02-12T10:24:40Z", 31 - "mac": "ENC[AES256_GCM,data:7/8uuMm49EDa6oP/LeGzn79O/N+58orN9As4vgoe4WhA8oqxpw45YHXPLd5mikfIbKfRulLhnW4Oi4tmJ9NjYXMTYKuYUrcesVqGFHaEv7rDmdWDfrkRwfa2ym8WvU7732g+vFkzXabeR47xzDTKcgZ91brBRvuD9GsDISSU90k=,iv:zvkwi6TiKJlmkNhAi1msQZZ4C/De2FzmpnQT7QkLVDs=,tag:WUOYeFUkEfGvp8aiz1AzDQ==,type:str]", 32 "pgp": null, 33 "unencrypted_suffix": "_unencrypted", 34 "version": "3.9.2"
··· 1 { 2 + "data": "ENC[AES256_GCM,data:beYSt9kq8a7NhS+FQcWQFFz0AjJP+Ybz1o5tYhAXkFo88OlxooLKCEpFgSDmN8jKgoE/IItxuLNVJJmPmo7+QUbQZgZq2Gs5xE5Am40ckfWc5vdGshxa5cPFqt1v+Sq/D6+oMj+8wxRC8zbUXGAH7Pah9Zaht/O/8gYcdnuypokYz6iKn9J713JbKAUHNNK358UUQhkEuVHWIgsWjbe6FylP+GlNtziYm2d4FwhAebuoOmZx3prQidP2qAcuul/FWjvRa5tJX3mEEa/oA1z44Q54jkPyWHvaMbsXMwdmq/3iFL26pMMZJl7FrM5OjfcxsTPNFHZFe9zonVWzffvdgu3KDpNcGTDK2OZRbOszr6kXy3BZYkzt/EMHoqH75mJ+WNCaGIZ41c3MMWBjEr0AkDLrLWA59EcVAJdH0WQ0TaVUErncLG6kR9UfGTMNm6dFs50IJy0PfGISHAKrnNL+2NkAdEVKlhHouP/0nlCqgB9Zg33nWzHniP7e4j2yDz6jfIkoIUjBHuwYPh44MEFE,iv:liL/qeyXe5Wbm3WtMCR8iIUk0O7gdIqYTOS9sBJSyqo=,tag:pkKFZEKNNBvl3/SfjH2nwQ==,type:str]", 3 "sops": { 4 "kms": null, 5 "gcp_kms": null, ··· 8 "age": [ 9 { 10 "recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r", 11 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtZ2c0aUJiRENZM1FNamJX\ndElNRmNsdlRBMFZNeG5vRHdVcjFyWEhYTnhBClJEbWF4ZFkxM3NoS0hXS2tnaTJY\nM29oY2xzQldidzdBcE54c2pTdkhCNncKLS0tIEFLNC94aUZmUkdLc09oSEkrb0VS\nM29wT2h4SEdjUE9CMWtFMmYwSHVSaUEKN9MEDf76Wa5JNjk0DSy8MExMDjyxhpSu\nBCPeuJpyYqac2vpwc09ttV4vqbzRzrGHlMGPpgFkgkYvvzX5lqehkQ==\n-----END AGE ENCRYPTED FILE-----\n" 12 }, 13 { 14 "recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86", 15 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXeGZtQ2xERDlxd3l1TzFW\nTFhmRDJnOUJxUW0vemtZM1FORCsyMHFyTkJFCmtvR3I4eWhuSjFrNTJDdkd4Z29k\nRkt4eHM0aWVtNTZuc2txVGNKc2N1SDQKLS0tIEZ4bE5qU3hSSGpXb3lGWHp6MGti\nb2QzWDRYRmluWDllTVNJNmJaMlMxZDAKB0LOonMk7ypELophUHLnR2eEOclM5CgD\nrbgkmmKZPXMSvXLXDoQDICxleDNoFD2mWi4JvwZWZuRpaNs/1KPraw==\n-----END AGE ENCRYPTED FILE-----\n" 16 }, 17 { 18 "recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6", 19 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGdTVoVUI4UzM1VmlTZWVy\nblZxZE04TmIxaU1zOGhrREh6NnJaaTIwSjBBClFHejZwdHlFRTQyMC9YOFFsczhI\nMjh6cjJzcklFUGlHV1p6TnJUdzNPVGsKLS0tIFVQTDI1K0Jydno1ZVgrN2p2aDdi\nQ01mR3lNVzRmSEptQklBR0tIbWR0WE0KKND3aAMOLmMLjQV4iexO+XnjZIgZSSOj\nbK3qtICJ7E9lcRgoXtHDJm6+e5BzpBOUVkfX7cKAEWWtbfwrHbYnyA==\n-----END AGE ENCRYPTED FILE-----\n" 20 }, 21 { 22 "recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq", 23 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYZTVyRU9DQmNIRm1HWDQy\nUmhQUGVPM21ldGhCSzMydGpMK2JBdUNZU1JrCkpTa1krT1haWGo3OEdnLzFQZzh5\nTkFYb21JZjhGdmZxTjU1U1hRU0hkaGMKLS0tIDl0M3NaeE0vOTlTU0psSnVpYUw1\nYUE3ZGxXUmk0WUZmWUlQdjJNMTRBclEKPCZVzELeRe9jUC+dY/LTFrk0yrk4uWn0\nhNCROYc6jQPAHLhYRnCbWkENCQHfhBrxVLeyzLmELoU5ZdM0KgtPyA==\n-----END AGE ENCRYPTED FILE-----\n" 24 }, 25 { 26 "recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna", 27 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3aU02ZFlIcDFpUXU5ZUg3\nUFZTR0Uya2JDUkw5L29tK3d2cmg2N05XVFRJClZnWVpwVHo3cFp2b0h3QVh0Wk15\nWGFOclBuQVMvcVdMcklGOUVST2JGYVkKLS0tIHFrRUl1aW1OZ1Z2SkF5K3FMRmFu\nQXlDZjdlWVFVZWEzaXN5NnNFc25iRkUKk6/f0mFEON/gplXSDCviVm4+e+duQJlw\nBT1oJflU2VHXK9RJBiUl9sV3tGHF41MeXpt3WoEO1AKMsk8Q3Q++1w==\n-----END AGE ENCRYPTED FILE-----\n" 28 } 29 ], 30 + "lastmodified": "2025-03-08T10:28:45Z", 31 + "mac": "ENC[AES256_GCM,data:yenOYHB/Eax95Z8YqLd2kWq6bHUIbDXHj/qQntzLgLmBTUpnWW4DKuyligR3iBH91WD4evWBc+bDU5sMfGuozDQpgynsoIjPiOsNXPlLOURZLQf4tnqPzd4VzSkWsH2Q+b5bQvEteqYwYt9EI0XUxOfIF0X10yrjCM6axV6bsu8=,iv:du8kmJ2P/33SsLOih+5oCMrdvIEgWsFEC4ys51ASLJ4=,tag:4jsUew+WAfIj6pAUTGymLg==,type:str]", 32 "pgp": null, 33 "unencrypted_suffix": "_unencrypted", 34 "version": "3.9.2"
+8 -8
secrets/users/nmelzer/nobbz_dev
··· 1 { 2 - "data": "ENC[AES256_GCM,data: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,iv:iwfQiWkkxmB52x5mVXlhS3pbzKL3/ctoJMctdhHGQuk=,tag:h0VvgJOEwy9BK050OJ1MBQ==,type:str]", 3 "sops": { 4 "kms": null, 5 "gcp_kms": null, ··· 8 "age": [ 9 { 10 "recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r", 11 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSWG5xU1V5U3dGdkh0RTBX\nUGV2MlZIZGZZajNrQW1hT2ZLd01DcTBTU0FVCjRXMWdzc0NUNWFSdVBQUnM0Zndr\nVy9WczR0Rk1JSEwyb1ZUSWVPN25rMGcKLS0tIDhsTVBWa2ZOeTk2dDNZUlQzaGRK\nR1JGWnU3UUZqV1lWV1p2bWZzc3VVUFEKHhbzzbLV3XMgwdijxy+3xG3BzkdeJl+E\nJ3fjvkqFyFVnt3z+ZCnpZ5YcfIRllNXp++M/DaZBTAEO9FehLf4DlA==\n-----END AGE ENCRYPTED FILE-----\n" 12 }, 13 { 14 "recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86", 15 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2TGcrM2dmVmlaSS84OHpC\nVkFlcmlXVjVaWGtuc0pHem9WbTJkYS9UR1NJCnkrWUpXZ3ZlYmdaOEd5aU5NVEVJ\nQnJ5b2kzV3owOGhvZFVjQTBEV051UVkKLS0tIEdZNWwxc0hWZVdzaVdtbVlvZ1dj\nZGJ4UFpnNUdwSkF6d3lvc0g0Y0N0V1UKLd/ORCcsGbcKEReHCC/ZK7ty8JLHMraC\nQlfFQjUfGAvAE4+J+cQBruzm4IP9uAhRaYuzb3thwpgYV3uH8vnqkw==\n-----END AGE ENCRYPTED FILE-----\n" 16 }, 17 { 18 "recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6", 19 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2dUx6NFpJWlVRK01VbE1D\nUzFVeHVNT1d0UGpyZW9GZEdhR3cyNFVyTWdVCmxraUhqUVovdkJ5VE5oUUhZTEJI\nNGxkYW9BQVE3U3RaN1k2Q2xwUXFDd0EKLS0tIGpGdWZBTEcyY2xCaDlRYXVnUjVZ\neU9IQlBqQmQrSlA3NXJvWUptakppY3cK47wlMIHaQKgX372bDfdrsR9vvSovv/Jx\n3mgQZPo2iR9+5psgEZfWaIEIYEJcXOvynkcNfdQO2VMAGbidDXodfA==\n-----END AGE ENCRYPTED FILE-----\n" 20 }, 21 { 22 "recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq", 23 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTelQrNExLRlE3S1hhdXhs\nZVk4QllMOFB5cmwzb1RSbExwUGpzaGxxVW1jClVSOVp0NTludEh4QUNCUCtVeXJY\nbkJoZzVVbnhyYUVTVWk5c044Y1o3T3cKLS0tIFhyVVVRSXJqdHRkZzF3L3o4YVZB\ndDlQbnFqL2p4Qlc2SUpuU0VGeE9FaG8Ksv14E31Kh60inQ1xiGqrv2iqlO7u4Xmw\nZnO7HwdytnxuUV7rbOVucJbJnPepaNm4fKgZmnLkv5ZWLpiJ11Pkcg==\n-----END AGE ENCRYPTED FILE-----\n" 24 }, 25 { 26 "recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna", 27 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiRjIweklHeEtYOHMyT0tq\nRWpDU1kxMXIzdnZmcFNzMWxzeDJCaXhFdEZrCkNUZG8xUnRFWVpIbm9tUmM5dDBk\nNlZLcFU2Y0NWdjRCUS84eU9pemFacncKLS0tIGwwN3dkYkhYUzFXaUNBOUdIdFpW\ndUhBWGNUV1VoN3luYUtOQlJ4Q3VHdzQKGSD6ZwTBAfViOOfAEtRvVSLxz7QZiBTT\nVZdYkgkcKLQ+EOQ5n3tZKzlHOhMhAl5cMLHUbzex2v3/vFGrZxus7w==\n-----END AGE ENCRYPTED FILE-----\n" 28 } 29 ], 30 - "lastmodified": "2025-02-12T10:24:40Z", 31 - "mac": "ENC[AES256_GCM,data:Z8DioGTGo1Vd+TP6+bVJDTrms7jeqximkXQ6athBkerP1Cx9rZjq0fkZYJW/OS0Uksx7B4Z3nHqTJYC/dfWKbwinO4OO0/ovp/TnuWYrkVovpzJWaByvH4ONMYXjE1R0ZvPGQDAkJydnc+wq4/zBdSJeOX+wNicJBDlDQRwMUo0=,iv:Dhw2sZMRbPtdJkyWfWpvjw+xcXykEsRvgmxWh4rcXMc=,tag:YcU/xUKjk0HiSZFYVP8L3w==,type:str]", 32 "pgp": null, 33 "unencrypted_suffix": "_unencrypted", 34 "version": "3.8.1"
··· 1 { 2 + "data": "ENC[AES256_GCM,data:JbATH1rQff0rUhJUxXAKwqq+KO8hjLXnwp6uwBwCpQXK1OAD88l/4StWTZ94oSqUwcwjT8DtI2M0DLFdGFQTmmQrrt/Or8XKHnZc1zu5axgJ8H/Ey3m+CFDgz6Wg9rOuc1nz0EBTBk6XIGvyeXc4AMMfUuVDo14ijarTL34JqPy4sB0ayzCGCWZTyxy0VKQoQnYQBK5D2JTqG4P2IjFY4yh/2R+IRmK+MghErz3gKg5ORKPfIqH4rFAszGbUjYZt9TKpVGiidW2lYVn0nqVHHzMgZGokst+jkrcriKQS4CLLLk/zh0Dx0fHo1QrJyRYzry5cFFQVCQZKyTe3nbkuExPbxfm13hROCC7jK+XYgn6T+MowJ4u6/B6F//UgjTLQ9by58lhbG7N1IUbXcgGYpWYib9bavF1ELk2PXdazP+WQJTQXMYT/f++eT80m6PdPbmHVbm1cjVD22SjnMa8g695eTUcvx8jwFbTKVEkE9kMEMOlAG6hVvf6/+8G+xvoCYXu/C35/mf9k6n62ii5QkoPiqT5yKKiGv/GXht+24d9NQGX4f1CF4p/6s3yRfKaOnnOF2MLseY8eYGrlLdGqdr3QWet0cAcraTXP62OH3gBBPhTW0U4N0EciBsX3/9atVxoiq4y9C/SQOYla6MIRRK6NTrWlWLCRif/MOBja+Ya7BG3s51umZgS8v3uPL9OyjpWutRpYvBPkherfHpKKzUUNJx+o/2De0yFtQx659bVddBQ1dBmJPjYkUbSzQBJE767pEyZf1oac88SC0wizxPFLDcI7ZzFvQlO9XYs5pgoO9aZKqYDx97rT6BJeOyUmLE4XhURliQtpL18fRqIqHu6SoAQoLZpjLx9A5JUHyI2iem7FyZJKFVeA/bL1hdXL1hby/VpnuP3PmbGP90Y4FOHPozUsLgBLObqbgf6SMKZBEs7JWWEK4i9A1uYbv7LIvxslqYvB+qwdCDEa+tFfz8TG9pBerJ2oqCpaNbO0UGruvpwJ7HXSpn4VdAXgG5zy4glupIqkGUNoERpYEVJMRZxx4K8ST9OZ+0qwpAOOTXTwYuqkcEw5TNwcoNswUNzu9Ck2/An0307fhOYXjO0D8IDvTDIF5CSESILjASB5H7qhbR4hbUE4G09fIChKi6DLyTP/zMAwWpgUBwxByZGMrttH+EzntFNbgL2EGbbdCfr8Vf7XWHhXT/bNYhlGJp2dkdOOBnV3XdPMIkyl4zJqzzAFySx4cpFTfCQ/zwWOEQN7H58sEsqcUxeYOtnSwccWkuP0+9Z4nrdJrAjq32RLeLSzTJ8cMStB85E3h/Gqx+O0Jw9fA+H4sE49JGkIobiuioz0wC/6uMQvyMBs5cyDvpiWFQ3dj2bKgpCtBVrAlcNG1Q8Hljc55WblkFiQRxVix1xB13yCpFMeNuIdCifGXUbTWuA64H4QjG5/P5KgH5IkT6Ry0wDPGw7CSqMXCXhCiRLsyzByGfy+LMkjL4LZk8GP21+6NlUkc+5j+cNZkjZ22J5LhxIdz4eE7MXSMKTno0iMrvUKYPJe0+NgIrXtprsacHLDyDSXowS3FUPWqPfPLG6vOBfz+99DMumFY1UU6eHSdFHVovBdp50kHnu3LbsiNh4iNvl8rtctgVl7PGRMvU+tF4GtiIrxHt0MRZzQ6WemRVvRIvZBYMXEEjn5p6Xn9Lg5p9HjsnvpjdmJOZCp4CCwYrkm9kzk+f2qwPVy/J6DQBwgr41k0Pd8fbCQjdICkGSU8yJxwCsWvP5I2T5NWrPiUdav0doc2i5fEi02NnDcL1ncChBooqrVjD0mLIbQ9ra9F+f+51RGZO+Y7XjfFH8E2uUb8GS3u/bZbhmoCvouVKHLurOCcmFfs14ZGek0bZT7Q+PHChWzv890MkA1S5A3x9orY6WmhR4Zy86Bsi9PA3YNL59jUQTl0nWknbrxuhPdPcsmCL+DgdSV7E5zesUaeRJi7QuL/GCZ2E8PKKSuh9Kq56pYk8HsYMsrqNqyU80QM8aRc1o++YSq6SLwEmY1Pm8fsssZTjP9PT2RZIXt5LjskQbkA4Q4rECm4JQepx9jHZeFAgo0tDOfAmj7q1QQq3bxEfvRO1dxJ212tvcFpR5ehDO8d4CLyTMqprBvG9/0r2qO8xp7ifJQKHx4CDpiiZaNS9Fyl1QdfqADvrT9z15ucRsmoQuL5zjVdbC05lAie4wswlcOUUvu3qoj6RikDC+xFG6AXd+e33un1v9rT2XmVzz+47WKPCQLfRqCDkNgwpjxUkrgCsiFun3+EhzWxLxzXLIEkVfE8c7eJnQSDu3IEShZ2vF2sT5FFJScN8tf888J7mCgLsHpnWbSplXxa4RMjO1rHD1S04tLC80EPGl/rdaraHmnEtt4mc9boo7IyusR19gotEjRRnZDZJaplDt72IdgC6hBCQM=,iv:iwfQiWkkxmB52x5mVXlhS3pbzKL3/ctoJMctdhHGQuk=,tag:VQ0GWz0xyQiCx/WpYq1itA==,type:str]", 3 "sops": { 4 "kms": null, 5 "gcp_kms": null, ··· 8 "age": [ 9 { 10 "recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r", 11 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtQUpwZ2JXYTUybXc5Tm9T\na1p6azYvbno0NzY0UGNrWnNjQUd3SnJMakV3CjVMemhwQ3NmOWFJSGEzQ2ZsL1pF\najgrM2g2THQ2dkxTUUM0QlpnODRjbUkKLS0tIDZKaFYydnZRYWdxZFIzYnNZbjZ3\nWkxPcWdHbm9ZZnZNNVpIQmZ5djVHTGcKAiKFm4r93FBNXxt/jgofvKS3pn0NbdWW\njDacQ7VUubSqpmHax/s/FNV75g5ynIm8ldOJVoW6lgNxPWxcfucTLA==\n-----END AGE ENCRYPTED FILE-----\n" 12 }, 13 { 14 "recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86", 15 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLMU5ycnhZSlJyQ0UrRXVo\naVIra1o2TkRmbTFFMHFzeTN2d1NGQUluTVRzCk4wRm41Sy8rNWh4OXI0eUdKdDhH\nRjZwcE80K1NUbGxubGp1akh1WVFTWU0KLS0tIFZraWFpdmU3dlRCMnVtMHN3RnFD\nYmN5dmIwRUlJQktKTmUzZllTb1lOUTQKkJLBrTeUlPaZ1C/pGWu9WQNFCBgsJVqS\nYnPpsvYJiOE/6WmCzB34OVpO8vdrv1mE5jR/Ila3YQVjBt8JHo7Zqw==\n-----END AGE ENCRYPTED FILE-----\n" 16 }, 17 { 18 "recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6", 19 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVUEx6UkEveUI1UVRqQm1n\ncE9OcFNnZFM4eU5iM2NpQjQ5R0NteFZOMlhZCk1Kd3JxVy9tTk5oTU1GSUgyTjNO\nY1hmaTZjYmZkZHVnazl3Q1ViT1R6RVUKLS0tIE9udElPWU9vNWpYYWtmMmluTWQ2\nK0hWL25OemxpVStNMFZJUGI4UUc4MmsKs7DTAfnY74yp33cmdyYiF6fPiNgheehm\nRO9PDQ/Yh6wIq/6j/brPsMJLyYrC7+Mjgx/oX5lNmMwTVLBrCe/qdg==\n-----END AGE ENCRYPTED FILE-----\n" 20 }, 21 { 22 "recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq", 23 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqVW5aVUVpZk14U1pYK2NJ\nRVpGbGdXVzlLQ25PSWYyWjR6bGRCWkIxM3dVCnlGd1h3Z2pJNmNweTgwRmUyL1Bo\nNVBoaFprQWVUK1pQbi9YOTgreFBpcDgKLS0tIFhCUE5WQ2w4R3J1eXVhSFJEOGRp\nMlZpSnovWnpvc3lGemE3WmJkK2xQWVkKkNZaVbq8X99+MXfei0BzbXBwzibERWvR\nV26mOEEYcfv/3/KqCLOjBVCLEE3RSuB9AtniAAFC6Fj0/jHnMzaghQ==\n-----END AGE ENCRYPTED FILE-----\n" 24 }, 25 { 26 "recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna", 27 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQdlIzc3NQM2JkdW1TQzVX\nYVRjR2hEY3NrME9GeHJhbitpQURVbUdoTWlrCm81Wmt5dWpWWlVtaHJKcnNnMVJm\nekZnM0gycDdlZi9ZdUhYMTRpTFhjK28KLS0tIHcrcFQ3SEphOW1oeEsvcDdBUFRI\nU1psVWVldkZ0TXp3QnBmMUxHdm1ocmsKn/oYX+0hYRZvC32KGQ9hNRDMdlxclv5x\nekDM5wPeI9wT/j62bxmykEtNnI40WEpEopz7MSZvRnj6B8zF9boFPw==\n-----END AGE ENCRYPTED FILE-----\n" 28 } 29 ], 30 + "lastmodified": "2025-03-08T10:28:45Z", 31 + "mac": "ENC[AES256_GCM,data:7XBQhTfVn9Uq4ZjjpLdMyvw+kDhIJ+dUEjI1j7Lq8QzoxLN7kqWyrotavl4T7x3kbhGseqA/RtuldK5cvw90OK7FVvWD0H5WSsxDCG2zuNRCELmiOEM8O4Iw47J6ye3wY9F+05F7ggG/GrZGJK09YojuZyek4G+/slHfp/Zgxy0=,iv:vAqJx7GT28f4wC0iH0w+K/HRywJlMb6/N/5Lb1/4q80=,tag:L3odjAh/IWuddrzg7vP/Sg==,type:str]", 32 "pgp": null, 33 "unencrypted_suffix": "_unencrypted", 34 "version": "3.8.1"