如何从命令行控制 KDE 中的音量?

如何从命令行控制 KDE 中的音量?

我想使用 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

相关内容