_bspc() { local commands='window desktop monitor query pointer rule restore control config quit' local settings='external_rules_command status_prefix focused_border_color active_border_color normal_border_color presel_border_color focused_locked_border_color active_locked_border_color normal_locked_border_color focused_sticky_border_color normal_sticky_border_color focused_private_border_color active_private_border_color normal_private_border_color urgent_border_color border_width window_gap top_padding right_padding bottom_padding left_padding split_ratio borderless_monocle gapless_monocle focus_follows_pointer pointer_follows_monitor apply_floating_atom auto_alternate auto_cancel history_aware_focus ignore_ewmh_focus remove_disabled_monitor persistent_monitors' COMPREPLY=() if [[ $COMP_CWORD -ge 1 ]] ; then local current_word="${COMP_WORDS[COMP_CWORD]}" if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $(compgen -W "$commands" -- "$current_word") ) return 0 else local second_word=${COMP_WORDS[1]} case $second_word in config) if [[ $COMP_CWORD -eq 2 ]] ; then COMPREPLY=( $(compgen -W "$settings" -- "$current_word") ) return 0 fi ;; esac fi fi } complete -F _bspc bspc # vim: set ft=sh: