|
楼主 |
发表于 2005-9-2 08:57:22
|
显示全部楼层
多媒体键盘的使用
如果键盘是多媒体键盘,有音量控制、打开浏览器等功能键,在 fvwm 里面(其他的 wm 应该也可以用类似的方法)也可以使用他们。
有两套方案可以选择:
1. 用 xmodmap 定义这些按键
2. 使用 hotkeys 之类的程序
第一个方案需要的程序有:
打开一个 rxvt/xterm/konsole/gnome-terminal ,或者你喜欢的 X 下的终端,在里面运行 xev ,然后会打开一个窗口,把鼠标移进去,停住鼠标后,按 a 键(按下后立即松开),会发现类似的信息:
- KeyPress event, serial 32, synthetic NO, window 0xa00001,
- root 0x8e, subw 0x0, time 1418934, (77,117), root:(674,531),
- state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
- XLookupString gives 1 bytes: (61) "a"
- XmbLookupString gives 1 bytes: (61) "a"
- XFilterEvent returns: False
- KeyRelease event, serial 32, synthetic NO, window 0xa00001,
- root 0x8e, subw 0x0, time 1419038, (77,117), root:(674,531),
- state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
- XLookupString gives 1 bytes: (61) "a"
复制代码
从这里可以看出 a 的 keycode 是 38 ,键盘告诉电脑的事情是 38 号键被按下了,电脑里的程序把它转化成 a 。通过类似的方式,就可以获得多媒体键盘中那些特殊键的 keycode 。
在 X 启动脚本(如 ~/.xsession 或者 /etc/X11/Xsession.d/ 下的某个脚本里面)加入类似这样的语句:
- xmodmap -e 'keycode 174 = Svolumedown'
- xmodmap -e 'keycode 176 = Svolumeup'
复制代码
在 /usr/X11R6/lib/X11/XKeysymDB 让 X 知道这些键的作用:
- Svolumedown :1100000D
- Svolumeup :1100000E
复制代码
在 .fvwm2rc 里把按键映射到程序动作上:
- Key Svolumedown A A Exec exec amixer set PCM 2%-
- Key Svolumeup A A Exec exec amixer set PCM 2%+
复制代码
两篇参考文章:
http://linux.oneandoneis2.org/keys.htm
http://learn.tsinghua.edu.cn/hom ... /GNU/fvwm.html#sec9
我机器上的多媒体键盘退休了,当时我用的是 hotkeys ,因此没办法尝试上述方法,欢迎大家试过之后指出其中错误。 |
|