我想使用 xbindkeys 设置一个组合键来增加/减少音量,但要做到这一点,我需要运行一个命令来更改音量,而不必单击音量图标并用鼠标更改它。我该怎么做?
答案1
您可以使用qdbus
命令行访问图形化 kmix。这些是增加和减少音量的命令:
qdbus org.kde.kmix /kmix/KMixWindow/actions/increase_volume com.trolltech.Qt.QAction.trigger
qdbus org.kde.kmix /kmix/KMixWindow/actions/decrease_volume com.trolltech.Qt.QAction.trigger
作为参考,man qdbus
显示语法是qdbus <service> <path> <method> <args>
,并且您可以通过运行较短的命令来查看每个阶段可用选项的列表 - 例如,运行qdbus org.kde.kmix
将显示可用路径的列表,并将qdbus org.kde.kmix /kmix/KMixWindow/actions/decrease_volume
显示该路径的可用方法列表等。请注意,标记为读取或读写的方法可以在没有参数的情况下调用以获取它们的当前值 - 这可能对您的自动化有用。
或者,您可以直接访问音量控制 - 例如,不是通过图形 kmixer - 使用 /Mixers 选项。
只需调用qdbus org.kde.kmix /Mixers org.kde.KMix.MixSet.currentMasterControl
即可找出当前主控制(在我的情况下为 alsa_output.pci-0000_00_1b.0.analog-stereo)。然后使用与该名称匹配的混频器,即 /Mixers/0/alsa_output_pci_0000_00_1b_0_analog_stereo,方法为 org.kde.KMix.Control.increaseVolume 或 org.kde.KMix.Control.decreaseVolume。
因此,直接访问音量控制将是这样的:
qdbus org.kde.kmix /Mixers/0/alsa_output_pci_0000_00_1b_0_analog_stereo org.kde.KMix.Control.increaseVolume
qdbus org.kde.kmix /Mixers/0/alsa_output_pci_0000_00_1b_0_analog_stereo org.kde.KMix.Control.decreaseVolume
这将改变音量,而无需进行任何图形处理。
答案2
音量增大
qdbus org.kde.kglobalaccel /component/kmix invokeShortcut increase_volume
音量减小
qdbus org.kde.kglobalaccel /component/kmix invokeShortcut decrease_volume
沉默的
qdbus org.kde.kglobalaccel /component/kmix invokeShortcut mute