diff --git a/themes/gnuykeaj/README.md b/themes/gnuykeaj/README.md new file mode 100644 index 0000000..3ffc07d --- /dev/null +++ b/themes/gnuykeaj/README.md @@ -0,0 +1,6 @@ +# Fish Theme: gnuykeaj + +Super minimal one line version of [clearance](https://github.com/bpinto/oh-my-fish/tree/master/themes/clearance) theme. Balance between need to know information and space. Has git branch and dirty state information based on the color of the branch name. + +![gnuykjeatheme](https://raw.githubusercontent.com/andyklimczak/oh-my-fish/gnuykeaj-screenshot/themes/gnuykeaj/gnuykeaj-preview.png) + diff --git a/themes/gnuykeaj/fish_prompt.fish b/themes/gnuykeaj/fish_prompt.fish new file mode 100644 index 0000000..ca67c0e --- /dev/null +++ b/themes/gnuykeaj/fish_prompt.fish @@ -0,0 +1,57 @@ +# name: gnuykeaj +# --------------- +# Based on clearance, which is based off idan. +# 1 line minimal, beautiful version of clearance. +# Display the following bits on the left: +# - 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 _git_is_dirty + echo (command git status -s --ignore-submodules=dirty ^/dev/null) +end + +function fish_prompt + set -l last_status $status + + set -l cyan (set_color cyan) + set -l yellow (set_color yellow) + set -l red (set_color red) + set -l blue (set_color blue) + set -l green (set_color green) + set -l normal (set_color normal) + + set -l cwd $blue(basename (pwd | sed "s:^$HOME:~:")) + + # Display [venvname] if in a virtualenv + if set -q VIRTUAL_ENV + echo -n -s (set_color -b cyan black) '[' (basename "$VIRTUAL_ENV") ']' $normal ' ' + end + + # Print pwd or full path + echo -n -s $cwd $normal + + # Show git branch and status + if [ (_git_branch_name) ] + set -l git_branch (_git_branch_name) + + if [ (_git_is_dirty) ] + set git_info $yellow $git_branch "±" $normal + else + set git_info $green $git_branch $normal + end + echo -n -s ' · ' $git_info $normal + end + + set -l prompt_color $red + if test $last_status = 0 + set prompt_color $normal + end + + # Terminate with a nice prompt char + echo -e -n -s $prompt_color ' ⟩ ' $normal +end