/hydro

Ultra-pure, lag-free prompt with async Git status—just for Fish

Primary LanguageShellMIT LicenseMIT

Hydro

Ultra-pure, lag-free prompt with async Git status. Designed only for Fish.

Installation

Install with Fisher:

fisher install jorgebucaran/hydro

Features

One prompt symbol to rule them all. Change it?

~ ❱ ⎢

Display Git branch name and status—prompt repaints asynchronously! ✨

~/p/hydro main ❱ touch Solution
~/p/hydro main• ❱ ⎢

indicates that there are staged, unstaged or untracked files.

Display how many commits ahead and/or behind you are of your upstream—prompt repaints asynchronously!

~/p/hydro main• ↓2 ❱ git commit -am Hotfix
~/p/hydro main ↑1 ↓2 ❱ git pull --rebase && git push
~/p/hydro main ❱ ⎢

Display $CMD_DURATION when > 1 second. Configurable.

~/p/hydro main ❱ git push --quiet
~/p/hydro main 1.1s ❱ ⎢

Display the last non-zero exit status (or statuses) using $pipestatus.

~/p/hydro main ❱ false
~/p/hydro main | 1 ❱ ⎢
~/p/hydro main ❱ true | false | false
~/p/hydro main | 0 1 1 ❱ ⎢

Truncate $PWD segments except for the basename and root of Git repos.

~ ❱ projects/hydro/
~/p/hydro ❱ functions/share/
~/p/hydro/f/share ❱ ⎢

Display the current bindings mode.

I ~Esc
N ~R
R ~ ❱ ⎢

Performance

Blazing fast would be an understatement considering that the LLVM repo has over 375,000 commits!

~/llvm-project main ❱ time fish_prompt
~/llvm-project main ❱
________________________________________________________
Executed in   79.00 micros    fish           external
   usr time   71.00 micros   71.00 micros    0.00 micros
   sys time    9.00 micros    9.00 micros    0.00 micros

Configuration

Modify variables using set --universal from the command line or set --global in your config.fish file.

Symbols

Variable Type Description Default
hydro_symbol_start string Prompt start symbol.
hydro_symbol_prompt string Prompt symbol.
hydro_symbol_git_dirty string Dirty repository symbol.
hydro_symbol_git_ahead string Ahead of your upstream symbol.
hydro_symbol_git_behind string Behind of your upstream symbol.

Colors

Any argument accepted by set_color.

Variable Type Description Default
hydro_color_pwd color Color of the pwd segment. $fish_color_normal
hydro_color_git color Color of the git segment. $fish_color_normal
hydro_color_start color Color of the start symbol. $fish_color_normal
hydro_color_error color Color of the error segment. $fish_color_error
hydro_color_prompt color Color of the prompt symbol. $fish_color_normal
hydro_color_duration color Color of the duration section. $fish_color_normal

Flags

Variable Type Description Default
hydro_fetch boolean Fetch git remote in the background. false
hydro_multiline boolean Display prompt character on a separate line. false

Misc

Variable Type Description Default
fish_prompt_pwd_dir_length numeric The number of characters to display when path shortening. Set it to 0 to display only the topmost (current) directory. 1
hydro_ignored_git_paths strings Space separated list of paths where no git info should be displayed. ""
hydro_cmd_duration_threshold numeric Minimum command duration, in milliseconds, after which command duration is displayed. 1000

License

MIT