aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/config_interactive.fish.in
diff options
context:
space:
mode:
Diffstat (limited to 'share/config_interactive.fish.in')
-rw-r--r--share/config_interactive.fish.in213
1 files changed, 213 insertions, 0 deletions
diff --git a/share/config_interactive.fish.in b/share/config_interactive.fish.in
new file mode 100644
index 00000000..87564d99
--- /dev/null
+++ b/share/config_interactive.fish.in
@@ -0,0 +1,213 @@
+#
+# Initializations that should only be performed when in interactive mode.
+#
+
+#
+# @configure_input@
+#
+
+
+set -l configdir ~/.config
+if set -q XDG_CONFIG_HOME
+ set configdir $XDG_CONFIG_HOME
+end
+
+if not set -q __fish_init_1_22_0
+
+ if test -f ~/.fish_history -o -f ~/.fish -o -d ~/.fish.d -a ! -d $configdir/fish
+
+ # Perform upgrade of configuration file hierarchy
+
+ if not test -d $configdir
+ builtin mkdir $configdir >/dev/null
+ end
+
+ if test -d $configdir
+ if builtin mkdir $configdir/fish
+
+ # These files are sometimes overwritten to by fish, so
+ # we want backups of them in case something goes wrong
+
+ cp ~/.fishd.(hostname) $configdir/fish/fishh.(hostname).backup
+ cp ~/.fish_history $configdir/fish/fish_history.backup
+
+ # Move the files
+
+ mv ~/.fish_history $configdir/fish/fish_history
+ mv ~/.fish $configdir/fish/config.fish
+ mv ~/.fish_inputrc $configdir/fish/fish_inputrc
+ mv ~/.fish.d/functions $configdir/fish/functions
+ mv ~/.fish.d/completions $configdir/fish/completions
+
+ #
+ # Move the fishd stuff from another shell to avoid concurrency problems
+ #
+
+ /bin/sh -c mv\ \~/.fishd.(hostname)\ $configdir/fish/fishd.(hostname)\;kill\ -9\ (echo %fishd)
+
+ # Update paths to point to new configuration locations
+
+ set fish_function_path (printf "%s\n" $fish_function_path|sed -e "s|@sysconfdir@/fish.d/|@sysconfdir@/fish/|")
+ set fish_complete_path (printf "%s\n" $fish_complete_path|sed -e "s|@sysconfdir@/fish.d/|@sysconfdir@/fish/|")
+
+ set fish_function_path (printf "%s\n" $fish_function_path|sed -e "s|$HOME/.fish.d/|$configdir/fish/|")
+ set fish_complete_path (printf "%s\n" $fish_complete_path|sed -e "s|$HOME/.fish.d/|$configdir/fish/|")
+
+ printf (_ "\nWARNING\n\nThe location for fish configuration files has changed to %s.\nYour old files have been moved to this location.\n You can change to a different location by changing the value of the variable \$XDG_CONFIG_HOME.\n\n") $configdir
+
+ end ^/dev/null
+ end
+ end
+
+ # Make sure this is only done once
+ set -U __fish_init_1_22_0
+
+end
+
+
+#
+# Print a greeting
+#
+
+if not set -q fish_greeting
+ set -l line1 (printf (_ 'Welcome to fish, the friendly interactive shell') )
+ set -l line2 (printf (_ 'Type %shelp%s for instructions on how to use fish') (set_color green) (set_color normal))
+ set -U fish_greeting $line1\n$line2
+end
+
+echo $fish_greeting
+
+
+#
+# Set exit message
+#
+
+function fish_on_exit -d (_ "Commands to execute when fish exits") --on-process %self
+ printf (_ "Good bye\n")
+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.
+#
+
+for i in ~/$config_dir/fish/fish_inputrc @sysconfdir@/fish/fish_inputrc ~/.inputrc /etc/inputrc
+ if test -f $i
+ set -xg INPUTRC $i
+ break
+ end
+end
+
+
+#
+# Set various defaults using these throwaway functions
+#
+
+function set_default -d "Set an universal variable, unless it has already been set"
+ if not set -q $argv[1]
+ set -U -- $argv
+ end
+ if not set -q $argv[1]
+ set -g -- $argv
+ end
+end
+
+# Regular syntax highlighting colors
+set_default fish_color_normal normal
+set_default fish_color_command green
+set_default fish_color_redirection normal
+set_default fish_color_comment red
+set_default fish_color_error red --bold
+set_default fish_color_escape cyan
+set_default fish_color_operator cyan
+set_default fish_color_quote brown
+set_default fish_color_valid_path --underline
+
+set_default fish_color_cwd green
+
+# Background color for matching quotes and parenthesis
+set_default fish_color_match cyan
+
+# Background color for search matches
+set_default fish_color_search_match purple
+
+# Pager colors
+set_default fish_pager_color_prefix cyan
+set_default fish_pager_color_completion normal
+set_default fish_pager_color_description normal
+set_default fish_pager_color_progress cyan
+
+#
+# Directory history colors
+#
+
+set_default fish_color_history_current cyan
+
+
+#
+# Setup the CDPATH variable
+#
+
+set_default CDPATH . ~
+
+#
+# Remove temporary functions for setting default variable values
+#
+
+functions -e set_default
+
+#
+# A few minor convenience functions
+#
+# The naming heuristic is that __fish_complete_* prints completions
+# and descriptions, while __fish_print_* only prints the completions
+# and no descriptions
+#
+
+function __fish_complete_users -d "Print a list of local users, with the real user name as a description"
+ cat /etc/passwd | sed -e "s/^\([^:]*\):[^:]*:[^:]*:[^:]*:\([^:]*\):.*/\1\t\2/"
+end
+
+function __fish_complete_groups -d "Print a list of local groups, with group members as the description"
+ cat /etc/group | sed -e "s/^\([^:]*\):[^:]*:[^:]*:\(.*\)/\1\tMembers: \2/"
+end
+
+function __fish_complete_command -d "Complete using all available commands"
+ printf "%s\n" (commandline -ct)(complete -C (commandline -ct))
+end
+
+function __fish_print_interfaces -d "Print a list of known network interfaces"
+ netstat -i -n -a | awk 'NR>2'|awk '{print $1}'
+end
+
+function __fish_print_addresses -d "Print a list of known network addresses"
+ /sbin/ifconfig |grep 'inet addr'|cut -d : -f 2|cut -d ' ' -f 1
+end
+
+function __fish_print_users -d "Print a list of local users"
+ cat /etc/passwd | cut -d : -f 1
+end
+
+#
+# Completions for the shell and it's builtin commands and functions
+#
+
+for i in (builtin -n|grep -E -v '(while|for|if|function|switch)' )
+ complete -c $i -s h -l help -d "Display help and exit"
+end
+
+
+#
+# Completions for SysV startup scripts
+#
+
+complete -x -p "/etc/init.d/*" -a start\t(_ 'Start service')
+complete -x -p "/etc/init.d/*" -a stop\t(_ 'Stop service')
+complete -x -p "/etc/init.d/*" -a status\t(_ 'Print service status')
+complete -x -p "/etc/init.d/*" -a restart\t(_ 'Stop and then start service')
+complete -x -p "/etc/init.d/*" -a reload\t(_ 'Reload service configuration')
+