mirror of
https://github.com/oh-my-fish/oh-my-fish
synced 2024-11-03 15:40:32 +00:00
[split] Move agnoster-mercurial theme to oh-my-fish/theme-agnoster-mercurial
https://github.com/oh-my-fish/theme-agnoster-mercurial
This commit is contained in:
parent
5c6a8e8f2b
commit
689c46eadf
@ -1,28 +0,0 @@
|
|||||||
## agnoster
|
|
||||||
|
|
||||||
A ZSH theme optimized for people who use:
|
|
||||||
|
|
||||||
* Solarized
|
|
||||||
* Git
|
|
||||||
* Mercurial
|
|
||||||
* Unicode-compatible fonts and terminals (I use iTerm2 + Menlo)
|
|
||||||
|
|
||||||
For Mac users, I highly recommend iTerm 2 + Solarized Dark
|
|
||||||
|
|
||||||
![agnoster theme](https://f.cloud.github.com/assets/1765209/255379/452c668e-8c0b-11e2-8a8e-d1d13e57d15f.png)
|
|
||||||
|
|
||||||
|
|
||||||
#### Characteristics
|
|
||||||
|
|
||||||
* If the previous command failed (✘)
|
|
||||||
* User @ Hostname (if user is not DEFAULT_USER, which can then be set in your profile)
|
|
||||||
* Git status
|
|
||||||
* Mercurial status
|
|
||||||
* Branch () or detached head (➦)
|
|
||||||
* Current branch / SHA1 in detached head state
|
|
||||||
* Dirty working directory (±, color change)
|
|
||||||
* Working directory
|
|
||||||
* Elevated (root) privileges (⚡)
|
|
||||||
|
|
||||||
|
|
||||||
Ported from https://gist.github.com/agnoster/3712874.
|
|
@ -1,181 +0,0 @@
|
|||||||
# name: Agnoster
|
|
||||||
# agnoster's Theme - https://gist.github.com/3712874
|
|
||||||
# A Powerline-inspired theme for FISH
|
|
||||||
#
|
|
||||||
# # README
|
|
||||||
#
|
|
||||||
# In order for this theme to render correctly, you will need a
|
|
||||||
# [Powerline-patched font](https://gist.github.com/1595572).
|
|
||||||
|
|
||||||
## Set this options in your config.fish (if you want to :])
|
|
||||||
# set -g theme_display_user yes
|
|
||||||
# set -g default_user your_normal_user
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
set -g current_bg NONE
|
|
||||||
set segment_separator \uE0B0
|
|
||||||
set right_segment_separator \uE0B0
|
|
||||||
# ===========================
|
|
||||||
# Helper methods
|
|
||||||
# ===========================
|
|
||||||
|
|
||||||
set -g __fish_git_prompt_showdirtystate 'yes'
|
|
||||||
set -g __fish_git_prompt_char_dirtystate '±'
|
|
||||||
set -g __fish_git_prompt_char_cleanstate ''
|
|
||||||
|
|
||||||
function parse_git_dirty
|
|
||||||
set -l submodule_syntax
|
|
||||||
set submodule_syntax "--ignore-submodules=dirty"
|
|
||||||
set git_dirty (command git status -s $submodule_syntax 2> /dev/null)
|
|
||||||
if [ -n "$git_dirty" ]
|
|
||||||
if [ $__fish_git_prompt_showdirtystate = "yes" ]
|
|
||||||
echo -n "$__fish_git_prompt_char_dirtystate"
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if [ $__fish_git_prompt_showdirtystate = "yes" ]
|
|
||||||
echo -n "$__fish_git_prompt_char_cleanstate"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
# ===========================
|
|
||||||
# Segments functions
|
|
||||||
# ===========================
|
|
||||||
|
|
||||||
function prompt_segment -d "Function to draw a segment"
|
|
||||||
set -l bg
|
|
||||||
set -l fg
|
|
||||||
if [ -n "$argv[1]" ]
|
|
||||||
set bg $argv[1]
|
|
||||||
else
|
|
||||||
set bg normal
|
|
||||||
end
|
|
||||||
if [ -n "$argv[2]" ]
|
|
||||||
set fg $argv[2]
|
|
||||||
else
|
|
||||||
set fg normal
|
|
||||||
end
|
|
||||||
if [ "$current_bg" != 'NONE' -a "$argv[1]" != "$current_bg" ]
|
|
||||||
set_color -b $bg
|
|
||||||
set_color $current_bg
|
|
||||||
echo -n "$segment_separator "
|
|
||||||
set_color -b $bg
|
|
||||||
set_color $fg
|
|
||||||
else
|
|
||||||
set_color -b $bg
|
|
||||||
set_color $fg
|
|
||||||
echo -n " "
|
|
||||||
end
|
|
||||||
set current_bg $argv[1]
|
|
||||||
if [ -n "$argv[3]" ]
|
|
||||||
echo -n -s $argv[3] " "
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function prompt_finish -d "Close open segments"
|
|
||||||
if [ -n $current_bg ]
|
|
||||||
set_color -b normal
|
|
||||||
set_color $current_bg
|
|
||||||
echo -n "$segment_separator "
|
|
||||||
end
|
|
||||||
set -g current_bg NONE
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
# ===========================
|
|
||||||
# Theme components
|
|
||||||
# ===========================
|
|
||||||
|
|
||||||
function prompt_virtual_env -d "Display Python virtual environment"
|
|
||||||
if test "$VIRTUAL_ENV"
|
|
||||||
prompt_segment white black (basename $VIRTUAL_ENV)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function prompt_user -d "Display actual user if different from $default_user"
|
|
||||||
if [ "$theme_display_user" = "yes" ]
|
|
||||||
if [ "$USER" != "$default_user" -o -n "$SSH_CLIENT" ]
|
|
||||||
set USER_PROMPT (whoami)@(hostname)
|
|
||||||
prompt_segment black yellow $USER_PROMPT
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function prompt_dir -d "Display the actual directory"
|
|
||||||
prompt_segment blue black (prompt_pwd)
|
|
||||||
end
|
|
||||||
|
|
||||||
function prompt_hg -d "Display mercurial state"
|
|
||||||
set -l branch
|
|
||||||
set -l state
|
|
||||||
if command hg id >/dev/null 2>&1
|
|
||||||
if command hg prompt >/dev/null 2>&1
|
|
||||||
set branch (command hg prompt "{branch}")
|
|
||||||
set state (command hg prompt "{status}")
|
|
||||||
set branch_symbol \uE0A0
|
|
||||||
if [ "$state" = "!" ]
|
|
||||||
prompt_segment red white "$branch_symbol $branch ±"
|
|
||||||
else if [ "$state" = "?" ]
|
|
||||||
prompt_segment yellow black "$branch_symbol $branch ±"
|
|
||||||
else
|
|
||||||
prompt_segment green black "$branch_symbol $branch"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function prompt_git -d "Display the actual git state"
|
|
||||||
set -l ref
|
|
||||||
set -l dirty
|
|
||||||
if command git rev-parse --is-inside-work-tree >/dev/null 2>&1
|
|
||||||
set dirty (parse_git_dirty)
|
|
||||||
set ref (command git symbolic-ref HEAD 2> /dev/null)
|
|
||||||
set ref (command git symbolic-ref HEAD 2> /dev/null)
|
|
||||||
if [ $status -gt 0 ]
|
|
||||||
set -l branch (command git show-ref --head -s --abbrev |head -n1 2> /dev/null)
|
|
||||||
set ref "➦ $branch "
|
|
||||||
end
|
|
||||||
set branch_symbol \uE0A0
|
|
||||||
set -l branch (echo $ref | sed "s-refs/heads/-$branch_symbol -")
|
|
||||||
if [ "$dirty" != "" ]
|
|
||||||
prompt_segment yellow black "$branch $dirty"
|
|
||||||
else
|
|
||||||
prompt_segment green black "$branch $dirty"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function prompt_status -d "the symbols for a non zero exit status, root and background jobs"
|
|
||||||
if [ $RETVAL -ne 0 ]
|
|
||||||
prompt_segment black red "✘"
|
|
||||||
end
|
|
||||||
|
|
||||||
# if superuser (uid == 0)
|
|
||||||
set -l uid (id -u $USER)
|
|
||||||
if [ $uid -eq 0 ]
|
|
||||||
prompt_segment black yellow "⚡"
|
|
||||||
end
|
|
||||||
|
|
||||||
# Jobs display
|
|
||||||
if [ (jobs -l | wc -l) -gt 0 ]
|
|
||||||
prompt_segment black cyan "⚙"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# ===========================
|
|
||||||
# Apply theme
|
|
||||||
# ===========================
|
|
||||||
|
|
||||||
function fish_prompt
|
|
||||||
set -g RETVAL $status
|
|
||||||
prompt_status
|
|
||||||
prompt_virtual_env
|
|
||||||
prompt_user
|
|
||||||
prompt_dir
|
|
||||||
prompt_hg
|
|
||||||
prompt_git
|
|
||||||
prompt_finish
|
|
||||||
end
|
|
Loading…
Reference in New Issue
Block a user