aboutsummaryrefslogtreecommitdiffhomepage
path: root/init/fish_interactive.fish.in
blob: 435fa5a1e11c2a27db1b75cae46cf6679ea8ed2d (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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#
# Initializations that should only be performed when in interactive mode
#

if not status --is-interactive
	exit
end

#
# Print a greeting 
#

printf (_ 'Welcome to fish, the friendly interactive shell\n')
printf (_ 'Type %shelp%s for instructions on how to use fish\n') (set_color green) (set_color normal)

#
# Set exit message
#

function fish_on_exit -d (_ "Commands to execute when fish exits") --on-process %self
	printf (_ "Good bye\n")
end

# Set the default prompt command. Make sure that every terminal escape
# string has a newline before and after, so that fish will know how
# long it is.

function fish_prompt -d (_ "Write out the prompt")
	printf '%s@%s %s%s%s> \n' (whoami) (hostname|cut -d . -f 1) (set_color $fish_color_cwd) (prompt_pwd) (set_color normal)
end

#
# Set INPUTRC to something nice
#
# We override INPUTRC if already set, since it may be set by a shell 
# other than fish, which may use a different file. The new value should
# be exported, since the fish inputrc file plays nice with other files 
# by including them when found.
# Give priority to the default file installed with fish in 
# @SYSCONFDIR@/fish_inputrc.
#

for i in ~/.fish_inputrc @SYSCONFDIR@/fish_inputrc ~/.inputrc /etc/inputrc
	if test -f $i
		set -xg INPUTRC $i
		break
	end
end


#
# Set various color values
#

function set_default_color -d "Set an universal variable, unless it has already been set. If set, verify that it is a valid color name"
	if not set -q $argv[1] 
		set -U -- $argv	
		return
	end
	if contains -- $$argv[1] (set_color -c)
        return
	end
	set -U -- $argv
end

function set_exported_default -d "Set an exported universal variable, unless it has already been set"
	if not set -q $argv[1]
		set -Ux -- $argv	
	end
end


# Regular syntax highlighting colors
set_default_color fish_color_normal normal
set_default_color fish_color_command green
set_default_color fish_color_redirection normal
set_default_color fish_color_comment brown
set_default_color fish_color_error red

set_default_color fish_color_cwd green

# Background color for matching quotes and parenthesis
set_default_color fish_color_match cyan

# Background color for search matches
set_default_color fish_color_search_match purple

# Pager colors
set_default_color fish_pager_color_prefix cyan
set_default_color fish_pager_color_completion normal
set_default_color fish_pager_color_description normal
set_default_color fish_pager_color_progress cyan

# Directory history colors
set_default_color fish_color_history_current cyan


#
# Setup the CDPATH variable
#

set_exported_default CDPATH . ~

#
# Match colors for grep, if supported
#

if grep --color=auto --help 1>/dev/null 2>/dev/null
	set_exported_default GREP_COLOR '97;45'
	set_exported_default GREP_OPTIONS '--color=auto'
end

#
# Color definitions for ls, if supported
#

if command ls --color=auto --help 1>/dev/null 2>/dev/null
	set_exported_default LS_COLORS $LS_COLORS '*.jar=01;31' '*.doc=35' '*.pdf=35' '*.ps=35' '*.xls=35' '*.swf=35' '*~=37'
end


#
# Remove temporary functions
#

functions -e set_default_color
functions -e set_exported_default