Arch音频配置以及LXDE快捷键绑定

在”Arch安装手记(自用不完全版)”里,我简单的配置了一下声卡,勉强能用,但是很不完美。
所以今天专门写一篇文章来解决这个该死的音频问题。

安装手记里基本的alsa配置:

sudo pacman -S alsa-utils
sudo alsaconf
<editor> /etc/rc.conf #添加alsa
sudo alsamixer #MM是关,OO是开,无条形(静音)的部分用上箭头控制把音量加上去。

安装PulseAudio

sudo pacman -S pulseaudio #PulseAudio驱动
sudo pacman -S pulseaudio-alsa #使alsa支持PulseAudio
sudo pacman -S pavucontrol #一个GUI的音量控制器,可以分别控制不同进程的音量
sudo pacman -S lib32-libpulse #64位下执行32位程序需要,源仓库里必须有[multilib]
sudo pacman -S lib32-alsa-plugins #64位下执行32位程序需要,源仓库里必须有[multilib]

请先测试默认配置是否可以播放音频,如果不行,再尝试修改配置。

打开mplayer,把首选项里面的音频驱动调为pulseaudio,测试播放是否正常。
用浏览器打开任何带有视频的网站,测试播放是否正常。

调整PulseAudio,这部分可能根据声卡不同,方式不同,我只说我的。

打开PulseAudio Volume Control,
配置标签页---“内部音频”---选择“模拟立体声 Output”
配置标签页---“GF108 High Definition Audio Controller”---选择“关闭”。

“Linux版英雄无敌3”无声音问题的解决

x64下安装Linux版英雄无敌3需要模拟x86环境,
只要重编译一个/bin/uname可执行文件,
cout出“x86\n”即可,具体参考此帖,不赘述:
http://ubuntuforums.org/showthread.php?t=60273

sudo pacman -S ossp	#使原本能识别oss的程序支持PulseAudio
sudo rc.d start osspd #显示::starting OSS userspace bridge [DONE]才是启动成功
heroes3 #启动你的“英雄无敌3”吧

快捷键控制音量

yaourt -S pulseaudio_ctl

安装完后它生成了3个脚本:vol_up、vol_down、mute_toggle
分别绑定快捷键即可,LXDE的快捷键绑定方法研究中……

LXDE添加快捷键

<editor> ~/.config/openbox/lxde-rc.xml #lxde-rc.xml是lxde一登入就载入的配置,重载窗口管理器后失效

在keyboard块内部添加大量keybind块

<keyboard>
……
<!-- Keybindings for running applications -->
    <keybind key="W-e">
      <action name="Execute">
        <startupnotify>
          <enabled>true</enabled>
          <name>PCManFM</name>
        </startupnotify>
        <command>pcmanfm</command>
      </action>
    </keybind>
    <keybind key="C-A-t">
      <action name="Execute">
        <startupnotify>
          <enabled>true</enabled>
          <name>sakura</name>
        </startupnotify>
        <command>sakura</command>
      </action>
    </keybind>
    <keybind key="S-F4">
      <action name="Execute">
        <command>gscreenshot</command>
      </action>
    </keybind>
……
</keyboard>

C-S-Escape、C-A-t这样的组合很好写,Fn又得如何处理呢?
Fn键实际上不存在一个单一的映射,类似Fn+F3这样的组合键才对应一个映射
而且每款笔记本对应的键名不一样,很是麻烦。
需要一个可以查看组合键键名的软件,默认就有一款是xev,方便起见,可以用grep命令

xev | grep keysym

然后有一个叫做Event Tester的小窗,鼠标移过去依次测试按键就可以了。
可以很轻易地看到键名,输出结果类似这样

$ xev | grep keysym
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
    state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES,
    state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES,
    state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES,
    state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES,
    state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES,
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,

我的Sony本对应键名如下
Fn组合键:
Fn-F2———–XF86AudioMute
Fn-F3———–XF86AudioLowerVolume
Fn-F4———–XF86AudioRaiseVolume
Fn-F5———–XF86MonBrightnessDown
Fn-F6———–XF86MonBrightnessUp
Fn-F7———–XF86Display
Fn-F12———-XF86Suspend
键盘上方按键:
播放————XF86AudioPlay
停止————XF86AudioStop
上一首———-XF86AudioPrev
下一首———-XF86AudioNext
Assist———-Help
Web————-XF86HomePage

然后即有

<keybind key="XF86AudioMute">
  <action name="Execute">
    <command>mute_toggle</command>
  </action>
</keybind>
<keybind key="XF86AudioLowerVolume">
  <action name="Execute">
    <command>vol_down</command>
  </action>
</keybind>
<keybind key="XF86AudioRaiseVolume">
  <action name="Execute">
    <command>vol_up</command>
  </action>
</keybind>

另摘录一些我没有快捷键名,或许某些人有用

XF86AudioPause 多媒体暂停
XF86AudioMute 静音
XF86Mail 邮件
XF86Sleep 休眠
XF86Calculator 计算器

改完后重启X,大功告成

什么?你说没有音量托盘图标?
右击面板->面板设置->pannel applets,里面就有音量控制这一项!