2007年10月31日

去掉 ctrl 键指示鼠标位置

虽然早在 2000 年左右的时候,我就装过 RedHat(7 或者 8?),但那个时候纯粹是因兴趣而装上玩玩。真正开始以 linux 作为生产环境,是在 2006 年开始工作的时候。时逢 ubuntu 大行其道,我也未能免俗。可以说,ubuntu 6.06(后文都用 dapper 指代)是我的启蒙 linux 发行版。

记得刚刚使用 dapper 的时候,常常会因为鼠标颜色和终端窗口背景颜色很接近而找不到鼠标在哪里,于是依稀是 dapper 的 gnome 设置里面有一项设置,作用是在按下右 ctrl 的时候屏幕会有一个由大变小的动画框,指示鼠标的位置。

后来换了其他对比更加鲜明的鼠标主题,肉眼找不到鼠标的问题已经基本不存在了,但右 ctrl 显示鼠标位置这一设置则一直保留了下来,经历了 6.10(edgy)和 7.04(feisty)。

问题发生在 7.10(gutsy)上。升级到了 gutsy 之后,突然间发现原本只有右 ctrl 才有效的鼠标指示,如今在两个 ctrl 上都有效了。开始只是有点别扭,几天之后,问题出现了。

不要说平时 emacs 用的多,即使只是终端里面,左 ctrl 也是很常用的键,于是这个时不时蹦出来动画框就很烦人。当然这还不至于影响正常工作。最严重的问题是,gnome 在绘制这个动画框的时候,会使焦点暂时脱离当前窗口,绘制,然后焦点再返回当前窗口。这样一来,类似 scim 这样对焦点敏感的应用程序,ctrl 基本都成了不可用的键。比如需要用 ctrl-d 删除拼写错误的单词的时候,焦点一旦脱离,选字框就不复存在,于是 ctrl-d 成了摆设。

于是下决心去掉这个指示鼠标位置的设置。可惜年代久远,早已记不得当初是在什么地方做的设置了。翻遍了 gutsy 的首选项,也没有找到类似的设置。

用 top 检查,没发现比较可疑的进程;启动的时候选择跳过 XClient 脚本而直接进入 gnome,问题依旧;因此断定这个功能应该是 gnome 而不是 X 提供的。

于是开始翻个人的 gnome 设置文件。可惜没有头绪,用 ctrl,mouse,cursor 等等关键词 grep -r 了很多次之后,也没有结果。突然想起 gconf 这个 gnome “注册表”,于是 gconf-edit,但是几番折腾下来还是无功而返。难道跟 gconf 也没有关系?这个设置究竟会放在什么地方呢?

有病乱投医,干脆把 ~/.gconf 全都干掉试试。重新进入 gnome,虽然上下面板的设置都丢了,但是可喜的是,那个鼠标位置指示的功能也没了!

看来这东西就是隐藏在 gconf 里面,只不过没人知道那个键名叫什么。为了找到问题所在,我花的时间已经够多了,而在已有的 gconf 里面找到起作用的那个键名,无疑又是一次大海捞针,增之易,减之难,从零开始恢复自己习惯的配置,似乎比找到那个捣蛋鬼更容易些。于是我选择了妥协,于是就有了这篇解决手段并不高明的文章。如果有人确切知道那个键名,请一定拨冗告知——为了它我可没少费力气。

修订(2007-11-07):非常感谢 LiuFeng,确切的键名已经找到 :D

desktop/gnome/peripherals/mouse/locate_pointer
发表评论