Como controlo o volume no KDE a partir da linha de comandos?

3

Eu quero usar xbindkeys para definir uma combinação de teclas para aumentar / diminuir o volume, mas para isso eu preciso de um comando para executar para alterar o volume, sem ter que clicar no ícone de volume e alterá-lo com o mouse. Como posso fazer isso?

    
por Benubird 17.02.2014 / 13:48

1 resposta

2

Você pode usar qdbus para acessar o kmix gráfico a partir da linha de comando. Estes são os comandos para aumentar e diminuir o volume:

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

para referência, man qdbus mostra que a sintaxe é qdbus <service> <path> <method> <args> e você pode ver uma lista de opções disponíveis em cada etapa executando um comando mais curto - por exemplo, executar qdbus org.kde.kmix mostrará uma lista de caminhos disponíveis e qdbus org.kde.kmix /kmix/KMixWindow/actions/decrease_volume mostrará uma lista de métodos disponíveis para esse caminho, etc. Observe que os métodos marcados como sendo read ou readwrite podem ser chamados sem argumento para obter seu valor atual - isso pode ser útil para você para automação.

Alternativamente, você pode acessar o controle de volume diretamente - ou seja, não através do kmixer gráfico - com a opção / Mixers.

Apenas chame qdbus org.kde.kmix /Mixers org.kde.KMix.MixSet.currentMasterControl para descobrir o controle mestre atual (no meu caso, alsa_output.pci-0000_00_1b.0.analog-stereo). Em seguida, use o mixer correspondente a esse nome, ou seja, / Mixers / 0 / alsa_output_pci_0000_00_1b_0_analog_stereo, com o método org.kde.KMix.Control.increaseVolume ou org.kde.KMix.Control.decreaseVolume.

Assim, o acesso direto ao controle de volume será algo assim:

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

Que mudará o volume sem fazer nada gráfico.

    
por Benubird 17.02.2014 / 13:48