56 lines
1 KiB
Fish
56 lines
1 KiB
Fish
function fish_right_prompt
|
|
set -l exit_code $status
|
|
__tmux_prompt
|
|
if test $exit_code -ne 0
|
|
set_color red
|
|
else
|
|
set_color 666666
|
|
end
|
|
printf '%d' $exit_code
|
|
set_color 666666
|
|
printf ' < %s' (date +%H:%M:%S)
|
|
set_color normal
|
|
end
|
|
|
|
function __tmux_prompt
|
|
set multiplexer (_is_multiplexed)
|
|
|
|
switch $multiplexer
|
|
case screen
|
|
set pane (_get_screen_window)
|
|
case tmux
|
|
set pane (_get_tmux_window)
|
|
end
|
|
|
|
set_color 666666
|
|
if test -z $pane
|
|
echo -n ""
|
|
else
|
|
echo -n $pane' | '
|
|
end
|
|
end
|
|
|
|
function _get_tmux_window
|
|
tmux lsw | grep active | sed 's/\*.*$//g;s/: / /1' | awk '{ print $2 "-" $1 }' -
|
|
end
|
|
|
|
function _get_screen_window
|
|
set initial (screen -Q windows; screen -Q echo "")
|
|
set middle (echo $initial | sed 's/ /\n/g' | grep '\*' | sed 's/\*\$ / /g')
|
|
echo $middle | awk '{ print $2 "-" $1 }' -
|
|
end
|
|
|
|
function _is_multiplexed
|
|
set multiplexer ""
|
|
if test -z $TMUX
|
|
else
|
|
set multiplexer "tmux"
|
|
end
|
|
if test -z $WINDOW
|
|
else
|
|
set multiplexer "screen"
|
|
end
|
|
echo $multiplexer
|
|
end
|
|
|
|
|