PREFIX ?= /usr/local
BINPREFIX = $(PREFIX)/bin
MANPREFIX = $(PREFIX)/share/man
-CPLPREFIX = $(PREFIX)/share/bash-completion/completions
+BASHCPL = $(PREFIX)/share/bash-completion/completions
+ZSHCPL = $(PREFIX)/share/zsh/site-functions
WM_SRC = bspwm.c helpers.c settings.c types.c tree.c events.c window.c messages.c query.c restore.c rules.c ewmh.c
WM_OBJ = $(WM_SRC:.c=.o)
mkdir -p "$(DESTDIR)$(MANPREFIX)"/man1
cp -p doc/bspwm.1 "$(DESTDIR)$(MANPREFIX)"/man1
cp -Pp doc/bspc.1 "$(DESTDIR)$(MANPREFIX)"/man1
- mkdir -p "$(DESTDIR)$(CPLPREFIX)"
- cp -p bash_completion "$(DESTDIR)$(CPLPREFIX)"/bspc
+ mkdir -p "$(DESTDIR)$(BASHCPL)"
+ cp -p bash_completion "$(DESTDIR)$(BASHCPL)"/bspc
+ mkdir -p "$(DESTDIR)$(ZSHCPL)"
+ cp -p zsh_completion "$(DESTDIR)$(ZSHCPL)"/_bspc
uninstall:
rm -f "$(DESTDIR)$(BINPREFIX)"/bspwm
rm -f "$(DESTDIR)$(BINPREFIX)"/bspc
rm -f "$(DESTDIR)$(MANPREFIX)"/man1/bspwm.1
rm -f "$(DESTDIR)$(MANPREFIX)"/man1/bspc.1
- rm -f "$(DESTDIR)$(CPLPREFIX)"/bspc
+ rm -f "$(DESTDIR)$(BASHCPL)"/bspc
+ rm -f "$(DESTDIR)$(ZSHCPL)"/_bspc
doc:
a2x -v -d manpage -f manpage -a revnumber=$(VERSION) doc/bspwm.1.txt
-_bspc()
-{
- local messages='window desktop monitor query pointer rule restore control config quit'
+_bspc() {
+ local commands='window desktop monitor query pointer rule restore control config quit'
local settings='focused_border_color active_border_color normal_border_color presel_border_color focused_locked_border_color active_locked_border_color normal_locked_border_color urgent_border_color border_width window_gap split_ratio wm_name borderless_monocle gapless_monocle focus_follows_pointer pointer_follows_monitor adaptative_raise apply_shadow_property auto_alternate auto_cancel history_aware_focus'
if [[ $COMP_CWORD -ge 1 ]] ; then
local current_word="${COMP_WORDS[COMP_CWORD]}"
if [[ $COMP_CWORD -eq 1 ]] ; then
- COMPREPLY=( $(compgen -W "$messages" -- "$current_word") )
+ COMPREPLY=( $(compgen -W "$commands" -- "$current_word") )
return 0
else
local second_word=${COMP_WORDS[1]}
config)
if [[ $COMP_CWORD -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "$settings" -- "$current_word") )
+ return 0
fi
;;
esac
--- /dev/null
+#compdef bspc
+
+_bspc() {
+ local -a commands settings
+ commands=('window' 'desktop' 'monitor' 'query' 'pointer' 'rule' 'restore' 'control' 'config' 'quit')
+ settings=('focused_border_color' 'active_border_color' 'normal_border_color' 'presel_border_color' 'focused_locked_border_color' 'active_locked_border_color' 'normal_locked_border_color' 'urgent_border_color' 'border_width' 'window_gap' 'split_ratio' 'wm_name' 'borderless_monocle' 'gapless_monocle' 'focus_follows_pointer' 'pointer_follows_monitor' 'adaptative_raise' 'apply_shadow_property' 'auto_alternate' 'auto_cancel' 'history_aware_focus')
+ if (( CURRENT == 2 )) ; then
+ _values 'command' "$commands[@]"
+ elif (( CURRENT == 3 )) ; then
+ case $words[2] in
+ config)
+ _values 'setting' "$settings[@]"
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+ else
+ return 1
+ fi
+}
+
+_bspc "$@"