mirror of
https://gitlab.freedesktop.org/pipewire/wireplumber.git
synced 2026-06-23 10:48:28 +02:00
Merge branch 'wpctl-shell' into 'master'
wpctl: update shell-completions See merge request pipewire/wireplumber!849
This commit is contained in:
commit
d4f5930cda
2 changed files with 22 additions and 5 deletions
|
|
@ -8,7 +8,7 @@ _wpctl() {
|
|||
local cur prev words cword
|
||||
local commands="status get-volume inspect set-default set-volume set-mute
|
||||
set-profile set-route clear-default settings set-log-level
|
||||
list"
|
||||
list reset"
|
||||
|
||||
_init_completion -n = || return
|
||||
|
||||
|
|
@ -35,6 +35,10 @@ _wpctl() {
|
|||
COMPREPLY+=($(compgen -W "devices sinks sources" -- "$cur"))
|
||||
fi
|
||||
;;
|
||||
|
||||
reset)
|
||||
COMPREPLY+=($(compgen -W "--wireplumber-config --pipewire-config --all --no-restart --dry-run" -- "$cur"))
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,15 +22,22 @@ _wpctl_pw_nodes() {
|
|||
fi
|
||||
_wpctl_describe_nodes() {_describe "node id" pw_objects "$@"}
|
||||
_alternative \
|
||||
'pw-defaults:defaults:(@DEFAULT_SINK@ @DEFAULT_SOURCE@)' \
|
||||
'pw-defaults:defaults:(@DEFAULT_SINK@ @DEFAULT_AUDIO_SINK@ @DEFAULT_SOURCE@ @DEFAULT_AUDIO_SOURCE@ @DEFAULT_VIDEO_SOURCE@)' \
|
||||
'pw-node-id:node id:_wpctl_describe_nodes'
|
||||
}
|
||||
|
||||
local -a node_id=(/$'[^\0]#\0'/ ':pw-node-id:node id:_wpctl_pw_nodes')
|
||||
local -a volume=(/$'[0-9]##(%|)([+-]|)\0'/ ':volume:volume:( )')
|
||||
local -a toggle=(/$'[^\0]#\0'/ ':(0 1 toggle)')
|
||||
local -a index=(/$'[^\0]#\0'/ ':index:index:( )')
|
||||
local -a set_volume=( "$node_id[@]" "$volume[@]" )
|
||||
local -a set_mute=( "$node_id[@]" "$toggle[@]" )
|
||||
local -a set_profile=( "$node_id[@]" "$index[@]" )
|
||||
local -a set_route=( "$node_id[@]" "$index[@]" )
|
||||
local -a clear_default_id=(/$'[^\0]#\0'/ ':(0 1 2)')
|
||||
local -a list_media=(/$'[^\0]#\0'/ ':media-type:media type:(audio video)')
|
||||
local -a list_object=(/$'[^\0]#\0'/ ':object-type:object type:(devices sinks sources)')
|
||||
local -a list_args=( "$list_media[@]" "$list_object[@]" )
|
||||
|
||||
_regex_words options 'wpctl options' \
|
||||
{-h,--help}':show help message and exit'
|
||||
|
|
@ -38,12 +45,18 @@ local -a options=( "$reply[@]" )
|
|||
|
||||
_regex_words wpctl-commands 'wpctl commands' \
|
||||
'status:show wireplumber status' \
|
||||
'list:list PipeWire objects:$list_args' \
|
||||
'get-volume:get object volume:$node_id' \
|
||||
'set-default:set a default sink:$node_id' \
|
||||
'inspect:inspect an object:$node_id' \
|
||||
'set-default:set a default node:$node_id' \
|
||||
'set-volume:set object volume:$set_volume' \
|
||||
'set-mute:set object mute:$set_mute' \
|
||||
'set-profile:set object profile:$node_id' \
|
||||
'clear-default:unset default sink:$node_id'
|
||||
'set-profile:set object profile:$set_profile' \
|
||||
'set-route:set object route:$set_route' \
|
||||
'clear-default:unset a configured default node:$clear_default_id' \
|
||||
'settings:show or change settings' \
|
||||
'set-log-level:set the log level of a client' \
|
||||
'reset:reset wireplumber/pipewire to defaults'
|
||||
local -a wpctlcmd=( /$'[^\0]#\0'/ "$options[@]" "#" "$reply[@]")
|
||||
_regex_arguments _wpctl "$wpctlcmd[@]"
|
||||
_wpctl "$@"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue