这个问题很有历史了,见
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=434180中的bug报告,里面有几句话提到了解决方法:
And the problem showed up from version 1.4.6. Current transitional
solution is changing the value of \"/FrontEnd/X11/Dynamic\" in
/etc/scim/config or ~/.scim/config from \"false\" to \"true\", which is
known to unfortunately break deadkeys usage in European keyboard layouts.
So this walk around is only recommend when such problem shows up. Seems
further investigation is required.
于是打开编辑~/.scim/config
gedit ~/.scim/config
找到:/FrontEnd/X11/Dynamic = false
改为:/FrontEnd/X11/Dynamic = true
然后重新启动X,在opera中肆意蹂躏了下键盘,暂时没有出现和以前一样突然不能输入的情况。
(不过注意哦,这个方法有个问题上面也说到了:“ which is known to unfortunately break deadkeys usage in European keyboard layouts. ”)
-------------------------
还在网上搜索到下面几种解决方法:(本人未测试,不知道可行否,直接转过来给大家参考)
Ubuntu 7.10下scim/libx11的bug及解决方法
在7.10版本的Ubuntu中,默认的scim模式改成了XIM。造成在有些程序中无法输入文字,即使是英文字母也不行的bug。我多次在nautilus里遇到该bug。该bug很早就被报告了,只是最近才由于默认设置的改变而更加容易出现了。不过这似乎是libx11库的bug。
launchpad上给出了两种解决办法:
1. 如果不需要使用依赖 libstdc++5库的程序。可以执行
im-switch -s scim-immodule
把scim模式改掉。但是我需要用到java6,acroread这些依赖stdc++5的程序,所以该方法不适合我。
2. 如果不需要使用deadkeys,可以按以下步骤修改:
a. 执行im-switch -s none,使得scim默认不会启动,退出并重登录
b. 修改 ~/.scim/config 文件, 将 /FrontEnd/X11/Dynamic 改为 true
c. 执行im-switch -s scim,使得scim默认启动。
但是我要用deadkeys来输入法文音标字母,所以该方法也不适合我。
于是有人给出了第三种方法,
a. 按照方法2修改设定
b. 安装 scim-uim以及 uim-latin
c. 设置一个复合键(在gnome的键盘选项中)
d. 启动scim,把输入法改为 UIM-Latin
voila!
还有个更简单的方法。既然是libx11的问题,那就应该从源头上解决,治标治本。
添加源
deb
http://ppa.launchpad.net/arnegoetje/ubuntu gutsy main restricted universe multiverse
deb-src
http://ppa.launchpad.net/arnegoetje/ubuntu gutsy main restricted universe multiverse
把libx11库更新即可。
-------------------------