summaryrefslogtreecommitdiff
path: root/.config/fish/functions/fish_prompt.fish
blob: 6b1195f3d19cd9f8d7b0281d427b19e2c39e4327 (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
function fish_prompt --description 'Write out the prompt'
	if test "$TERM" = "linux"
		set error_color red
		set good_color green
		set path_color yellow
		set user_color green
		set host_color blue
		set white_color white
	else
		set good_color f7ca88
		set error_color ab4642
		set path_color ba8baf
		set user_color a1b56c
		set host_color 7cafc2
		set white_color d8d8d8
	end

	if set -l branch_name (command git symbolic-ref HEAD 2>/dev/null | string replace refs/heads/ '')
		set git_info (set_color $white_color)"|"
		if command git diff-index --quiet HEAD --
			set git_info $git_info(set_color $good_color)
		else
			set git_info $git_info(set_color $error_color)
		end
		set git_info $git_info"$branch_name"
	end

	# Disable PWD shortening by default.
	set -q fish_prompt_pwd_dir_length
	or set -lx fish_prompt_pwd_dir_length 0

	printf '%s' (set_color -o $white_color) '<'
	printf '%s' (set_color $user_color) $USER
	printf '%s' (set_color $white_color) '@'
	printf '%s' (set_color $host_color) (prompt_hostname)
	printf '%s' (set_color $white_color) '|'
	printf '%s' (set_color $path_color) (prompt_pwd)
	printf '%s' $git_info
	printf '%s' (set_color $white_color) '>'
end