#compdef rsp _rsp() { _arguments -C \ '1:command:->cmd' \ '*::args:->args' case $state in cmd) _values 'command' \ 'start' 'stop' 'restart' 'play' 'pause' 'resume' 'toggle' 'next' 'previous' \ 'volume' 'shuffle' 'queue' 'status' 'scan' 'settings' ;; args) # if first word is "play", complete files/dirs if [[ $words[1] == play || $words[2] == play ]]; then _files else # default: complete nothing (or you can list other subcommand args) return 0 fi ;; esac } compdef _rsp rsp