From ccedba3998b5f51bdd9429225f1344dab6c06e21 Mon Sep 17 00:00:00 2001 From: Roy Dumblauskas Date: Sat, 20 Jun 2026 00:49:35 -0500 Subject: [PATCH] git aliases --- home-manager/fish.nix | 131 +++++++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 60 deletions(-) diff --git a/home-manager/fish.nix b/home-manager/fish.nix index 10ceb45..fe58c54 100644 --- a/home-manager/fish.nix +++ b/home-manager/fish.nix @@ -2,78 +2,89 @@ programs.fish = { enable = true; - functions.fish_greeting = ""; - functions.fish_prompt = '' - set -l last_pipestatus $pipestatus - set -lx __fish_last_status $status # Export for __fish_print_pipestatus. - set -l normal (set_color normal) - set -q fish_color_status - or set -g fish_color_status red + shellAliases = { + ga = "git add ."; + gc = "git commit -am"; + gp = "git push"; + gpr = "git pull --rebase"; + gl = "git pull"; + }; - # Color the prompt differently when we're root - set -l color_cwd $fish_color_cwd - set -l suffix '>' - if functions -q fish_is_root_user; and fish_is_root_user - if set -q fish_color_cwd_root - set color_cwd $fish_color_cwd_root - end - set suffix '#' - end + functions = { - # Write pipestatus - # If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it. - set -l bold_flag --bold - set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation - if test $__fish_prompt_status_generation = $status_generation - set bold_flag - end - set __fish_prompt_status_generation $status_generation - set -l status_color (set_color $fish_color_status) - set -l statusb_color (set_color $bold_flag $fish_color_status) - set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus) + fish_greeting = ""; - echo -n -s (prompt_login)' ' (set_color $color_cwd) (prompt_pwd) $normal (fish_vcs_prompt) $normal " "$prompt_status $suffix " " - ''; + fish_prompt = '' + set -l last_pipestatus $pipestatus + set -lx __fish_last_status $status # Export for __fish_print_pipestatus. + set -l normal (set_color normal) + set -q fish_color_status + or set -g fish_color_status red - functions.prompt_pwd = '' - set -l options h/help d/dir-length= D/full-length-dirs= - argparse -n prompt_pwd $options -- $argv - or return + # Color the prompt differently when we're root + set -l color_cwd $fish_color_cwd + set -l suffix '>' + if functions -q fish_is_root_user; and fish_is_root_user + if set -q fish_color_cwd_root + set color_cwd $fish_color_cwd_root + end + set suffix '#' + end - if set -q _flag_help - __fish_print_help prompt_pwd - return 0 - end + # Write pipestatus + # If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it. + set -l bold_flag --bold + set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation + if test $__fish_prompt_status_generation = $status_generation + set bold_flag + end + set __fish_prompt_status_generation $status_generation + set -l status_color (set_color $fish_color_status) + set -l statusb_color (set_color $bold_flag $fish_color_status) + set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus) - set -q argv[1] - or set argv $PWD + echo -n -s (prompt_login)' ' (set_color $color_cwd) (prompt_pwd) $normal (fish_vcs_prompt) $normal " "$prompt_status $suffix " " + ''; - set -ql _flag_d - and set -l fish_prompt_pwd_dir_length $_flag_d + prompt_pwd = '' + set -l options h/help d/dir-length= D/full-length-dirs= + argparse -n prompt_pwd $options -- $argv + or return - set -q fish_prompt_pwd_dir_length - or set -l fish_prompt_pwd_dir_length 1 + if set -q _flag_help + __fish_print_help prompt_pwd + return 0 + end - set -l fulldirs 0 - set -ql _flag_D - and set -l fish_prompt_pwd_full_dirs $_flag_D + set -q argv[1] + or set argv $PWD - set -q fish_prompt_pwd_full_dirs - or set -l fish_prompt_pwd_full_dirs 1 + set -ql _flag_d + and set -l fish_prompt_pwd_dir_length $_flag_d - for path in $argv - # Replace $HOME with "~" - set -l realhome (string escape --style=regex -- ~) - set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path) + set -q fish_prompt_pwd_dir_length + or set -l fish_prompt_pwd_dir_length 1 - set -l full - set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp) - set tmp $all[1] - set full $all[2..] + set -l fulldirs 0 + set -ql _flag_D + and set -l fish_prompt_pwd_full_dirs $_flag_D - string join / -- (string replace -ar -- '(\.?[^/]{'"100"'})[^/]*/' '$1/' $tmp) $full - end - ''; + set -q fish_prompt_pwd_full_dirs + or set -l fish_prompt_pwd_full_dirs 1 + + for path in $argv + # Replace $HOME with "~" + set -l realhome (string escape --style=regex -- ~) + set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path) + + set -l full + set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp) + set tmp $all[1] + set full $all[2..] + + string join / -- (string replace -ar -- '(\.?[^/]{'"100"'})[^/]*/' '$1/' $tmp) $full + end + ''; + }; }; - }