Skip to content

Instantly share code, notes, and snippets.

@omnifroodle
Last active December 20, 2015 00:09
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save omnifroodle/6039389 to your computer and use it in GitHub Desktop.
Save omnifroodle/6039389 to your computer and use it in GitHub Desktop.
My fish ~/.config/fish/config.fish with rbenv, go, custom git status icons, and aws ec2/cfn tools
set shell=bash
# Fish git prompt
set __fish_git_prompt_showdirtystate 'yes'
set __fish_git_prompt_showstashstate 'yes'
set __fish_git_prompt_showupstream 'yes'
set __fish_git_prompt_color_branch yellow
# Status Chars
set __fish_git_prompt_char_dirtystate '♨'
set __fish_git_prompt_char_stagedstate '✜'
set __fish_git_prompt_char_stashstate '✧'
set __fish_git_prompt_char_upstream_ahead '⚑'
set __fish_git_prompt_char_upstream_behind '⚐'
# load rbenv into the environment
set PATH $HOME/.rbenv/bin $PATH
set PATH $HOME/.rbenv/shims $PATH
rbenv rehash >/dev/null ^&1
# set GOPATH and add go bin directory to PATH
set -x GOPATH $HOME/Documents/go
set PATH $PATH $GOPATH/bin
# CloudFormation CLI tools setup
set -x JAVA_HOME "/System/Library/Frameworks/JavaVM.framework/Home/"
set -x AWS_CLOUDFORMATION_HOME "$HOME/.awstools/cfn"
set -x AWS_CREDENTIAL_FILE "$AWS_CLOUDFORMATION_HOME/myAWScreds.txt"
set PATH $PATH $AWS_CLOUDFORMATION_HOME/bin
# EC2 tools
set -x EC2_HOME "$HOME/.awstools/ec2"
set -x AWS_ACCESS_KEY "XXX"
set -x AWS_SECRET_KEY "XXX"
set PATH $PATH $EC2_HOME/bin
function fish_prompt
set last_status $status
set_color $fish_color_cwd
printf '%s' (prompt_pwd)
set_color normal
printf '%s ' (__fish_git_prompt)
set_color normal
end
function fish_prompt --description 'Write out the prompt'
set -l last_status $status
# Just calculate these once, to save a few cycles when displaying the prompt
if not set -q __fish_prompt_hostname
set -g __fish_prompt_hostname (hostname|cut -d . -f 1)
end
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"
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
echo -n -s "$__fish_prompt_user" "$USER" "$__fish_prompt_normal" @ "$__fish_prompt_host" "$__fish_prompt_hostname" "$__fish_prompt_normal" ' ' "$__fish_prompt_cwd" (prompt_pwd) (__fish_git_prompt) "$__fish_prompt_normal" "$prompt_status" "$delim" ' '
end
# initialize our new variables
# in theory this would be in a fish_prompt event, but this file isn't sourced
# until the fish_prompt function is called anyway.
if not set -q __prompt_initialized_2
set -U fish_color_user -o green
set -U fish_color_host -o cyan
set -U fish_color_status red
set -U __prompt_initialized_2
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment