summary refs log tree commit diff
path: root/.config/fish/functions/fish_prompt.fish
diff options
context:
space:
mode:
Diffstat (limited to '.config/fish/functions/fish_prompt.fish')
-rw-r--r--.config/fish/functions/fish_prompt.fish35
1 files changed, 35 insertions, 0 deletions
diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish
new file mode 100644
index 0000000..d2216ae
--- /dev/null
+++ b/.config/fish/functions/fish_prompt.fish
@@ -0,0 +1,35 @@
+# name: Default
+# author: Lily Ballard
+
+function fish_prompt --description 'Write out the prompt'
+    set -l last_pipestatus $pipestatus
+    set -lx __fish_last_status $status # Export for __fish_print_pipestatus.
+    set -l normal (set_color normal)
+    set -q fish_color_status
+    or set -g fish_color_status red
+
+    # Color the prompt differently when we're root
+    set -l color_cwd $fish_color_cwd
+    set -l suffix '>'
+    if functions -q fish_is_root_user; and fish_is_root_user
+        if set -q fish_color_cwd_root
+            set color_cwd $fish_color_cwd_root
+        end
+        set suffix '#'
+    end
+
+    # Write pipestatus
+    # If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it.
+    set -l bold_flag --bold
+    set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation
+    if test $__fish_prompt_status_generation = $status_generation
+        set bold_flag
+    end
+    set __fish_prompt_status_generation $status_generation
+    set -l status_color (set_color $fish_color_status)
+    set -l statusb_color (set_color $bold_flag $fish_color_status)
+    set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus)
+
+    #echo -n -s  " " $prompt_status $suffix " "
+    echo -n -s $prompt_status (set_color $fish_color_cwd)"><> "$normal
+end