Hydro
October 22, 2024 · View on GitHub
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 |
