From ef9e297ee7cec55b3d2ee2eeae63f466206e1a24 Mon Sep 17 00:00:00 2001 From: Christoph Schlosser Date: Fri, 13 Jun 2025 15:59:03 +0200 Subject: Add first dump of fish config files --- fish/functions/fish_right_prompt.fish | 80 +++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 fish/functions/fish_right_prompt.fish (limited to 'fish/functions/fish_right_prompt.fish') 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 -- cgit v1.2.3