aboutsummaryrefslogtreecommitdiff
path: root/cfg/fish/fish_prompt.fish
blob: e5c6af9b96aff0b69fafa9d5c331e1e35baf9fe0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
function fish_prompt
    set -l user $USER
    set -l cwd $PWD
    set -l home $HOME
    set -l branch ""
    
    set -l branch_sym "" # unused but here for da futurr
    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)
    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 ~
        # λ
    else if string match -q "$home/*" $cwd
        set -l relative (string replace "$home/" "~/" $cwd)
        set -l parts (string split "/" $relative)
        set -l colored ""

        for p in $parts
            if test -n "$p"
                set colored $colored(set_color white)$p(set_color red)"/"
            end
        end

        set colored (string trim -r -c "/" $colored)

		# 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)
        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)
        end
    else
        set -l parts (string split "/" $cwd)
        set -l colored ""

        for p in $parts
            if test -n "$p"
                set colored $colored(set_color white)$p(set_color red)"/"
            end
        end

        set colored (string trim -r -c "/" $colored)
        set colored (set_color red)"#"$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)
        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)
        end
    end
end