| 注册 | 忘记密码
奇技淫巧 - 阅读主题
<<  <  1  >  >>

[FreeBSD安装手记] 5. 图形界面下充分利用键盘上的特殊键

好(0) 差(0) 阅读(4643) 评论(0)
Wen 给 Wen 发消息 给 Wen 发email
作者头像
等级:◆◆◆◆◇◇◇

现在一般键盘上都有Win键(在Windows里按下会弹出开始菜单)和菜单键(在Windows里按下会弹出上下文菜单),有些特殊键盘还有多媒体按钮(不少笔记本都有)。在FreeBSD下这些按钮默认都没有激活,我们可以自己激活并使用它们。

  1. 在图形界面下打开一个term,执行:

    xev

    即会弹出一个叫Event Tester的窗口,按下键盘左边的Win键,term会输出类似如下的信息:

    KeyPress event, serial 21, synthetic NO, window 0x1600001,
        root 0x4c, subw 0x0, time 1190029, (462,166), root:(584,458),
        state 0x0, keycode 115 (keysym 0xffeb, Super_L), same_screen YES,
        XLookupString gives 0 bytes:
        XmbLookupString gives 0 bytes:
        XFilterEvent returns: False

    KeyRelease event, serial 24, synthetic NO, window 0x1600001,
        root 0x4c, subw 0x0, time 1190188, (462,166), root:(584,458),
        state 0x20, keycode 115 (keysym 0xffeb, Super_L), same_screen YES,
        XLookupString gives 0 bytes:

    表明左Win键的键码(keycode)是115,名称(keysym)是Super_L。

  2. 在xev中按下各种特殊按钮,收集按钮的keycode和keysym信息,留意有些键没有keysym信息的要记下来。完成后退出xev:把Event Tester窗口关闭即可。
  3. 以root身份编辑keysym数据库,执行:

    ee /usr/X11R6/lib/X11/XKeysymDB

    对没有keysym的键,自己起个keysym并赋予一个唯一的keysym code,添加到XKeysymDB末尾,例如我添加了这些多媒体按钮的keysym信息:

    VolumeUp        :1100000D
    VolumeDown      :1100000E
    MediaPlayPause  :1100000F
    MediaStop       :11000010
    MediaPrev       :11000011
    MediaNext       :11000012
    MediaMute       :11000013

  4. 以普通用户身份在自己的目录下建文本文件.xmodmaprc,其中把keycode和keysym关联起来,例如我的.modmaprc文件内容是这样的:

    keycode 115 = Super_L
    keycode 116 = Super_R
    keycode 117 = Menu
    add Mod3 = Super_L
    add Mod3 = Super_R

    keycode 174 = VolumeDown
    keycode 176 = VolumeUp
    keycode 164 = MediaStop
    keycode 162 = MediaPlayPause
    keycode 144 = MediaPrev
    keycode 153 = MediaNext
    keycode 160 = MediaMute

    这里还把Win键设为第3控制键(Modifier),于是在fvwm的配置文件,除了S表示Shift、M表示Meta(Alt)、C表示Ctrl之外,还可以使用3表示Win键。

  5. 在窗口管理器里配置使用这些键,例如在fvwm的配置文件中可以添加如下代码使多媒体按钮跟xmms关联起来(音量按钮跟系统音量关联):

    Key VolumeUp            A       A       Exec exec mixer vol +5
    Key VolumeDown          A       A       Exec exec mixer vol -5

    Key MediaStop           A       A       Exec exec xmms --stop
    Key MediaPlayPause      A       A       Exec exec xmms --play-pause
    Key MediaPrev           A       A       Exec exec xmms --rew
    Key MediaNext           A       A       Exec exec xmms --fwd

    也可以使用xmms的xf86audio插件,此时要把多媒体键绑定为XF86Audio*的一系列keysym,具体请参考该插件的说明文档

Share/Save/Bookmark
最后修改:Wen 于 2006-03-18 16:22:18

发表于 2006-03-18 16:13:32
奇技淫巧 - 阅读主题
<<  <  1  >  >>

Valid XHTML 1.0 | Valid CSS2 | WAI-A WCAG 1.0

Copyright 2005-2018 WEN'S Horizon [32/0.026]