From a565085298ac7ebb025d0e9e86be75f6641aff63 Mon Sep 17 00:00:00 2001 From: czjstmax Date: Sat, 16 May 2026 18:47:18 +0200 Subject: update fish prompt --- cfg/fish/fish_prompt.fish | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/cfg/fish/fish_prompt.fish b/cfg/fish/fish_prompt.fish index e5c6af9..355539b 100644 --- a/cfg/fish/fish_prompt.fish +++ b/cfg/fish/fish_prompt.fish @@ -2,23 +2,31 @@ function fish_prompt set -l user $USER set -l cwd $PWD set -l home $HOME + set -l pr_prefix "" + set -l at_sym "∈" + set -l on_sym "⊢" + set -l prompt_sym "λ" + set -l root_dir_sym "" + set -l branch_sym "" set -l branch "" - set -l branch_sym "" # unused but here for da futurr + if test "$user" = "root" + set prompt_sym "#" + end + if test "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" #set branch (git branch --show-current 2>/dev/null) set branch (git branch --show-current 2>/dev/null); or set branch (git rev-parse --short HEAD 2>/dev/null) + set branch "$branch_sym"(set_color red)"$branch" end if test "$cwd" = "$home" set colored "~" - # if in ~ - echo -e (set_color white)"("(set_color red)"$user"(set_color white)" at "(set_color red)"$colored"(set_color white)")\n"\ - (set_color white)"λ "(set_color normal) - # max at ~ - # λ + echo -e (set_color white)"$pr_prefix"(set_color red)"$user"(set_color white)" $at_sym "(set_color red)"$colored"(set_color white)"\n"\ + (set_color white)"$prompt_sym "(set_color normal) + else if string match -q "$home/*" $cwd - set -l relative (string replace "$home/" "~/" $cwd) + set -l relative (string replace "$home/" (set_color red)"~/" $cwd) set -l parts (string split "/" $relative) set -l colored "" @@ -32,12 +40,12 @@ function fish_prompt # if in a ~ subdir if test "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" - echo -e (set_color white)"("(set_color red)"$user"(set_color white)" at "(set_color red)"$colored"\ - (set_color white)"on "(set_color red)"$branch"(set_color white)")\n" \ - (set_color white)"λ "(set_color normal) + echo -e (set_color white)"$pr_prefix"(set_color red)"$user"(set_color white)" $at_sym "(set_color red)"$colored"\ + (set_color white)"$on_sym ""$branch"(set_color white)"\n" \ + (set_color white)"$prompt_sym "(set_color normal) else - echo -e (set_color white)"("(set_color red)"$user"(set_color white)" at "(set_color red)"$colored"(set_color white)")\n"\ - (set_color white)"λ "(set_color normal) + echo -e (set_color white)"$pr_prefix"(set_color red)"$user"(set_color white)" $at_sym "(set_color red)"$colored"(set_color white)"\n"\ + (set_color white)"$prompt_sym "(set_color normal) end else set -l parts (string split "/" $cwd) @@ -50,15 +58,15 @@ function fish_prompt end set colored (string trim -r -c "/" $colored) - set colored (set_color red)"#"$colored + set colored (set_color red)"$root_dir_sym""$colored" # if in any other dir if test "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" - echo -e (set_color white)"("(set_color red)"$user"(set_color white)" at "(set_color red)"$colored"\ - (set_color white)"on "(set_color red)"$branch"(set_color white)")\n" \ - (set_color white)"λ "(set_color normal) + echo -e (set_color white)"$pr_prefix"(set_color red)"$user"(set_color white)" $at_sym "(set_color red)"$colored"\ + (set_color white)"$on_sym ""$branch"(set_color white)"\n" \ + (set_color white)"$prompt_sym "(set_color normal) else - echo -e (set_color white)"("(set_color red)"$user"(set_color white)" at "(set_color red)"$colored"(set_color white)")\n"\ - (set_color white)"λ "(set_color normal) + echo -e (set_color white)"$pr_prefix"(set_color red)"$user"(set_color white)" $at_sym "(set_color red)"$colored"(set_color white)"\n"\ + (set_color white)"$prompt_sym "(set_color normal) end end end -- cgit v1.3.1