all repos

dotfiles @ 72228fef646b571796e13cc08cf465026d91bdcd

i use rach linux btw
2 files changed, 44 insertions(+), 32 deletions(-)
fish: i am speed
Author: Oleksandr Smirnov olexsmir@gmail.com
Committed at: 2026-03-23 17:31:17 +0200
Authored at: 2026-03-23 17:31:07 +0200
Parent: 0c66fad
M config/fish/config.fish
···
        6
        6
         set -gx RUSTUP_HOME $HOME/.local/share/rustup

      
        7
        7
         

      
        8
        8
         set -gx NIX_PATH $HOME/.local/nix

      
        9
        
        -set -gx LEDGER_FILE "$HOME/org/finance/$(date +%Y).journal"

      
        10
        
        -set -gx LESS "--mouse"

      
        
        9
        +set -gx LEDGER_FILE "$HOME/org/finance/"(date +%Y)".journal"

      
        11
        10
         

      
        12
        
        -set -gx PATH $GOBIN $PATH

      
        13
        
        -set -gx PATH $CARGO_HOME/bin $PATH

      
        14
        
        -set -gx PATH $HOME/bin $PATH

      
        15
        
        -set -gx PATH $HOME/.local/bin $PATH

      
        16
        
        -set -gx PATH $HOME/.bun/bin $PATH

      
        17
        
        -set -gx PATH node_modules/.bin $PATH

      
        
        11
        +fish_add_path -g $GOBIN

      
        
        12
        +fish_add_path -g $CARGO_HOME/bin

      
        
        13
        +fish_add_path -g $HOME/bin

      
        
        14
        +fish_add_path -g $HOME/.local/bin

      
        
        15
        +fish_add_path -g $HOME/.bun/bin

      
        
        16
        +fish_add_path -g ~/.local/share/mise/shims

      
        
        17
        +fish_add_path -P node_modules/.bin

      
        18
        18
         

      
        19
        19
         if type -q nvim

      
        20
        20
           set -gx EDITOR nvim

      ···
        23
        23
         

      
        24
        24
         if status is-interactive

      
        25
        25
           zoxide init fish | source

      
        26
        
        -  mise activate fish | source

      
        27
        26
           direnv hook fish | source

      
        28
        27
         

      
        29
        28
           function fish_user_key_bindings

      
M config/fish/functions/prompt_vcs.fish
···
        1
        1
         function prompt_vcs

      
        2
        
        -  if command -sq jj; and jj root --quiet >/dev/null 2>&1

      
        
        2
        +  set -l dir $PWD

      
        
        3
        +  set -l repo_root ""

      
        
        4
        +  set -l vcs_type ""

      
        
        5
        +  set -l depth 0

      
        
        6
        +

      
        
        7
        +  while test "$dir" != "/" -a $depth -lt 20

      
        
        8
        +    if test -d "$dir/.jj"

      
        
        9
        +      set vcs_type jj

      
        
        10
        +      set repo_root $dir

      
        
        11
        +      break

      
        
        12
        +    end

      
        
        13
        +    if test -d "$dir/.git"

      
        
        14
        +      set vcs_type git

      
        
        15
        +      set repo_root $dir

      
        
        16
        +      break

      
        
        17
        +    end

      
        
        18
        +    set dir (path dirname $dir)

      
        
        19
        +    set depth (math $depth + 1)

      
        
        20
        +  end

      
        
        21
        +

      
        
        22
        +  test -n "$vcs_type"; or return

      
        
        23
        +

      
        
        24
        +  if test "$vcs_type" = jj; and command -sq jj

      
        3
        25
             set -l head (jj log --no-graph -r "@" -T "change_id.shortest()" 2>/dev/null)

      
        4
        26
             printf ' %s(jj: %s%s%s)%s' (set_color normal) (set_color blue) $head (set_color normal) (set_color normal)

      
        5
        27
             return

      
        6
        28
           end

      
        7
        29
         

      
        8
        
        -  if not command -sq git

      
        9
        
        -    return

      
        
        30
        +  # git

      
        
        31
        +  set -l git_dir "$repo_root/.git"

      
        
        32
        +  if test -f "$git_dir"

      
        
        33
        +    read -l gitdir_line < "$git_dir"

      
        
        34
        +    set git_dir (string replace "gitdir: " "" -- $gitdir_line)

      
        10
        35
           end

      
        11
        36
         

      
        12
        
        -  set -l status_lines (command git status --porcelain=1 -b --ignore-submodules=dirty 2>/dev/null)

      
        13
        
        -  if test $status -ne 0; or test (count $status_lines) -eq 0

      
        14
        
        -    return

      
        15
        
        -  end

      
        
        37
        +  set -l head_file "$git_dir/HEAD"

      
        
        38
        +  test -f "$head_file"; or return

      
        16
        39
         

      
        17
        
        -  set -l branch_line $status_lines[1]

      
        18
        
        -  if test -z "$branch_line"

      
        19
        
        -    return

      
        20
        
        -  end

      
        
        40
        +  read -l head_content < "$head_file"

      
        21
        41
         

      
        22
        
        -  set -l branch (string replace -r '^## ' '' -- $branch_line)

      
        23
        
        -  set branch (string replace -r '\\.{3}.*$' '' -- $branch)

      
        24
        
        -  set branch (string replace -r '^No commits yet on ' '' -- $branch)

      
        25
        
        -  if string match -qr '^HEAD' -- $branch

      
        26
        
        -    set branch (command git rev-parse --short HEAD 2>/dev/null; or echo "HEAD")

      
        27
        
        -  end

      
        28
        
        -

      
        29
        
        -  set -l dirty ""

      
        30
        
        -  if test (count $status_lines) -gt 1

      
        31
        
        -    set dirty "*"

      
        
        42
        +  if string match -qr '^ref: refs/heads/' -- $head_content

      
        
        43
        +    set -l branch (string replace 'ref: refs/heads/' '' -- $head_content)

      
        
        44
        +    printf ' %s(%s%s%s)%s' (set_color normal) (set_color blue) $branch (set_color normal) (set_color normal)

      
        
        45
        +  else

      
        
        46
        +    printf ' %s(%s%s%s)%s' (set_color normal) (set_color blue) (string sub -l 7 -- $head_content) (set_color normal) (set_color normal)

      
        32
        47
           end

      
        33
        
        -

      
        34
        
        -  printf ' %s(%s%s%s%s%s)%s' (set_color normal) (set_color blue) $branch (set_color yellow) $dirty (set_color normal) (set_color normal)

      
        35
        48
         end