My nixos configuration

Compare changes

Choose any two refs to compare.

Changed files
+189 -197
.github
home
configurations
modules
profiles
base
development
programs
openshift
wezterm
services
restic
nixos
configurations
packages
advcp
rofi-unicode
+11 -11
.github/workflows/flake-update.yml
··· 7 7 8 8 jobs: 9 9 generate_matrix: 10 - runs-on: ubuntu-20.04 10 + runs-on: ubuntu-24.04 11 11 outputs: 12 12 packages: ${{ steps.gen_packages.outputs.packages }} 13 13 checks: ${{ steps.gen_checks.outputs.checks }} ··· 17 17 with: 18 18 token: "${{ secrets.TEST_TOKEN }}" 19 19 - name: Install nix 20 - uses: cachix/install-nix-action@v30 20 + uses: cachix/install-nix-action@v31 21 21 with: 22 22 extra_nix_config: | 23 23 auto-optimise-store = true ··· 39 39 printf "::set-output name=checks::%s" "$checks" 40 40 41 41 update_flake: 42 - runs-on: ubuntu-20.04 42 + runs-on: ubuntu-24.04 43 43 steps: 44 44 - name: Clone repository 45 45 uses: actions/checkout@v4 46 46 with: 47 47 token: "${{ secrets.TEST_TOKEN }}" 48 48 - name: Install nix 49 - uses: cachix/install-nix-action@v30 49 + uses: cachix/install-nix-action@v31 50 50 with: 51 51 extra_nix_config: | 52 52 auto-optimise-store = true ··· 68 68 path: flake.lock 69 69 70 70 build_flake: 71 - runs-on: ubuntu-20.04 71 + runs-on: ubuntu-24.04 72 72 needs: [generate_matrix, update_flake] 73 73 strategy: 74 74 fail-fast: false ··· 91 91 with: 92 92 token: "${{ secrets.TEST_TOKEN }}" 93 93 - name: Install nix 94 - uses: cachix/install-nix-action@v30 94 + uses: cachix/install-nix-action@v31 95 95 with: 96 96 extra_nix_config: | 97 97 auto-optimise-store = true ··· 114 114 run: nix build .#${{ matrix.package }} 115 115 116 116 build_checks: 117 - runs-on: ubuntu-20.04 117 + runs-on: ubuntu-24.04 118 118 needs: [generate_matrix, update_flake] 119 119 strategy: 120 120 fail-fast: false ··· 127 127 with: 128 128 token: "${{ secrets.TEST_TOKEN }}" 129 129 - name: Install nix 130 - uses: cachix/install-nix-action@v30 130 + uses: cachix/install-nix-action@v31 131 131 with: 132 132 extra_nix_config: | 133 133 auto-optimise-store = true ··· 150 150 run: nix build .#checks.x86_64-linux.${{ matrix.check }} --no-link 151 151 152 152 check_flake: 153 - runs-on: ubuntu-20.04 153 + runs-on: ubuntu-24.04 154 154 needs: [update_flake] 155 155 continue-on-error: true 156 156 steps: ··· 159 159 with: 160 160 token: "${{ secrets.TEST_TOKEN }}" 161 161 - name: Install nix 162 - uses: cachix/install-nix-action@v30 162 + uses: cachix/install-nix-action@v31 163 163 with: 164 164 extra_nix_config: | 165 165 auto-optimise-store = true ··· 177 177 nix flake check --keep-going 178 178 179 179 push_update: 180 - runs-on: ubuntu-20.04 180 + runs-on: ubuntu-24.04 181 181 permissions: write-all 182 182 needs: [update_flake, build_flake, build_checks, check_flake] 183 183 steps:
+8 -8
.github/workflows/pull-check.yml
··· 5 5 6 6 jobs: 7 7 generate_matrix: 8 - runs-on: ubuntu-20.04 8 + runs-on: ubuntu-24.04 9 9 outputs: 10 10 packages: ${{ steps.gen_packages.outputs.packages }} 11 11 checks: ${{ steps.gen_checks.outputs.checks }} ··· 15 15 with: 16 16 token: "${{ secrets.TEST_TOKEN }}" 17 17 - name: Install nix 18 - uses: cachix/install-nix-action@v30 18 + uses: cachix/install-nix-action@v31 19 19 with: 20 20 extra_nix_config: | 21 21 auto-optimise-store = true ··· 37 37 printf "checks=%s" "$checks" >> $GITHUB_OUTPUT 38 38 39 39 build_flake: 40 - runs-on: ubuntu-20.04 40 + runs-on: ubuntu-24.04 41 41 needs: [generate_matrix] 42 42 strategy: 43 43 fail-fast: false ··· 58 58 with: 59 59 token: "${{ secrets.TEST_TOKEN }}" 60 60 - name: Install nix 61 - uses: cachix/install-nix-action@v30 61 + uses: cachix/install-nix-action@v31 62 62 with: 63 63 extra_nix_config: | 64 64 auto-optimise-store = true ··· 71 71 run: nix build .#${{ matrix.package }} 72 72 73 73 build_checks: 74 - runs-on: ubuntu-20.04 74 + runs-on: ubuntu-24.04 75 75 needs: [generate_matrix] 76 76 strategy: 77 77 fail-fast: false ··· 84 84 with: 85 85 token: "${{ secrets.TEST_TOKEN }}" 86 86 - name: Install nix 87 - uses: cachix/install-nix-action@v30 87 + uses: cachix/install-nix-action@v31 88 88 with: 89 89 extra_nix_config: | 90 90 auto-optimise-store = true ··· 97 97 run: nix build .#checks.x86_64-linux.${{ matrix.check }} --no-link 98 98 99 99 check_flake: 100 - runs-on: ubuntu-20.04 100 + runs-on: ubuntu-24.04 101 101 continue-on-error: true 102 102 steps: 103 103 - name: Clone repository ··· 105 105 with: 106 106 token: "${{ secrets.TEST_TOKEN }}" 107 107 - name: Install nix 108 - uses: cachix/install-nix-action@v30 108 + uses: cachix/install-nix-action@v31 109 109 with: 110 110 extra_nix_config: | 111 111 auto-optimise-store = true
+100 -55
flake.lock
··· 3 3 "cargo2nix": { 4 4 "inputs": { 5 5 "flake-compat": "flake-compat_3", 6 - "flake-utils": "flake-utils_2", 6 + "flake-utils": "flake-utils_3", 7 7 "nixpkgs": [ 8 8 "switcher", 9 9 "nixpkgs" ··· 37 37 ] 38 38 }, 39 39 "locked": { 40 - "lastModified": 1741395687, 41 - "narHash": "sha256-3Aat6ALh8zCLQTZRscrZDDeJUAADT58sFK/+tQ2h0Vo=", 40 + "lastModified": 1749090069, 41 + "narHash": "sha256-uN3Mp+o7IfVT9H/OuwEtJ17NktCaF4t9Ond3TKt+BE4=", 42 42 "owner": "nix-community", 43 43 "repo": "emacs-overlay", 44 - "rev": "87d5e2bbc04a8d2ddff9e1f9e266bf81c3bd45b2", 44 + "rev": "c17506666090e412a50b01c57944386ab81d2aa8", 45 45 "type": "github" 46 46 }, 47 47 "original": { ··· 99 99 } 100 100 }, 101 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": { 102 117 "inputs": { 103 118 "systems": "systems" 104 119 }, ··· 116 131 "type": "github" 117 132 } 118 133 }, 119 - "flake-utils_2": { 134 + "flake-utils_3": { 120 135 "inputs": { 121 136 "systems": "systems_2" 122 137 }, ··· 247 262 ] 248 263 }, 249 264 "locked": { 250 - "lastModified": 1741393072, 251 - "narHash": "sha256-+Su28oU1FBvptj1AO0geJP+BcIJghSVxaNFagvW5K2M=", 265 + "lastModified": 1749062139, 266 + "narHash": "sha256-gGGLujmeWU+ZjFzfMvFMI0hp9xONsSbm88187wJr82Q=", 252 267 "owner": "nix-community", 253 268 "repo": "home-manager", 254 - "rev": "d2c014e1c73195d1958abec0c5ca6112b07b79da", 269 + "rev": "86b95fc1ed2b9b04a451a08ccf13d78fb421859c", 255 270 "type": "github" 256 271 }, 257 272 "original": { ··· 288 303 "nixpkgs-regression": "nixpkgs-regression" 289 304 }, 290 305 "locked": { 291 - "lastModified": 1741369128, 292 - "narHash": "sha256-FK8X23bkPZK5bRSHGQ8sWzGg4gRjFLn6JsN2eDR/5R8=", 306 + "lastModified": 1749012568, 307 + "narHash": "sha256-7IltFTct/oe6pGkwB6f/1WhWA65hFnsBY6XaGjodf3k=", 293 308 "owner": "nixos", 294 309 "repo": "nix", 295 - "rev": "47e23811ffba09f3e0f0c8797da3d28fb3b7bedb", 310 + "rev": "4751cbef6303d10479f3db1b13db69197d9c3446", 296 311 "type": "github" 297 312 }, 298 313 "original": { ··· 301 316 "type": "github" 302 317 } 303 318 }, 304 - "nixos-vscode-server": { 319 + "nix-gl": { 305 320 "inputs": { 306 321 "flake-utils": "flake-utils", 307 322 "nixpkgs": [ ··· 309 324 ] 310 325 }, 311 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": { 312 348 "lastModified": 1729422940, 313 349 "narHash": "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=", 314 350 "owner": "msteen", ··· 324 360 }, 325 361 "nixpkgs": { 326 362 "locked": { 327 - "lastModified": 1734359947, 328 - "narHash": "sha256-1Noao/H+N8nFB4Beoy8fgwrcOQLVm9o4zKW1ODaqK9E=", 363 + "lastModified": 1747179050, 364 + "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", 329 365 "owner": "NixOS", 330 366 "repo": "nixpkgs", 331 - "rev": "48d12d5e70ee91fe8481378e540433a7303dbf6a", 367 + "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", 332 368 "type": "github" 333 369 }, 334 370 "original": { 335 371 "owner": "NixOS", 336 - "ref": "release-24.11", 372 + "ref": "nixos-unstable", 337 373 "repo": "nixpkgs", 338 374 "type": "github" 339 375 } ··· 420 456 }, 421 457 "nixpkgs_2": { 422 458 "locked": { 423 - "lastModified": 1741246872, 424 - "narHash": "sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U=", 459 + "lastModified": 1748929857, 460 + "narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=", 425 461 "owner": "nixos", 426 462 "repo": "nixpkgs", 427 - "rev": "10069ef4cf863633f57238f179a0297de84bd8d3", 463 + "rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4", 428 464 "type": "github" 429 465 }, 430 466 "original": { ··· 436 472 }, 437 473 "nixpkgs_3": { 438 474 "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=", 475 + "lastModified": 1744868846, 476 + "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", 457 477 "owner": "NixOS", 458 478 "repo": "nixpkgs", 459 - "rev": "c69a9bffbecde46b4b939465422ddc59493d3e4d", 479 + "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", 460 480 "type": "github" 461 481 }, 462 482 "original": { ··· 466 486 "type": "github" 467 487 } 468 488 }, 469 - "nixpkgs_5": { 489 + "nixpkgs_4": { 470 490 "locked": { 471 491 "lastModified": 1728538411, 472 492 "narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=", ··· 485 505 "nvim": { 486 506 "inputs": { 487 507 "gen-luarc": "gen-luarc", 488 - "nixpkgs": "nixpkgs_3", 508 + "nixpkgs": [ 509 + "nixpkgs" 510 + ], 489 511 "nixpkgs-emmy": "nixpkgs-emmy", 490 512 "parts": [ 491 513 "parts" 492 - ] 514 + ], 515 + "wrapper-manager": "wrapper-manager" 493 516 }, 494 517 "locked": { 495 - "lastModified": 1741124556, 496 - "narHash": "sha256-B9/tRqim0f5SP5ymwv27CmHxoxpmHaD9H06Askb+mkY=", 518 + "lastModified": 1748686149, 519 + "narHash": "sha256-RdLAPiha8lr1wQiL158p4DTFhLcWcjRv6ioCTd3athQ=", 497 520 "owner": "nobbz", 498 521 "repo": "nobbz-vim", 499 - "rev": "b4294fb34f0d010dee6cf2f6afe0d32c59b73363", 522 + "rev": "a22303075cac32d83edfd79ef79c0386a38b02ce", 500 523 "type": "github" 501 524 }, 502 525 "original": { ··· 512 535 ] 513 536 }, 514 537 "locked": { 515 - "lastModified": 1741352980, 516 - "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", 538 + "lastModified": 1748821116, 539 + "narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=", 517 540 "owner": "hercules-ci", 518 541 "repo": "flake-parts", 519 - "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", 542 + "rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1", 520 543 "type": "github" 521 544 }, 522 545 "original": { ··· 533 556 "utils": "utils" 534 557 }, 535 558 "locked": { 536 - "lastModified": 1741382644, 537 - "narHash": "sha256-vgJB8QiipfuSiwW1kRlsv+x9751wiDpS1T3DB9AW0uU=", 559 + "lastModified": 1749055058, 560 + "narHash": "sha256-OgCTSX0WXPpEi/ukjbBRrElSo+TR2/pzCCcY5yfou58=", 538 561 "owner": "wamserma", 539 562 "repo": "flake-programs-sqlite", 540 - "rev": "940f72d8c745ae0d40e0ae1e15aea4848fac6440", 563 + "rev": "78d23d728abddce902528922f93967f0630f1cfe", 541 564 "type": "github" 542 565 }, 543 566 "original": { ··· 551 574 "emacs": "emacs", 552 575 "home-manager": "home-manager", 553 576 "nix": "nix", 577 + "nix-gl": "nix-gl", 554 578 "nixos-vscode-server": "nixos-vscode-server", 555 579 "nixpkgs": "nixpkgs_2", 556 580 "nixpkgs-insync-v3": [ ··· 566 590 }, 567 591 "rust-overlay": { 568 592 "inputs": { 569 - "nixpkgs": "nixpkgs_5" 593 + "nixpkgs": "nixpkgs_4" 570 594 }, 571 595 "locked": { 572 596 "lastModified": 1734402816, ··· 584 608 }, 585 609 "sops-nix": { 586 610 "inputs": { 587 - "nixpkgs": "nixpkgs_4" 611 + "nixpkgs": "nixpkgs_3" 588 612 }, 589 613 "locked": { 590 - "lastModified": 1741043164, 591 - "narHash": "sha256-9lfmSZLz6eq9Ygr6cCmvQiiBEaPb54pUBcjvbEMPORc=", 614 + "lastModified": 1747603214, 615 + "narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=", 592 616 "owner": "Mic92", 593 617 "repo": "sops-nix", 594 - "rev": "3f2412536eeece783f0d0ad3861417f347219f4d", 618 + "rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd", 595 619 "type": "github" 596 620 }, 597 621 "original": { ··· 668 692 "original": { 669 693 "owner": "numtide", 670 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", 671 716 "type": "github" 672 717 } 673 718 }
+4
flake.nix
··· 36 36 37 37 nvim.url = "github:nobbz/nobbz-vim"; 38 38 nvim.inputs.parts.follows = "parts"; 39 + nvim.inputs.nixpkgs.follows = "nixpkgs"; 39 40 40 41 switcher.url = "github:nobbz/nix-switcher?ref=main"; 41 42 switcher.inputs.nixpkgs.follows = "nixpkgs"; ··· 52 53 # a libgit2 in the current version fails to build with the nix provided patches. 53 54 # therefore using upstreams pin for now. 54 55 # nix.inputs.nixpkgs.follows = "nixpkgs"; 56 + 57 + nix-gl.url = "github:nix-community/nixgl"; 58 + nix-gl.inputs.nixpkgs.follows = "nixpkgs"; 55 59 56 60 home-manager.url = "github:nix-community/home-manager"; 57 61 home-manager.inputs.nixpkgs.follows = "nixpkgs";
+2 -1
home/configurations/nmelzer_at_phoebe.nix
··· 14 14 in { 15 15 nixpkgs.allowedUnfree = ["google-chrome" "vscode" "discord" "obsidian" "slack"]; 16 16 nixpkgs.config.permittedInsecurePackages = ["electron-25.9.0"]; 17 + profiles.base.needsGL = true; 17 18 18 19 nix.checkConfig = false; 19 20 nix.settings.extra-experimental-features = ["flakes" "nix-command"]; ··· 67 68 68 69 services.playerctld.enable = true; 69 70 70 - home.file."${config.gtk.gtk2.configLocation}".force = true; 71 + gtk.gtk2.force = true; 71 72 72 73 programs.ssh.includes = [ 73 74 config.sops.secrets.ssh.path
-2
home/modules/default.nix
··· 9 9 "programs/eza" = ./programs/eza; 10 10 "programs/ghostty" = ./programs/ghostty; 11 11 "programs/nixpkgs" = ./programs/nixpkgs; 12 - "programs/openshift" = ./programs/openshift; 13 12 "programs/p10k" = ./programs/p10k; 14 13 "programs/rbw" = ./programs/rbw; 15 14 "programs/wezterm" = ./programs/wezterm; 16 15 17 16 "services/insync" = ./services/insync; 18 - "services/restic" = ./services/restic; 19 17 "services/rustic" = ./services/rustic; 20 18 21 19 "misc/awesome" = ./misc/awesome;
+15 -2
home/modules/profiles/base/default.nix
··· 2 2 self, 3 3 nix, 4 4 nvim, 5 + nix-gl, 5 6 ... 6 7 }: { 7 8 config, ··· 49 50 in { 50 51 options.profiles.base = { 51 52 enable = lib.mkEnableOption "The base profile, should be always enabled"; 53 + 54 + needsGL = lib.mkEnableOption "nix-gl wrappers"; 52 55 }; 53 56 54 57 config = lib.mkIf cfg.enable { ··· 98 101 | sed -E 's/([0-9])([A-Za-z])/\1 \2/')" \ 99 102 "$(numfmt --to=none --format="%'f" ''${saved})" 100 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; 101 111 in 102 - [optisave pkgs.departure-mono pkgs.hydra-check nvim.packages.x86_64-linux.default] ++ lib.optionals pkgs.stdenv.isLinux [pkgs.dconf]; 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 + ]; 103 116 104 117 # dconf.enable = lib.mkMerge [ 105 118 # (lib.mkIf pkgs.stdenv.isLinux true) ··· 238 251 } 239 252 ]; 240 253 241 - initExtra = '' 254 + initContent = '' 242 255 bindkey "^[[1;5D" backward-word 243 256 bindkey "^[[1;5C" forward-word 244 257
+22 -3
home/modules/profiles/development/default.nix
··· 13 13 }; 14 14 15 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 + 16 28 programs.gh.enable = true; 17 29 programs.git = { 18 30 enable = true; ··· 26 38 inputs = builtins.attrValues {inherit (pkgs) git fzf ripgrep;}; 27 39 interpreter = "${pkgs.bash}/bin/bash"; 28 40 execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"]; 29 - } '' 41 + } 42 + # bash 43 + '' 30 44 git log --graph --color=always --format="%C(auto)%h%d %s0x09%C(white)%C(bold)%cr" "$@" | 31 45 fzf --ansi --no-sort --reverse --tiebreak=index \ 32 46 --bind=ctrl-s:toggle-sort \ ··· 39 53 inputs = builtins.attrValues {inherit (pkgs) git fzf coreutils gawk;}; 40 54 interpreter = "${pkgs.bash}/bin/bash"; 41 55 execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"]; 42 - } '' 56 + } 57 + # bash 58 + '' 43 59 # Function to determine the ref type 44 60 function get_ref_type() { 45 61 local ref="$1" ··· 119 135 hopbase = ''!f() { set -o nounset; tag=$(git describe --abbrev=0 --tag "$1") && git rebase -i "''${tag}"; }; f''; 120 136 comfix = "!${mkFixupAlias "fixup"}"; 121 137 comreb = "!${mkFixupAlias "rebase"}"; 138 + show = "show --ext-diff"; 139 + lp = "log -p --ext-diff"; 122 140 }; 123 141 124 142 extraConfig = { 125 143 init.defaultBranch = "main"; 144 + diff.external = lib.getExe pkgs.difftastic; 126 145 pull.rebase = false; 127 146 rerere.enabled = true; 128 147 }; ··· 167 186 ]; 168 187 }; 169 188 170 - home.packages = [pkgs.ripgrep]; 189 + home.packages = [pkgs.ripgrep pkgs.difftastic]; 171 190 }; 172 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 - }
+6
home/modules/programs/wezterm/default.nix
··· 34 34 -- For example, changing the color scheme: 35 35 config.color_scheme = "Catppuccin Mocha" 36 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 + 37 43 -- disable ligatures 38 44 config.harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' } 39 45
-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 - }
+16 -7
nixos/configurations/mimas/rustic-timers.nix
··· 6 6 }: let 7 7 profile_name = template: lib.removeSuffix ".toml" config.sops.templates."${template}".path; 8 8 9 + environment = { 10 + RUSTIC_NO_PROGRESS = "true"; 11 + RUSTIC_CACHE_DIR = "%T/rustic"; 12 + }; 13 + 9 14 mimas_template = 10 15 # toml 11 16 '' ··· 65 70 mkTimer = name: calendar: { 66 71 "${name}" = { 67 72 wantedBy = ["timers.target"]; 68 - timerConfig.onCalendar = calendar; 73 + timerConfig.OnCalendar = calendar; 69 74 }; 70 75 }; 71 76 ··· 87 92 systemd.services = { 88 93 rustic-mimas-clean = { 89 94 path = [pkgs.rustic pkgs.openssh]; 95 + inherit environment; 90 96 serviceConfig = { 91 97 NotifyAccess = "all"; 92 98 Type = "notify"; ··· 111 117 ${notify} --status=copy 112 118 rustic copy -P ${profile_name "mimas.toml"} 113 119 114 - ${notify} --stopping 120 + ${notify} --stopping --status="" 115 121 ''; 116 122 }; 117 123 118 124 rustic-nobbz-clean = { 119 125 path = [pkgs.rustic pkgs.openssh]; 126 + inherit environment; 120 127 serviceConfig = { 121 128 NotifyAccess = "all"; 122 129 Type = "notify"; ··· 142 149 ${notify} --status=copy 143 150 rustic copy -P ${profile_name "nobbz.toml"} 144 151 145 - ${notify} --stopping 152 + ${notify} --stopping --status="" 146 153 ''; 147 154 }; 148 155 149 156 rustic-nobbz-hetzner-clean = { 150 157 path = [pkgs.rustic pkgs.openssh]; 158 + inherit environment; 151 159 serviceConfig = { 152 160 NotifyAccess = "all"; 153 161 Type = "notify"; ··· 166 174 ${notify} --status=prune 167 175 rustic prune -P ${profile_name "nobbz_hetzner.toml"} \ 168 176 --max-unused 0B \ 169 - --max-repack 50GiB \ 177 + --max-repack 20GiB \ 170 178 --keep-delete 11h 171 179 172 - ${notify} --stopping 180 + ${notify} --stopping --status="" 173 181 ''; 174 182 }; 175 183 176 184 rustic-mimas-hetzner-clean = { 177 185 path = [pkgs.rustic pkgs.openssh]; 186 + inherit environment; 178 187 serviceConfig = { 179 188 NotifyAccess = "all"; 180 189 Type = "notify"; ··· 193 202 ${notify} --status=prune 194 203 rustic prune -P ${profile_name "mimas_hetzner.toml"} \ 195 204 --max-unused 0B \ 196 - --max-repack 50GiB \ 205 + --max-repack 20GiB \ 197 206 --keep-delete 11h 198 207 199 - ${notify} --stopping 208 + ${notify} --stopping --status="" 200 209 ''; 201 210 }; 202 211 };
+3
nixos/configurations/mimas.nix
··· 19 19 20 20 services.tailscale.enable = true; 21 21 22 + security.pam.services.i3lock.enable = true; 23 + security.pam.services.i3lock-color.enable = true; 24 + 22 25 sops.age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"]; 23 26 sops.defaultSopsFile = "${self}/secrets/mimas/default.yaml"; 24 27
+1
packages/advcp/default.nix
··· 7 7 stdenv.mkDerivation rec { 8 8 name = "advcp"; 9 9 version = "9.1"; 10 + strictDeps = true; 10 11 11 12 src = fetchurl { 12 13 name = "source-${name}-${version}.tar.xz";
+1
packages/rofi-unicode/default.nix
··· 8 8 stdenvNoCC.mkDerivation (self: { 9 9 pname = "rofiemoji-rofiunicode"; 10 10 version = "${source.rev}"; 11 + strictDeps = true; 11 12 12 13 src = fetchgit { 13 14 inherit (source) rev url sha256;