|
|
最近搞了Openbox,用tint作任务栏,发现没了音量托盘(用KDE用多了)很不舒服,并且自己键盘的多媒体键一直没在Linux下使用,于是……
一、多媒体键
关于多媒体键的设置可以参照Gentoo讨论区的多媒体键设置指南
主要是说:用xev,按多媒体键,如果在keycode一行有XF86xxx之类,如下
……
state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute)
…… 说明内核已经正确识别该多媒体键了。
否则,将
keycode 162 = XF86AudioPlay
keycode 164 = XF86AudioStop
keycode 160 = XF86AudioMute
…… 之类写到~/.Xmodmap中,再xmodmap之
二、OSD显示
安装xosd,用来作OSD显示:
写一bash脚本如下:
#!/usr/bin/env bash
CHANNEL=PCM
color=green
ACTION===
if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then
p=$(basename $0)
echo "Usage: $p [-h] [频道] [+|-|m]
-h, --help 显示此帮助信息并退出
频道 所要设置的频道,如PCM、Master等,默认为PCM
+ 设置音量数值增加5%
- 设置音量数值减少5%
m 在静音与放音间切换"
exit 0
fi
if [ $# -eq 2 ] ; then
CHANNEL=$1
shift
fi
function vol_osd {
killall osd_cat &> /dev/null
VOL_STAT=$(get_vol_stat)
if [ "$VOL_STAT" = "on" ]
then color="green"
else
color="red"
fi
osd_cat -d 2 -O 1 -u black -l 2 -p bottom -o 60 -c $COLOR \
-f "-adobe-helvetica-bold-r-normal-*-*-320-*-*-p-*-iso8859-1" \
-T "Volume $CHANNEL: $(get_vol_level) $ACTION"\
-b percentage -P $(get_vol_level) &
}
function get_vol_level {
amixer get $CHANNEL |\
grep 'Front Left:' |\
cut -d " " -f 7 |\
sed 's/[^0-9]//g'
}
function get_vol_stat {
amixer get $CHANNEL |\
grep 'Front Left:' |\
cut -d " " -f 9 |\
sed 's/[^a-z]//g'
}
case "$1" in
"+")
amixer -q set $CHANNEL 5%+
ACTION="++"
;;
"-")
amixer -q set $CHANNEL 5%-
ACTION="--"
;;
"m")
amixer -q set $CHANNEL toggle
if [ "$(get_vol_stat)" = "on" ]
then ACTION="=)("
else
ACTION="=()"
fi
;;
esac
vol_osd 保存之(我将其存为~/bin/volume),并chmod +x 之。
测试下,就可以看到OSD:
cd bin
./volume -h
./volume
./volume +
./volume -
./volume m
./volume Master -
等等…… 三、写入Openbox的快捷键
编辑.config/openbox/rc.xml,在<keyboard> ……</keyboard>间加入:
</keybind>
<keybind key="XF86AudioLowerVolume">
<action name="Execute">
<execute>~/bin/volume -</execute>
</action>
</keybind>
<keybind key="XF86AudioRaiseVolume">
<action name="Execute">
<execute>~/bin/volume +</execute>
</action>
</keybind>
<keybind key="XF86AudioMute">
<action name="Execute">
<execute>~/bin/volume m</execute>
</action>
</keybind>
<keybind key="C-XF86AudioLowerVolume">
<action name="Execute">
<execute>~/bin/volume Master -</execute>
</action>
</keybind>
<keybind key="C-XF86AudioRaiseVolume">
<action name="Execute">
<execute>~/bin/volume Master +</execute>
</action>
</keybind>
<keybind key="C-XF86AudioMute">
<action name="Execute">
<execute>~/bin/volume Master m</execute>
</action>
</keybind> 这样,单按相应多媒体键是对PCM进行操作,按Ctrl+多媒体键是对Master进行操作。
注销Openbox,OK 截个图 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|