diff options
| author | Christoph Schlosser <christoph@linux.com> | 2025-06-13 15:59:03 +0200 |
|---|---|---|
| committer | Christoph Schlosser <christoph@linux.com> | 2025-06-13 15:59:03 +0200 |
| commit | ef9e297ee7cec55b3d2ee2eeae63f466206e1a24 (patch) | |
| tree | 1fe10b5484982ae855f70a767961bfc025b8ab67 /fish/functions/fish_right_prompt.fish | |
| parent | 502a762ab860f6befa40e8503dd69ea712a86a94 (diff) | |
| download | dots-ef9e297ee7cec55b3d2ee2eeae63f466206e1a24.tar.gz | |
Add first dump of fish config files
Diffstat (limited to 'fish/functions/fish_right_prompt.fish')
| -rw-r--r-- | fish/functions/fish_right_prompt.fish | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/fish/functions/fish_right_prompt.fish b/fish/functions/fish_right_prompt.fish new file mode 100644 index 0000000..45e14d6 --- /dev/null +++ b/fish/functions/fish_right_prompt.fish @@ -0,0 +1,80 @@ +# See "Right prompt options" in README.md for configuration options + +function __bobthefish_cmd_duration -S -d 'Show command duration' + [ "$theme_display_cmd_duration" = "no" ] + and return + + [ -z "$CMD_DURATION" -o "$CMD_DURATION" -lt 100 ] + and return + + if [ "$CMD_DURATION" -lt 5000 ] + echo -ns $CMD_DURATION 'ms' + else if [ "$CMD_DURATION" -lt 60000 ] + __bobthefish_pretty_ms $CMD_DURATION s + else if [ "$CMD_DURATION" -lt 3600000 ] + set_color $fish_color_error + __bobthefish_pretty_ms $CMD_DURATION m + else + set_color $fish_color_error + __bobthefish_pretty_ms $CMD_DURATION h + end + + set_color $fish_color_normal + set_color $fish_color_autosuggestion + + [ "$theme_display_date" = "no" ] + or echo -ns ' ' $__bobthefish_left_arrow_glyph +end + +function __bobthefish_pretty_ms -S -a ms -a interval -d 'Millisecond formatting for humans' + set -l interval_ms + set -l scale 1 + + switch $interval + case s + set interval_ms 1000 + case m + set interval_ms 60000 + case h + set interval_ms 3600000 + set scale 2 + end + + switch $FISH_VERSION + case 2.0.\* 2.1.\* 2.2.\* 2.3.\* + # Fish 2.3 and lower doesn't know about the -s argument to math. + math "scale=$scale;$ms/$interval_ms" | string replace -r '\\.?0*$' $interval + case 2.\* + # Fish 2.x always returned a float when given the -s argument. + math -s$scale "$ms/$interval_ms" | string replace -r '\\.?0*$' $interval + case \* + math -s$scale "$ms/$interval_ms" + echo -ns $interval + end +end + +function __bobthefish_timestamp -S -d 'Show the current timestamp' + [ "$theme_display_date" = "no" ] + and return + + set -q theme_date_format + or set -l theme_date_format "+%c" + + echo -n ' ' + set -q theme_date_timezone + and env TZ="$theme_date_timezone" date $theme_date_format + or date $theme_date_format +end + +function fish_right_prompt -d 'bobthefish is all about the right prompt' + set -l __bobthefish_left_arrow_glyph \uE0B3 + if [ "$theme_powerline_fonts" = "no" -a "$theme_nerd_fonts" != "yes" ] + set __bobthefish_left_arrow_glyph '<' + end + + set_color $fish_color_autosuggestion + + __bobthefish_cmd_duration + __bobthefish_timestamp + set_color normal +end |