mirror of
https://github.com/fish-shell/fish-shell
synced 2025-01-12 21:18:53 +00:00
update nim.fish sample prompt (#5066)
* update nim.fish sample prompt - Use an helper function to wrap informations - Add VIRTUAL_ENV infos, if any - Add __fish_git_prompt, wrapped for the theme - Add comments - Remove ASCII failback symbols for tty (no more useful for me, but if someone really needs it, just ask) * fish.nim: test -n __fish_git_prompt
This commit is contained in:
parent
dfbffd13df
commit
994f5c500b
1 changed files with 66 additions and 43 deletions
|
@ -1,19 +1,54 @@
|
||||||
# name: Nim
|
# name: Nim
|
||||||
# author: Guilhem "Nim" Saurel − https://github.com/nim65s/dotfiles/
|
# author: Guilhem "Nim" Saurel − https://github.com/nim65s/dotfiles/
|
||||||
|
|
||||||
|
# This prompt shows:
|
||||||
|
# - green lines if the last return command is OK, red otherwise
|
||||||
|
# - your user name, in red if root or yellow otherwise
|
||||||
|
# - your hostname, in cyan if ssh or blue otherwise
|
||||||
|
# - the current path (with prompt_pwd)
|
||||||
|
# - date +%X
|
||||||
|
# - the current virtual environment, if any
|
||||||
|
# - the current git status, if any, with __fish_git_prompt
|
||||||
|
# - the current battery state, if any, and if your power cable is unplugged, and if you have "acpi"
|
||||||
|
# - current background jobs, if any
|
||||||
|
|
||||||
|
# It goes from:
|
||||||
|
# ┬─[nim@Hattori:~]─[11:39:00]
|
||||||
|
# ╰─>$ echo here
|
||||||
|
|
||||||
|
# To:
|
||||||
|
# ┬─[nim@Hattori:~/w/dashboard]─[11:37:14]─[V:django20]─[G:master↑1|●1✚1…1]─[B:85%, 05:41:42 remaining]
|
||||||
|
# │ 2 15054 0% arrêtée sleep 100000
|
||||||
|
# │ 1 15048 0% arrêtée sleep 100000
|
||||||
|
# ╰─>$ echo there
|
||||||
|
|
||||||
|
set __fish_git_prompt_showupstream auto
|
||||||
|
|
||||||
|
function _nim_prompt_wrapper
|
||||||
|
set retc $argv[1]
|
||||||
|
set field_name $argv[2]
|
||||||
|
set field_value $argv[3]
|
||||||
|
|
||||||
|
set_color normal
|
||||||
|
set_color $retc
|
||||||
|
echo -n '─'
|
||||||
|
set_color -o green
|
||||||
|
echo -n '['
|
||||||
|
set_color normal
|
||||||
|
test -n $field_name
|
||||||
|
and echo -n $field_name:
|
||||||
|
set_color $retc
|
||||||
|
echo -n $field_value
|
||||||
|
set_color -o green
|
||||||
|
echo -n ']'
|
||||||
|
end
|
||||||
|
|
||||||
function fish_prompt
|
function fish_prompt
|
||||||
and set retc green
|
and set retc green
|
||||||
or set retc red
|
or set retc red
|
||||||
tty | string match -q -r tty
|
|
||||||
and set tty tty
|
|
||||||
or set tty pts
|
|
||||||
|
|
||||||
set_color $retc
|
set_color $retc
|
||||||
if [ $tty = tty ]
|
echo -n '┬─'
|
||||||
echo -n .-
|
|
||||||
else
|
|
||||||
echo -n '┬─'
|
|
||||||
end
|
|
||||||
set_color -o green
|
set_color -o green
|
||||||
echo -n [
|
echo -n [
|
||||||
if test "$USER" = root -o "$USER" = toor
|
if test "$USER" = root -o "$USER" = toor
|
||||||
|
@ -31,53 +66,41 @@ function fish_prompt
|
||||||
end
|
end
|
||||||
echo -n (prompt_hostname)
|
echo -n (prompt_hostname)
|
||||||
set_color -o white
|
set_color -o white
|
||||||
#echo -n :(prompt_pwd)
|
echo -n :(prompt_pwd)
|
||||||
echo -n :(pwd|sed "s=$HOME=~=")
|
|
||||||
set_color -o green
|
set_color -o green
|
||||||
echo -n ']'
|
echo -n ']'
|
||||||
set_color normal
|
|
||||||
set_color $retc
|
|
||||||
if [ $tty = tty ]
|
|
||||||
echo -n '-'
|
|
||||||
else
|
|
||||||
echo -n '─'
|
|
||||||
end
|
|
||||||
set_color -o green
|
|
||||||
echo -n '['
|
|
||||||
set_color normal
|
|
||||||
set_color $retc
|
|
||||||
echo -n (date +%X)
|
|
||||||
set_color -o green
|
|
||||||
echo -n ]
|
|
||||||
|
|
||||||
if type -q acpi
|
# Date
|
||||||
if [ (acpi -a 2> /dev/null | string match -r off) ]
|
_nim_prompt_wrapper $retc '' (date +%X)
|
||||||
echo -n '─['
|
|
||||||
set_color -o red
|
# Virtual Environment
|
||||||
echo -n (acpi -b|cut -d' ' -f 4-)
|
set -q VIRTUAL_ENV
|
||||||
set_color -o green
|
and _nim_prompt_wrapper $retc V (basename "$VIRTUAL_ENV")
|
||||||
echo -n ']'
|
|
||||||
end
|
# git
|
||||||
end
|
set prompt_git (__fish_git_prompt | string trim -c ' ()')
|
||||||
|
test -n "$prompt_git"
|
||||||
|
and _nim_prompt_wrapper $retc G $prompt_git
|
||||||
|
|
||||||
|
# Battery status
|
||||||
|
type -q acpi
|
||||||
|
and test (acpi -a 2> /dev/null | string match -r off)
|
||||||
|
and _nim_prompt_wrapper $retc B (acpi -b | cut -d' ' -f 4-)
|
||||||
|
|
||||||
|
# New line
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
# Background jobs
|
||||||
set_color normal
|
set_color normal
|
||||||
for job in (jobs)
|
for job in (jobs)
|
||||||
set_color $retc
|
set_color $retc
|
||||||
if [ $tty = tty ]
|
echo -n '│ '
|
||||||
echo -n '; '
|
|
||||||
else
|
|
||||||
echo -n '│ '
|
|
||||||
end
|
|
||||||
set_color brown
|
set_color brown
|
||||||
echo $job
|
echo $job
|
||||||
end
|
end
|
||||||
set_color normal
|
set_color normal
|
||||||
set_color $retc
|
set_color $retc
|
||||||
if [ $tty = tty ]
|
echo -n '╰─>'
|
||||||
echo -n "'->"
|
|
||||||
else
|
|
||||||
echo -n '╰─>'
|
|
||||||
end
|
|
||||||
set_color -o red
|
set_color -o red
|
||||||
echo -n '$ '
|
echo -n '$ '
|
||||||
set_color normal
|
set_color normal
|
||||||
|
|
Loading…
Reference in a new issue