aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorczjstmax <jstmaxlol@disroot.org>2026-05-16 18:47:18 +0200
committerczjstmax <jstmaxlol@disroot.org>2026-05-16 18:47:18 +0200
commita565085298ac7ebb025d0e9e86be75f6641aff63 (patch)
tree98697ab711dc55e73c496ebc85078db878e99821
parent092913992741384894caa98a37cf61e1096999d7 (diff)
update fish prompt
-rw-r--r--cfg/fish/fish_prompt.fish44
1 files 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