]> git.donarmstrong.com Git - deb_pkgs/autorandr.git/commitdiff
XDG search and *.d dir filternig
authorVladimir-csp <vladimir-csp@yandex.ru>
Fri, 11 May 2018 12:13:15 +0000 (15:13 +0300)
committerGitHub <noreply@github.com>
Fri, 11 May 2018 12:13:15 +0000 (15:13 +0300)
contrib/bash_completion/autorandr

index a106b7e2ff3bb3ed82edf3a7f31571dacd2cb189..e7f098c1b4474db3596c2e659fbf74e80b469feb 100644 (file)
@@ -1,8 +1,9 @@
 # autorandr/auto-disper completion by Maciej 'macieks' Sitarz <macieks@freesco.pl>
+# XDG additions and service dir filtering by Vladimir-csp
 
 _autorandr ()
 {
-       local cur prev opts lopts prfls
+       local cur prev opts lopts prfls AR_DIRS OIFS
 
        COMPREPLY=()
        cur="${COMP_WORDS[COMP_CWORD]}"
@@ -10,10 +11,27 @@ _autorandr ()
 
        opts="-h -c -s -r -l -d"
        lopts="--help --change --save --remove --load --default --force --fingerprint --config --dry-run"
-       if [ -d ~/.autorandr ]; then
-               prfls="`find ~/.autorandr/* -maxdepth 1 -type d -printf '%f\n'`"
-       elif [ -d ~/.config/autorandr ]; then
-               prfls="`find ~/.config/autorandr/* -maxdepth 1 -type d -printf '%f\n'`"
+
+       # find system-level autorandr dirs
+       OIFS="$IFS"
+       IFS=':'
+               for DIR in ${XDG_CONFIG_DIRS:-/etc/xdg}
+               do
+                       IFS="$OIFS"
+                       [ -d "$DIR/autorandr" ] && AR_DIRS=( "${AR_DIRS[@]}" "$DIR/autorandr" )
+               done
+       IFS="$OIFS"
+
+       # find user-level autorandr dir
+       if [ -d "$HOME/.autorandr" ]; then
+               AR_DIRS=( "${AR_DIRS[@]}" "$HOME/.autorandr" )
+       elif [ -d "${XDG_CONFIG_HOME:-$HOME/.config}/autorandr/" ]; then
+               AR_DIRS=( "${AR_DIRS[@]}" "${XDG_CONFIG_HOME:-$HOME/.config}/autorandr/" )
+       fi
+
+       if [ -n "${AR_DIRS}" ]
+       then
+               prfls="$(find "${AR_DIRS[@]}" -mindepth 1 -maxdepth 1 -type d ! -name "*.d" -printf '%f\n' | sort -u)"
        else
                prfls=""
        fi