2010-03-09

Linux 应用程序失去输入焦点问题的解决

最早在这个博客(Debian 版本升降级)中就已经提到了,在 Debian 版本升级后,发现部分应用在 Alt-Tab 切换时,输入焦点失去,无法进行切换。当时以为版本降级可以解决,但是因为最终没有找到具体是哪个包造成的,又不想将系统回退到 Lenny,最终我的笔记本一直带病工作,最近很多同事的机器都已经传染了这个毛病,今天终于解决了这个问题。 简单的一句话:卸载 scim,安装 fcitx 输入法。 输入焦点的丢失,在 Koncole (KDE 最好用的终端软件) 和 FreeMind (脑图软件) 最为明显:
  • Alt-Tab 切换到其他应用(如 firefox),再用 Alt-Tab 切换回来,Konsole 或者 FreeMind 将不再响应键盘输入;
  • Konsole 支持多标签浏览,通过点击其他标签,按下 Shift + 左右方向键,切换标签可以重新获得输入焦点;
  • FreeMind 也可以通过多标签的切换,然后按下 Esc 键,键盘重新响应,或者鼠标点击任意节点,右键菜单选择编辑亦可获得输入焦点;
你看,我的笔记本就是一直这样带病坚持工作,每天花在重获焦点的时间非常客观。和几个同事商量,一定要解决。 用了 xev 等事件诊断软件,包括借助 Google,最终怀疑的目光落在输入法上。这么一个明显的 Bug,如果在互联网上没有被讨论的铺天盖地,那么一定是只影响少数人的应用。SCIM(中文输入法)就是这种应用。 解决办法是彻底卸载 scim,安装 fcitx (小企鹅输入法):
$ sudo aptitude remove scim
$ sudo aptitude install fcitx
# 配置小企鹅输入法为默认输入法
$ sudo im-switch -c
blog comments powered by Disqus