brew install fish
echo "/usr/local/bin/fish" | sudo tee -a /etc/shells
chsh -s `which fish`
Last active
September 10, 2018 15:04
-
-
Save djavan-bertrand/94cc983ef930e8c44fb621940ee930b4 to your computer and use it in GitHub Desktop.
Fish configuration
funced fish_prompt
set -l last_status $status
if not set -q __fish_prompt_normal
set -g __fish_prompt_normal (set_color normal)
end
if not set -q -g __fish_classic_git_functions_defined
set -g __fish_classic_git_functions_defined
function __fish_repaint_user --on-variable fish_color_user --description "Event handler, repaint when fish_color_user changes"
if status --is-interactive
set -e __fish_prompt_user
commandline -f repaint ^/dev/null
end
end
function __fish_repaint_host --on-variable fish_color_host --description "Event handler, repaint when fish_color_host changes"
if status --is-interactive
set -e __fish_prompt_host
commandline -f repaint ^/dev/null
end
end
function __fish_repaint_status --on-variable fish_color_status --description "Event handler; repaint when fish_color_status changes"
if status --is-interactive
set -e __fish_prompt_status
commandline -f repaint ^/dev/null
end
end
end
set -l delim ' $'
switch $USER
case root
if not set -q __fish_prompt_cwd
if set -q fish_color_cwd_root
set -g __fish_prompt_cwd (set_color $fish_color_cwd_root)
else
set -g __fish_prompt_cwd (set_color $fish_color_cwd)
end
end
case '*'
if not set -q __fish_prompt_cwd
set -g __fish_prompt_cwd (set_color $fish_color_cwd)
end
end
set -l prompt_status
if test $last_status -ne 0
if not set -q __fish_prompt_status
set -g __fish_prompt_status (set_color $fish_color_status)
end
set prompt_status "$__fish_prompt_status [$last_status]$__fish_prompt_normal"
else
if not set -q __fish_prompt_status_ok
set -g __fish_prompt_status_ok (set_color 00aa00)
end
#set prompt_status "$__fish_prompt_status_ok [OK]$__fish_prompt_normal"
end
if not set -q __fish_prompt_user
set -g __fish_prompt_user (set_color $fish_color_user)
end
if not set -q __fish_prompt_host
set -g __fish_prompt_host (set_color $fish_color_host)
end
if not set -q __fish_prompt_git
set -g __fish_prompt_git (set_color FF8800)
end
echo -n -s "$__fish_prompt_user" "$USER" "$__fish_prompt_normal" ' ' "$__fish_prompt_cwd" (prompt_pwd) "$__fish_prompt_git" (__fish_git_prompt) "$__fish_prompt_normal" "$prompt_status" "$delim" ' '
funcsave fish_prompt
funced fish_right_prompt
set -l last_duration $CMD_DURATION
set -l last_status $status
set -l last_duration_sec (math $last_duration / 1000)
if not set -q __fish_prompt_date_color
set -g __fish_prompt_date_color (set_color F57C00)
end
if not set -q __fish_prompt_date_color_error
set -g __fish_prompt_date_color_error (set_color $fish_color_status)
end
if not set -q __fish_prompt_normal
set -g __fish_prompt_normal (set_color normal)
end
if test $last_status -ne 0
set right_prompt_color $__fish_prompt_date_color_error
else
set right_prompt_color $__fish_prompt_date_color
end
set -l now (date '+%X %x')
if [ $last_duration_sec -gt 0 ]
set -l duration_str ""
if [ $last_duration_sec -gt 86400 ]
set duration_str "Over a day"
else if [ $last_duration_sec -gt 3600 ]
set duration_str (date -u -r $last_duration_sec +'%-Hh %-Mm %-Ss')
else if [ $last_duration_sec -gt 60 ]
set duration_str (date -u -r $last_duration_sec +'%-Mm %-Ss')
else
set duration_str (date -u -r $last_duration_sec +'%-Ss')
end
echo -n -s "$right_prompt_color" "last command:" "$duration_str" "$__fish_prompt_normal" " - "
end
echo -n -s "$right_prompt_color" "$now" "$__fish_prompt_normal"
funcsave fish_right_prompt
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment