キーボードのボリューム操作のキーで音量調整したいけど、GNOMEの設定なのかALSAの設定なのか、うまく操作できない。
正しい設定方法がわからなかったので、汚い方法で調整する。
ボリューム調整のスクリプトを書いて、キーボードショートカットに設定した。
ボリューム関連のキーを押すと、音量コントロールの「Master Front」が操作できる。ところが、スピーカーからの音は「Front」でしか操作できない。
全然関係ない項目を操作しているので当然音量は変わらない。
キーボード・ショートカットの画面を確認したところ、音量コントロールのどこを操作するかという設定はなさそう。ALSAの設定もなんだかよくわからない。
とりあえず「Master Front」ではなく「Front」を操作すればいいので、amixerというコマンドで音量の操作をすることにした。
$ amixer sget Front Simple mixer control 'Front',0 Capabilities: pvolume pswitch penum Playback channels: Front Left - Front Right Limits: Playback 0 - 42 Mono: Front Left: Playback 21 [50%] [-31.50dB] [on] Front Right: Playback 21 [50%] [-31.50dB] [on] $ amixer sset Front 21 Simple mixer control 'Front',0 Capabilities: pvolume pswitch penum Playback channels: Front Left - Front Right Limits: Playback 0 - 42 Mono: Front Left: Playback 21 [50%] [-31.50dB] [on] Front Right: Playback 21 [50%] [-31.50dB] [on] $
とりあえず、数字を書くとボリューム調整で、on|offを書くとミュートが出来ることが判明した。
ボリュームを上げる というコマンドは無さそうなので現在の状態を取得して足し算する方法でスクリプトを作成する。
- volumeup.sh
#!/bin/sh set `amixer sget Front|grep 'Front Left: Playback'` VOLUME=$4 VOLUME=$(($VOLUME+2)) amixer -q sset Front $VOLUME
- volumemute.sh
#!/bin/sh set `amixer sget Front|grep 'Front Left: Playback'` VOLSTAT=$7 if [ $VOLSTAT = '[on]' ];then VOLUME='off'; else VOLUME='on'; fi amixer -q sset Front $VOLUME
あとはこれを「キーボード・ショートカット」で登録して作業完了。