summaryrefslogtreecommitdiffstats
path: root/fish/functions/fish_right_prompt.fish
diff options
context:
space:
mode:
authorChristoph Schlosser <christoph@linux.com>2025-06-13 15:59:03 +0200
committerChristoph Schlosser <christoph@linux.com>2025-06-13 15:59:03 +0200
commitef9e297ee7cec55b3d2ee2eeae63f466206e1a24 (patch)
tree1fe10b5484982ae855f70a767961bfc025b8ab67 /fish/functions/fish_right_prompt.fish
parent502a762ab860f6befa40e8503dd69ea712a86a94 (diff)
downloaddots-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.fish80
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