4 while IFS=$'\t' read idx name _; do
5 printf "%s %s\n" "$idx" "$name"
6 done < <(pactl list cards short 2> /dev/null)
10 while IFS=$'\t' read _ name _ _ _; do
12 done < <(pactl list sinks short 2> /dev/null)
16 while IFS=$'\t' read idx _ _ _ _; do
18 done < <(pactl list sinks short 2> /dev/null)
22 while IFS=$'\t' read _ name _ _ _; do
24 done < <(pactl list sources short 2> /dev/null)
28 while IFS=$'\t' read idx _ _ _ _; do
30 done < <(pactl list sink-inputs short 2> /dev/null)
34 while IFS=$'\t' read idx _ _ _ _; do
36 done < <(pactl list source-outputs short 2> /dev/null)
40 pactl list cards 2> /dev/null | awk -e \
51 ports = ports substr($0, 3, index($0, ":")-3) " "
60 pactl list cards 2> /dev/null | awk -e \
71 profiles = profiles substr($0, 3, index($0, ": ")-3) " "
83 done < <(pulseaudio --dump-modules 2> /dev/null)
87 while IFS=$'\t' read idx name _; do
88 printf "%s %s\n" "$idx" "$name"
89 done < <(pactl list modules short 2> /dev/null)
92 __resample_methods () {
95 done < <(pulseaudio --dump-resample-methods 2> /dev/null)
98 _pacat_file_formats () {
99 while IFS=$'\t' read name _; do
100 printf "%s\n" "$name"
101 done < <(pacat --list-file-formats 2> /dev/null)
106 for i in "${@:2}"; do
107 [[ $1 = "$i" ]] && return
112 local cur prev words cword preprev command
114 local flags='-h --help --version -s --server= --client-name='
115 local list_types='short sinks sources sink-inputs source outputs cards
116 modules samples clients'
117 local commands=(stat info list exit upload-sample play-sample remove-sample
118 load-module unload-module move-sink-input move-source-output
119 suspend-sink suspend-source set-card-profile set-sink-port
120 set-source-port set-sink-volume set-source-volume
121 set-sink-input-volume set-source-output-volume set-sink-mute
122 set-source-mute set-sink-input-mute set-source-output-mute
123 set-sink-formats set-port-latency-offset subscribe help)
125 _init_completion -n = || return
126 preprev=${words[$cword-2]}
128 for word in "${COMP_WORDS[@]}"; do
129 if in_array "$word" "${commands[@]}"; then
136 list) COMPREPLY=($(compgen -W 'short' -- "$cur")) ;;
140 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
145 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
150 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
155 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
160 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
163 set-*-mute) COMPREPLY=($(compgen -W 'true false toggle' -- "$cur")) ;;
170 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
174 _known_hosts_real "$cur"
177 [[ $COMPREPLY ]] && return 0
180 list) COMPREPLY=($(compgen -W '${list_types[*]}' -- "$cur")) ;;
182 stat) COMPREPLY=($(compgen -W 'short' -- "$cur")) ;;
184 upload-sample) _filedir ;;
186 play-sample) ;; # TODO
188 remove-sample) ;; # TODO
191 comps=$(__all_modules)
192 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
196 comps=$(__loaded_modules)
197 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
202 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
206 comps=$(__sink_inputs)
207 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
211 comps=$(__source_outputs)
212 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
217 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
222 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
227 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
232 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
236 _known_hosts_real "$cur" ;;
238 [[ $COMPREPLY ]] && return 0
243 _known_hosts_real "$cur"
247 COMPREPLY=($(compgen -W '${flags[*]}' -- "$cur"))
248 [[ $COMPREPLY == *= ]] && compopt -o nospace
252 [[ -z $command ]] && COMPREPLY=($(compgen -W '${commands[*]}' -- "$cur"))
256 complete -F _pactl pactl
259 local cur prev words cword preprev command
261 local flags='-h --help --version'
262 local commands=(exit help list-modules list-cards list-sinks list-sources list-clients
263 list-samples list-sink-inputs list-source-outputs stat info
264 load-module unload-module describe-module set-sink-volume
265 set-source-volume set-sink-input-volume set-source-output-volume
266 set-sink-mute set-source-mut set-sink-input-mute
267 set-source-output-mute update-sink-proplist update-source-proplist
268 update-sink-input-proplist update-source-output-proplist
269 set-default-sink set-default-source kill-client kill-sink-input
270 kill-source-output play-sample remove-sample load-sample
271 load-sample-lazy load-sample-dir-lazy play-file dump
272 move-sink-input move-source-output suspend-sink suspend-source
273 suspend set-card-profile set-sink-port set-source-port
274 set-port-latency-offset set-log-target set-log-level set-log-meta
275 set-log-time set-log-backtrace)
276 _init_completion -n = || return
277 preprev=${words[$cword-2]}
279 for word in "${COMP_WORDS[@]}"; do
280 if in_array "$word" "${commands[@]}"; then
287 play-sample|play-file)
289 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
292 load-sample*) _filedir ;;
296 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
301 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
306 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
311 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
314 set-*-mute) COMPREPLY=($(compgen -W 'true false' -- "$cur"));;
322 describe-module|load-module)
323 comps=$(__all_modules)
324 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
328 comps=$(__loaded_modules)
329 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
332 load-sample-dir-lazy) _filedir -d ;;
333 play-file) _filedir ;;
336 comps=$(__sink_inputs)
337 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
341 comps=$(__source_outputs)
342 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
347 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
352 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
357 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
362 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
366 COMPREPLY=($(compgen -W 'auto syslog stderr file: newfile:' -- "$cur"))
370 COMPREPLY=($(compgen -W '{0..4}' -- "$cur"))
373 set-log-meta|set-log-time|suspend)
374 COMPREPLY=($(compgen -W 'true false' -- "$cur"))
379 -*) COMPREPLY=($(compgen -W '${flags[*]}' -- "$cur")) ;;
381 COMPREPLY=($(compgen -W 'suspend suspend-sink suspend-source' -- "$cur"))
385 COMPREPLY=($(compgen -W 'load-sample load-sample-lazy load-sample-dir-lazy' -- "$cur"))
389 [[ -z $command ]] && COMPREPLY=($(compgen -W '${commands[*]}' -- "$cur"))
393 complete -F _pacmd pacmd
397 local flags='-h --help --version -s --server='
399 _init_completion -n = || return
404 _known_hosts_real "$cur"
408 COMPREPLY=($(compgen -W '${flags[*]}' -- "$cur"))
409 [[ $COMPREPLY == *= ]] && compopt -o nospace
414 -s) _known_hosts_real "$cur" ;;
417 complete -F _pasuspender pasuspender
421 local flags='-h -s -n -m -M -S -D -d'
423 _get_comp_words_by_ref cur prev
426 -*) COMPREPLY=($(compgen -W '${flags[*]}' -- "$cur")) ;;
430 -s) _known_hosts_real "$cur" ;;
433 complete -F _padsp padsp
437 local flags='-h --help --version -r --record -p --playback -v --verbose -s
438 --server= -d --device= -n --client-name= --stream-name= --volume=
439 --rate= --format= --channels= --channel-map= --fix-format --fix-rate
440 --fix-channels --no-remix --no-remap --latency= --process-time=
441 --latency-msec= --process-time-msec= --property= --raw --passthrough
442 --file-format= --list-file-formats --monitor-stream='
444 _init_completion -n = || return
449 _known_hosts_real "$cur"
455 comps+=" "$(__sources)
456 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
461 comps=$(__sink_inputs)
462 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
467 COMPREPLY=($(compgen -W '32000 44100 48000 9600 192000' -- "$cur"))
472 comps=$(_pacat_file_formats)
473 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
480 COMPREPLY=($(compgen -W '${flags[*]}' -- "$cur"))
481 [[ $COMPREPLY == *= ]] && compopt -o nospace
487 -s) _known_hosts_real "$cur" ;;
490 comps+=" "$(__sources)
491 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
495 complete -F _pacat pacat paplay parecord
499 local cur prev words cword
500 local flags='-h --help --version --dump-conf --dump-resample-methods --cleanup-shm
501 --start -k --kill --check --system= -D --daemonize= --fail= --high-priority=
502 --realtime= --disallow-module-loading= --disallow-exit= --exit-idle-time=
503 --scache-idle-time= --log-level= -v --log-target= --log-meta= --log-time=
504 --log-backtrace= -p --dl-search-path= --resample-method= --use-pit-file=
505 --no-cpu-limit= --disable-shm= -L --load= -F --file= -C -n'
506 _init_completion -n = || return
509 --system=*|--daemonize=*|--fail=*|--high-priority=*|--realtime=*| \
510 --disallow-*=*|--log-meta=*|--log-time=*|--use-pid-file=*| \
511 --no-cpu-limit=*|--disable-shm=*)
513 COMPREPLY=($(compgen -W 'true false' -- "$cur"))
518 COMPREPLY=($(compgen -W 'auto syslog stderr file: newfile:' -- "$cur"))
523 COMPREPLY=($(compgen -W '{0..4}' -- "$cur"))
538 comps=$(__resample_methods)
539 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
544 comps=$(__all_modules)
545 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
552 COMPREPLY=($(compgen -W '${flags[*]}' -- "$cur"))
553 [[ $COMPREPLY == *= ]] && compopt -o nospace
558 -D) COMPREPLY=($(compgen -W 'true false' -- "$cur")) ;;
563 comps=$(__all_modules)
564 COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
568 complete -F _pulseaudio pulseaudio
570 #vim: set ft=zsh sw=4 ts=4 noet