窗口管理器安装的是i3,没有鼠标控制音量的地方,键盘上的功能键不管用,但调节屏幕亮度的功能键是可以用的。一个笨方法是安装alsa-utils,然后在终端输入alsamixer,再用出来的字符界面的音量控制器调节音量,不方便。
好办法是绑定按键。折腾步骤如下 :
1.终端输入xev,再安音量控制键,一般笔记本是Fn + 左或右方向键,退出xev后,可以看到显示的按键事件,大概是这个样子:
KeyRelease event, serial 32, synthetic NO, window 0x1800001, root 0x7c, subw 0x0, time 8121754, (482,545), root:(486,565), state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 32, synthetic NO, window 0x1800001, root 0x7c, subw 0x0, time 8122127, (482,545), root:(486,565), state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False
其中XF86AudioRaiseVolume,XF86AudioLowerVolume就是按键名,一个增加音量,一个减小,可见返回了False. 也可用命令 xev | grep keysym 去掉那些多余的输出.
2. amixer是命令行的ALSA声卡驱动调节器工具.可以man一下看选项,这里举个栗子:
amixer set Master 3%+ 或amixer set Master 3dB+ (音量增大3%),
amixer set Master 3%- 或amixer set Master 3dB- (音量降低3%)
增减幅度自己设置,可以加-c选项指定声卡,比如我的是amixer set -c 0 Master 3%+,具体声卡名可以在打开alsamixer后按F2查看.
3.我的系统是archlinux,用i3桌面管理器,配置文件是主目录下 .i3/config 文件,这个文件是根据 /etc/i3/config生成的.编辑器打开后,在最后加入:
bindsym XF86AudioRaiseVolume exec amixer -c 0 set Master 3%+ bindsym XF86AudioLowerVolume exec amixer -c 0 set Master 3%-
注意那个中间那个exec不要忘了,我一开始就是忘了加,产生了下面的错误:
ERROR: Expected one of these tokens: <end>, '[', 'move', 'exec', 'exit', 'restart', 'reload', 'shmlog', 'debuglog', 'border', 'layout', 'append_layout', 'workspace', 'focus', 'kill', 'open', 'fullscreen', 'split', 'floating', 'mark', 'unmark', 'resize', 'rename', 'nop', 'scratchpad', 'mode', 'bar' ERROR: Your command: amixer -c 0 set Master 3%+
4.重启X后应该就生效了,i3可以用默认的快捷键$mod + shift +r 重新加载配置,以后你就可以直接用键盘控制音量了.
又觅了一更简单的方法,此法用的是xbindkeys.
1. 安装xbindkeys
archlinux下,
#pacman -S xbindkeys2.配置
在home下生成.xbindkeysrc
$ touch ~/.xbindkeysrc可以用命令生成一个简单的内容:
$ xbindkeys -d > ~/.xbindkeysrc打开这个文件,加入这些东西:
"amixer sset Master 4-" XF86AudioLowerVolume "amixer sset Master 4+" XF86AudioRaiseVolume
3.开机启动xbindkeys
我是在.xinitrc最后加入一句xbindkeys .下次开机就可以用了。现在你也可以终端输入xbindkeys,之后功能键就生效了.
参考这些前人的经验 B C D