揮発性のメモ2

http://d.hatena.ne.jp/iww/

キーボードでボリュームを調整する

キーボードのボリューム操作のキーで音量調整したいけど、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

あとはこれを「キーボード・ショートカット」で登録して作業完了。


D
操作の確認に使用