You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
oh-my-fish/themes/budspencer/fish_right_prompt.fish

160 lines
4.6 KiB
Fish

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# TODO: color definitions
# TODO: elapsed time segment
# TODO: configurable pwd_style
function __budspencer_is_git_ahead -d "Check if there are unpushed commits"
echo (command git status -s -b ^/dev/null | grep ahead)
end
function __budspencer_is_git_behind -d "Check if there are unpushed commits"
echo (command git status -s -b ^/dev/null | grep behind)
end
function __budspencer_is_git_added -d "Check if there are added files"
echo (command git status -s -b ^/dev/null | grep "^A")
end
function __budspencer_is_git_deleted -d "Check if there are deleted files"
echo (command git status -s -b ^/dev/null | grep "^.D")
end
function __budspencer_is_git_changed -d "Check if there are changed files"
echo (command git status -s -b ^/dev/null | grep "^.M")
end
function __budspencer_is_git_uncomitted -d "Check if there are uncommited changes"
echo (command git status -s -b ^/dev/null | grep "^??")
end
function __budspencer_is_git_stashed -d "Check if there are stashed commits"
echo (command git stash list ^/dev/null)
end
if set -q -x $PWDSTYLE
set -x PWDSTYLE short long none
end
set pwd_style $PWDSTYLE[1]
function fish_pwd_toggle_cm --description "Toggles style of pwd segment, press space bar in NORMAL mode"
for i in (seq 1 (count $PWDSTYLE))
if test $PWDSTYLE[$i] = $pwd_style
set pwd_style $PWDSTYLE[(math $i%(count $PWDSTYLE)+1)]
commandline -f repaint
break
end
end
end
bind -M default ' ' fish_pwd_toggle_cm
function fish_pwd_prompt_cm --description "Displays the present working directory"
switch $fish_bind_mode
case default
set_color blue
echo -n ""
set_color normal
set_color --background blue 000
case insert
set_color yellow
echo -n ""
set_color normal
set_color --background yellow 000
case visual
set_color magenta
echo -n ""
set_color normal
set_color --background magenta 000
end
switch $pwd_style
case none
echo -n ' '
case short
echo -n ' '(prompt_pwd)' '
case long
echo -n ' '$PWD' ' # | sed "s|$HOME|~|"
end
set_color normal
end
function fish_right_prompt -d "Write out the right prompt of the budspencer theme"
# Init colors
set -l fcol_black (set_color 000000)
set -l fcol_base03 (set_color -o 002b36)
set -l fcol_base02 (set_color -o 073642)
set -l fcol_base01 (set_color -o 586e75)
set -l fcol_base00 (set_color -o 657b83)
set -l fcol_base0 (set_color -o 839496)
set -l fcol_base1 (set_color -o 93a1a1)
set -l fcol_base2 (set_color -o eee8d5)
set -l fcol_base3 (set_color -o fdf6e3)
set -l fcol_yellow (set_color -o b58900)
set -l fcol_orange (set_color -o cb4b16)
set -l fcol_red (set_color -o red)
set -l fcol_magenta (set_color -o d33682)
set -l fcol_violet (set_color -o 6c71c4)
set -l fcol_blue (set_color -o 268bd2)
set -l fcol_blue (set_color -o 268bd2)
set -l fcol_cyan (set_color -o 2aa198)
set -l fcol_green (set_color -o 859900)
set -l bcol_base03 (set_color -b 002b36)
set -l bcol_base02 (set_color -b 073642)
set -l bcol_base01 (set_color -b 586e75)
set -l bcol_base00 (set_color -b 657b83)
set -l bcol_base0 (set_color -b 839496)
set -l bcol_base1 (set_color -b 93a1a1)
set -l bcol_base2 (set_color -b eee8d5)
set -l bcol_base3 (set_color -b fdf6e3)
set -l bcol_yellow (set_color -b b58900)
set -l bcol_orange (set_color -b cb4b16)
set -l bcol_red (set_color -b dc322f)
set -l bcol_magenta (set_color -b d33682)
set -l bcol_violet (set_color -b 6c71c4)
set -l bcol_blue (set_color -b 268bd2)
set -l bcol_cyan (set_color -b 2aa198)
set -l bcol_green (set_color -b 859900)
# Segments
# git
set -l ps_git ""
if test -n (__budspencer_is_git_ahead)
set ps_git $fcol_yellow" ↑"
end
if test -n (__budspencer_is_git_behind)
set ps_git $ps_git$fcol_yellow" ↓"
end
if test -n (__budspencer_is_git_added)
set ps_git $ps_git$fcol_green" +"
end
if test -n (__budspencer_is_git_deleted)
set ps_git $ps_git$fcol_red" "
end
if test -n (__budspencer_is_git_changed)
set ps_git $ps_git$fcol_blue" ✱"
end
if test -n (__budspencer_is_git_uncomitted)
set ps_git $ps_git$fcol_base3" ●"
end
if test -n (__budspencer_is_git_stashed)
set ps_git $ps_git$fcol_cyan" ✭"
end
if test -n "$ps_git"
set ps_git $fcol_base02""$bcol_base02""$ps_git
end
# pwd
set -l ps_pwd ""
if test "$fish_key_bindings" = "fish_vi_key_bindings" -o "$fish_key_bindings" = "my_fish_key_bindings"
set ps_pwd (fish_pwd_prompt_cm)
end
echo -n $ps_git $ps_pwd
set_color normal
end