aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/config.fish
diff options
context:
space:
mode:
Diffstat (limited to 'share/config.fish')
-rw-r--r--share/config.fish14
1 files changed, 13 insertions, 1 deletions
diff --git a/share/config.fish b/share/config.fish
index b1d404ee..40000740 100644
--- a/share/config.fish
+++ b/share/config.fish
@@ -49,7 +49,7 @@ end
# default functions/completions are included in the respective path.
if not set -q fish_function_path
- set fish_function_path $configdir/fish/functions $__fish_sysconfdir/functions $__fish_datadir/functions
+ set fish_function_path $configdir/fish/functions $__fish_sysconfdir/functions $__fish_datadir/vendor_functions.d $__fish_datadir/functions
end
if not contains $__fish_datadir/functions $fish_function_path
@@ -151,3 +151,15 @@ function . --description 'Evaluate contents of file (deprecated, see "source")'
source $argv
end
end
+
+# As last part of initialization, source the conf directories
+# Implement precedence (User > Admin > Vendors > Fish) by basically doing "basename"
+set -l sourcelist
+for file in $configdir/fish/conf.d/* $__fish_sysconfdir/conf.d/* $__fish_datadir/vendor_conf.d/*
+ set -l basename (string replace -r '^.*/' '' -- $file)
+ contains -- $basename $sourcelist; and continue
+ set sourcelist $sourcelist $basename
+ # Also skip non-files or unreadable files
+ # This allows one to use e.g. symlinks to /dev/null to "mask" something (like in systemd)
+ [ -f $file -a -r $file ]; and source $file
+end