Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/mostlyobvious/dotfiles.
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156{ config, lib, pkgs, ...}:
let stripAnsiItalic = pkgs.writeText "strip-ansi-italic.pl" '' sub sgr { my @in = split /;/, shift; my @out; for (my $i = 0; $i < @in; $i++) { my $p = $in[$i]; if (($p eq "38" || $p eq "48") && (($in[$i + 1] // "") eq "2")) { push @out, @in[$i .. $i + 4]; $i += 4; next; } if (($p eq "38" || $p eq "48") && (($in[$i + 1] // "") eq "5")) { push @out, @in[$i .. $i + 2]; $i += 2; next; } next if $p eq "3" || $p eq "03" || $p eq "23"; push @out, $p if $p ne ""; } return "\e[" . (@out ? join(";", @out) : "0") . "m"; } s/\e\[([0-9;]*)m/sgr($1)/eg; ''; difftNoItalic = pkgs.writeShellApplication { name = "difft-no-italic"; runtimeInputs = with pkgs; [ difftastic perl ]; text = '' set +e difft --color=always --background=dark "$@" | perl -CS -p ${stripAnsiItalic} status="''${PIPESTATUS[0]}" set -e exit "$status" ''; };in{ home.packages = [ pkgs.tig ];
programs.fish.functions.git = '' env LC_ALL=en_US.UTF-8 command git $argv '';
programs.difftastic = { enable = true; };
programs.git = { enable = true;
signing = lib.mkIf pkgs.stdenv.hostPlatform.isDarwin { format = "ssh"; key = config.my.signingKey; signByDefault = true; };
ignores = [ "*.gem" "*.rbc" "*.sublime-workspace" ".DS_Store" ".byebug_history" ".devenv" ".direnv" ".env" ".generators" ".idea" ".ruby-lsp" ".rakeTasks" ".rspec" ".ruby-gemset" ".ruby-version" ".rvmrc" ".vscode" ".yarn-integrity" "/yarn-error.log" "node_modules" "yarn-debug.log*" ".claude/settings.local.json" ".nvim.lua" ];
settings = { user = { name = "Paweł Pacana"; email = config.my.userEmail; };
alias = { aa = "add -A"; st = "status"; ci = "commit --no-verify"; rv = "revert"; mg = "merge"; br = "branch"; co = "checkout"; dc = "-c diff.external=${lib.getExe difftNoItalic} diff --cached --ext-diff"; cp = "cherry-pick"; df = "-c diff.external=${lib.getExe difftNoItalic} diff --ext-diff"; ca = "commit --amend --reuse-message=HEAD --no-verify"; pu = "pull"; pr = "pull --rebase"; ra = "rebase --abort"; rc = "rebase --continue"; ri = "rebase --interactive --no-verify"; rs = "reset --soft HEAD~1"; rh = "reset --hard"; lg = "-c diff.external=${lib.getExe difftNoItalic} log -p --ext-diff"; ls = ''-c diff.external=${lib.getExe difftNoItalic} log --ext-diff --pretty=format:"%C(yellow)%h%Cred%d\ %Cblue%ci\ %Creset%s%Cblue\ [%cn]" --decorate''; };
core = { editor = "nvim"; quotepath = false; pager = "less -R"; }; merge.tool = "nvim -d"; github.user = "mostlyobvious"; push.default = "current"; url."git@github.com:" = { insteadOf = "gh:"; pushInsteadOf = [ "https://github.com/" "http://github.com/" "gh:" ]; }; diff = { noprefix = true; tool = "nvim_difftool"; }; pull.rebase = true; commit.verbose = true; trailer.coop = { key = "Co-authored-by: "; ifmissing = "add"; }; init.defaultBranch = lib.mkDefault "master"; branch.sort = "-committerdate"; tag.sort = "version:refname"; column.ui = "auto"; difftool.nvim_difftool.cmd = ''nvim -c "DiffTool $LOCAL $REMOTE"''; }; };}