ninjaxena 发表于 2003-3-26 14:59:29

RedHat 8.0上的Gnome,配置键盘快捷键的方法.

RedHat 8.0上的Gnome,配置键盘快捷键的方法.
编辑文章编辑回应这篇文章回复

经过网上各位大侠的指教,终于成功能使用键盘快捷键盘了.以下写些心得:

1)基础知识:
* 每当你按下一个键或一组组合键,键盘会向XFree86发送一个keycode信号,比如我的特殊键(i),用来启动浏览器的,就会发keycode 163给XFree86
* XFree86自己有一套对于各个键的定义,叫keysym,XFree86接收到一个keycode后,会把keycode翻译成相对的keysym,然后送个具体的程序处理.

2)设计的你的特殊键方案
我想把我键盘上的特殊键(i)变成启动mozilla的快捷键

3)检测你的特殊键的keycode
启动程序xev,然后按下你想检测的特殊键,看屏幕的输出,找keycode这个字后面的数字,如:
KeyRelease event, serial 25, synthetic NO, window 0x2600001,
root 0x3e, subw 0x0, time 2386094733, (771,403), root:(777,437),
state 0x0, keycode 163 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 characters: ""

看到" keycode 163 (keysym 0x0, NoSymbol)"这段了吗?其中163就是那个特殊键的keycode,而后面的"(keysym 0x0, NoSymbol)"表示还未定义是哪个keysym.

OK,我们现在知道要做的特殊键盘的keycode是163了.

4)找一个keysym定义给特殊键.
我现在还不知道如何自己为XFree86增加新的keysym,估计要改源代码.好在XFree86已经预先定义了一大堆的keysym,我们就不用那么麻烦,只要选一个已经有的keysym就可以了.
打开文件/usr/X11R6/lib/X11/XKeysymDB
找一个你喜欢的定义,我是看他的名字来定的,呵呵
XF86Eject :1008FF2C
XF86ScreenSaver :1008FF2D
XF86WWW :1008FF2E
XF86Sleep :1008FF2F
XF86Favorites :1008FF30
XF86AudioPause :1008FF31
XF86AudioMedia :1008FF32
XF86MyComputer :1008FF33
看到了吗?有很多耶!我就用XF86WWW吧,看起来和我的特殊键挺登对的.:-)

5)把特殊键的keycode关联到keysym上
你可以用工具xmodmap来做这个事情,你最好用man xmodmap来见看看.
我是用以下命令实现的:
/usr/X11R6/bin/xmodmap -e "keycode 163 = XF86WWW"
你可以把这个配置放到机器启动或者会话启动的自动运行菜单里.
运行完这句,你可以在运行一下xev,按下特殊键 (i),应该能看到keysym那里已经显示XF86WWW了

6)设置你自己的快捷键
在我的gnome里,默认的窗口管理器(window manager)是metacity,我的实现也是以此为例的,如果用其他的窗口管理器的朋友,可能要自己研究一下了.
运行gconf-editor,然后在菜单里找/apps/metacity,你看到什么?
首先设置一个快捷命令,选择keybinding_commands,你可以看到有很多空的命令项,随便选一个,我选的是command_1,修改他的数值为"/usr/bin/mozilla"
然后设置关联这个快捷命令的快捷键,找/apps/metacity/global_keybindings,然后修改run_command_1的数值为XF86WWW
然后关闭gconf-editor.

测试一下,按那个特殊键,mozilla是不是出来了?
其他的任何的特殊键,也可以用这过方法来实现.

祝您好运!



--------------------
To be, or not to be...

文章选项: 打印   将这篇文章放置于备忘录中,待有空时回覆   好友分享   通知版主
ppip
(newbie)
03/05/03 21:08
Re: RedHat 8.0上的Gnome,配置键盘快捷键的方法.
回应这篇文章回复

有意思,收藏之。


--------------------
ppip = pain past is pleasure!

文章选项: 打印   将这篇文章放置于备忘录中,待有空时回覆   好友分享   通知版主
million
(journeyman)
03/06/03 07:02
Re: Up
回应这篇文章回复

好文章,不顶不行!

文章选项: 打印   将这篇文章放置于备忘录中,待有空时回覆   好友分享   通知版主
ninjaxena
(newbie)
03/10/03 10:43
Re: Up
编辑文章编辑回应这篇文章回复

不过以上方法也有问题,就是metacity在重新启动后,好像不理睬配置好了的快捷键盘,必须要重新打开gconf-editor修改一下(比如修改一下那个快捷键的设定)然后才起作用,这点我还没找到什么办法,可能直接修改gconf-editor的方法不好,求高手们教导一下如何配置metacity的快捷键设定程序.


--------------------
To be, or not to be...
页: [1]
查看完整版本: RedHat 8.0上的Gnome,配置键盘快捷键的方法.