tmux-dev-env-configuration/dotfiles/.local/share/omf/themes/serious/fish_right_prompt.fish

82 lines
2.6 KiB
Fish

# right prompt for agnoster theme
# shows vim mode status
# ===========================
# Color setting
# You can set these variables in config.fish like:
# set -g color_dir_bg red
# If not set, default color from agnoster will be used.
# ===========================
set -q color_vi_mode_indicator; or set color_vi_mode_indicator black
set -q color_vi_mode_normal; or set color_vi_mode_normal green
set -q color_vi_mode_insert; or set color_vi_mode_insert blue
set -q color_vi_mode_visual; or set color_vi_mode_visual red
# ===========================
# Cursor setting
# You can set these variables in config.fish like:
# set -g cursor_vi_mode_insert bar_blinking
# ===========================
set -q cursor_vi_mode_normal; or set cursor_vi_mode_normal box_steady
set -q cursor_vi_mode_insert; or set cursor_vi_mode_insert bar_steady
set -q cursor_vi_mode_visual; or set cursor_vi_mode_visual box_steady
function fish_cursor_name_to_code -a cursor_name -d "Translate cursor name to a cursor code"
# these values taken from
# https://github.com/gnachman/iTerm2/blob/master/sources/VT100Terminal.m#L1646
# Beginning with the statement "case VT100CSI_DECSCUSR:"
if [ $cursor_name = "box_blinking" ]
echo 1
else if [ $cursor_name = "box_steady" ]
echo 2
else if [ $cursor_name = "underline_blinking" ]
echo 3
else if [ $cursor_name = "underline_steady" ]
echo 4
else if [ $cursor_name = "bar_blinking" ]
echo 5
else if [ $cursor_name = "bar_steady" ]
echo 6
else
echo 2
end
end
function prompt_vi_mode -d 'vi mode status indicator'
set -l right_segment_separator \uE0B2
switch $fish_bind_mode
case default
set -l mode (fish_cursor_name_to_code $cursor_vi_mode_normal)
echo -e "\e[\x3$mode q"
set_color $color_vi_mode_normal
echo "$right_segment_separator"
set_color -b $color_vi_mode_normal $color_vi_mode_indicator
echo " N "
case insert
set -l mode (fish_cursor_name_to_code $cursor_vi_mode_insert)
echo -e "\e[\x3$mode q"
set_color $color_vi_mode_insert
echo "$right_segment_separator"
set_color -b $color_vi_mode_insert $color_vi_mode_indicator
echo " I "
case visual
set -l mode (fish_cursor_name_to_code $cursor_vi_mode_visual)
echo -e "\e[\x3$mode q"
set_color $color_vi_mode_visual
echo "$right_segment_separator"
set_color -b $color_vi_mode_visual $color_vi_mode_indicator
echo " V "
end
end
function fish_right_prompt -d 'Prints right prompt'
if test "$fish_key_bindings" = "fish_vi_key_bindings"
prompt_vi_mode
set_color normal
end
end