all repos

dotfiles @ 83e573d06fb2689a59446ec4280f140b8b851efc

i use rach linux btw
5 files changed, 58 insertions(+), 2 deletions(-)
fish: migrate off starship
Author: Oleksandr Smirnov olexsmir@gmail.com
Committed at: 2026-03-23 17:31:17 +0200
Authored at: 2026-03-22 17:14:33 +0200
Parent: fa061e6
M config/fish/conf.d/aliases.fish
···
        29
        29
           alias ll ls

      
        30
        30
         end

      
        31
        31
         

      
        32
        
        -if test $TERM = "xterm-kitty"

      
        
        32
        +if test "$TERM" = "xterm-kitty"

      
        33
        33
           alias ssh "kitty +kitten ssh"

      
        34
        34
           alias icat "kitty +kitten icat"

      
        35
        35
         end

      
M config/fish/config.fish
···
        22
        22
         end

      
        23
        23
         

      
        24
        24
         if status is-interactive

      
        25
        
        -  starship init fish | source

      
        26
        25
           zoxide init fish | source

      
        27
        26
           mise activate fish | source

      
        28
        27
           direnv hook fish | source

      
A config/fish/functions/fish_default_mode_prompt.fish
···
        
        1
        +function fish_default_mode_prompt

      
        
        2
        +end

      
A config/fish/functions/fish_prompt.fish
···
        
        1
        +function fish_prompt

      
        
        2
        +  set -l last_status $status

      
        
        3
        +  set -l cwd (prompt_pwd --full-length-dirs 1)

      
        
        4
        +  set -l vcs (prompt_vcs)

      
        
        5
        +

      
        
        6
        +  switch $fish_bind_mode

      
        
        7
        +    case default

      
        
        8
        +      set mode_char "❮"

      
        
        9
        +      set mode_color (set_color cyan)

      
        
        10
        +    case '*'

      
        
        11
        +      set mode_char "❯"

      
        
        12
        +      if test $last_status -eq 0

      
        
        13
        +        set mode_color (set_color green)

      
        
        14
        +      else

      
        
        15
        +        set mode_color (set_color red)

      
        
        16
        +      end

      
        
        17
        +  end

      
        
        18
        +

      
        
        19
        +  printf '%s%s%s%s %s%s%s ' (set_color cyan) $cwd (set_color normal) $vcs $mode_color $mode_char (set_color normal)

      
        
        20
        +end

      
A config/fish/functions/prompt_vcs.fish
···
        
        1
        +function prompt_vcs

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

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

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

      
        
        5
        +    return

      
        
        6
        +  end

      
        
        7
        +

      
        
        8
        +  if not command -sq git

      
        
        9
        +    return

      
        
        10
        +  end

      
        
        11
        +

      
        
        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

      
        
        16
        +

      
        
        17
        +  set -l branch_line $status_lines[1]

      
        
        18
        +  if test -z "$branch_line"

      
        
        19
        +    return

      
        
        20
        +  end

      
        
        21
        +

      
        
        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 "*"

      
        
        32
        +  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
        +end