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/edan/fish_prompt.fish

71 lines
1.7 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.

# fish theme: edan
# Display the following bits on the left:
# * User & host (hidden by default, execute `edan-remote`to show, `edan-local` to hide)
# * Virtualenv name (if applicable, see https://github.com/adambrenecki/virtualfish)
# * Current directory name
# * Git branch and dirty state (if inside a git repo)
function _git_branch_name
echo (command git symbolic-ref HEAD ^/dev/null | sed -e 's|^refs/heads/||')
end
function _is_git_dirty
echo (command git status -s --ignore-submodules=dirty ^/dev/null)
end
function _user_host
if [ (id -u) = "0" ];
echo -n (set_color -o red)
else
echo -n (set_color -o blue)
end
echo -n (hostname|cut -d . -f 1)ˇ$USER (set color normal)
end
function fish_prompt
set fish_greeting
set -l cyan (set_color -o cyan)
set -l yellow (set_color -o yellow)
set -l red (set_color -o red)
set -l blue (set_color -o blue)
set -l green (set_color -o green)
set -l normal (set_color normal)
set -l cwd $cyan(basename (prompt_pwd))
# output the prompt, left to right
# Add a newline before prompts
echo -e ""
# Display [venvname] if in a virtualenv
if set -q VIRTUAL_ENV
echo -n -s (set_color -b cyan black) '[' (basename "$VIRTUAL_ENV") ']' $normal ' '
end
# Display [user & host] when on remote host
if [ "$EDAN_HOST_TYPE" = "remote" ]
_user_host; echo -n ': '
end
# Display the current directory name
echo -n -s $cwd $normal
# Show git branch and dirty state
if [ (_git_branch_name) ]
set -l git_branch '[' (_git_branch_name) ']'
if [ (_is_git_dirty) ]
set git_info $red $git_branch "×"
else
set git_info $green $git_branch
end
echo -n -s ' ' $git_info $normal
end
# Terminate with a nice prompt char
echo -n -s ' » ' $normal
end