user/settings/workstation.nix (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | { config , lib , pkgs , ... }: { imports = [ <nix-index-database/home-manager-module.nix> ./yazi.nix ]; programs.nix-index-database.comma.enable = true; programs.ripgrep.package = pkgs.ripgrep.override { withPCRE2 = true; }; home.packages = with pkgs; [ walk nuspell git-extras # delete-merged-branches and friends git-worktree-switcher mergiraf gitui gitstatus hut # sourcehut tools ] ++ (with pkgs.hunspellDicts; [ en-gb-large de-de ]); home.shellAliases = { wprop = "xprop | egrep '^WM_(CLASS|NAME|WINDOW_ROLE|TYPE)'"; }; programs.git = { difftastic = { enable = true; }; attributes = [ # `mergiraf languages --gitattributes` "*.java merge=mergiraf" "*.kt merge=mergiraf" "*.rs merge=mergiraf" "*.go merge=mergiraf" "*.js merge=mergiraf" "*.jsx merge=mergiraf" "*.mjs merge=mergiraf" "*.json merge=mergiraf" "*.yml merge=mergiraf" "*.yaml merge=mergiraf" "*.toml merge=mergiraf" "*.html merge=mergiraf" "*.htm merge=mergiraf" "*.xhtml merge=mergiraf" "*.xml merge=mergiraf" "*.c merge=mergiraf" "*.h merge=mergiraf" "*.cc merge=mergiraf" "*.cpp merge=mergiraf" "*.hpp merge=mergiraf" "*.cs merge=mergiraf" "*.dart merge=mergiraf" "*.dts merge=mergiraf" "*.scala merge=mergiraf" "*.sbt merge=mergiraf" "*.ts merge=mergiraf" "*.tsx merge=mergiraf" "*.py merge=mergiraf" "*.php merge=mergiraf" "*.phtml merge=mergiraf" "*.sol merge=mergiraf" "*.lua merge=mergiraf" "*.rb merge=mergiraf" "*.nix merge=mergiraf" "*.sv merge=mergiraf" "*.svh merge=mergiraf" ]; extraConfig = { "merge.mergiraf" = { name = "mergiraf"; driver = "${pkgs.mergiraf}/bin/mergiraf merge --git %O %A %B -s %S -x %X -y %Y -p %P -l %L"; }; }; }; programs.gh = { enable = true; settings = { git_protocol = "ssh"; aliases = { fork = "repo fork --remote --remote-name alanpearce --default-branch-only"; }; }; }; programs.jujutsu = { enable = true; settings = { user = { name = config.programs.git.userName; email = config.programs.git.userEmail; }; ui = { "diff.tool" = [ "${pkgs.difftastic}/bin/difft" "--color=always" "$left" "$right" ]; }; }; }; } |