|
发表于 2006-9-16 21:29:31
|
显示全部楼层
您的说法我觉得有道理,但不完全能解决问题
我对fcitx和scim都测试了一下
这些都是在gdm登陆时选en_US.UTF-8
一。用im-switch -c选择fcitx输入法如下:
- $ im-switch -c
- There are 6 candidates which provide IM for /home/laris/.xinput.d/en_US:
- Selection Alternative
- -----------------------------------------------
- + 1 default
- * 2 fcitx
- 3 none
- 4 scim
- 5 scim-immodule
- 6 th-xim
- System wide default for en_US (or all_ALL) locale is marked with [+].
- Press enter to keep the current selection[*], or type selection number: 2
复制代码
1。
然后不在如~/.bash_profile 或者~/.bashrc里设置任何有关输入法的环境变量
重新登陆后环境变量如下结果:
- $ export|grep XIM
- declare -x GTK_IM_MODULE="XIM"
- declare -x QT_IM_MODULE="XIM"
- $ export|grep XMODIFIERS
- declare -x XMODIFIERS="@im=fcitx"
复制代码
2。
把设置放到~/.bashrc里,放到~/.bash_profile里根本不读取
加入如下:
export GTK_IM_MODULE=xim
重新登陆环境变量如下:
- $ export|grep xim
- declare -x GTK_IM_MODULE="xim"
- $ export|grep XIM
- declare -x QT_IM_MODULE="XIM"
- $ export|grep XMODIFIERS
- declare -x XMODIFIERS="@im=fcitx"
复制代码
3。说明
这个时候gtk程序根本不能激活输入法或者根本没有输入法,环境变量如上,我根据您说的看到在能输入文本的编辑器或者Xterm里点右键的确有一个Input Methods。而且里面默认的是“Default",而不是X Input Method (这个也就是XIM吧),原因我也不知道为什么。进一步讨论看完下面scim的测试再说。
二。用im-switch -c选择fcitx输入法如下:
- $ im-switch -c
- There are 6 candidates which provide IM for /home/laris/.xinput.d/en_US:
- Selection Alternative
- -----------------------------------------------
- + 1 default
- * 2 fcitx
- 3 none
- 4 scim
- 5 scim-immodule
- 6 th-xim
- System wide default for en_US (or all_ALL) locale is marked with [+].
- Press enter to keep the current selection[*], or type selection number: 4
复制代码
1。不在如~/.bash_profile 或者~/.bashrc里设置任何有关输入法的环境变量
重新登陆后环境变量如下结果:
- $ export |grep XMODI
- declare -x XMODIFIERS="@im=SCIM"
- $ export |grep XIM
- $ export |grep xim
- declare -x GTK_IM_MODULE="xim"
- declare -x QT_IM_MODULE="xim"
复制代码
2。但是现在scim能用,而且最重要的是所有的能显示X Input Method的地方那里的的选项都已经变成XIM了!(试了一下手动选择SCIM Input Method也是一样的效果,这一个是装上SCIM就有的)。而fcitx就差这一点。然后我比较了一下/etc/X11/xinit/xinput.d下的两个文件:
- [xinput.d]$ more fcitx
- XIM=fcitx
- XIM_PROGRAM=/usr/bin/fcitx
- XIM_ARGS=""
- GTK_IM_MODULE=XIM
- QT_IM_MODULE=XIM
- DEPENDS="fcitx"
- ================================================
- [xinput.d]$ more scim
- #
- # Use "X input Method" for all applications
- #
- # Per Ming's Documentation in SCIM, XIM Input Method is activated
- # not only for old X-applications but also for GTK and QT appplication.
- #
- # If a user wish to use, GTK Input Method, (s)he can right-click input
- # area and select "Input Methods" and change from "X input Method" to
- # "SCIM Input Method".
- #
- XIM=SCIM
- XIM_PROGRAM=/usr/bin/scim
- XIM_ARGS="-d"
- GTK_IM_MODULE=xim
- QT_IM_MODULE=xim
- DEPENDS="scim,scim-anthy|scim-canna|scim-chewing|scim-pinyin|scim-hangle|scim-prime|scim-skk|scim-tables-additional|scim-m17n|scim-uim|scim-tables-ja|scim-tables-ko|scim-tables-zh"
- =================================================
- [xinput.d]$ more scim-immodule
- #
- # This configuration file for SCIM is deprecated.
- #
- # Use "X input Method" for standard X applications
- # Use "SCIM immodule" for GTK applications
- #
- # Using this configuration may improve some usability for GTK applications
- # such as the location of word selection window.
- #
- # You still need these XIM settings for non-GTK programs.
- XIM=SCIM
- XIM_PROGRAM=/usr/bin/scim
- XIM_ARGS="-d"
- GTK_IM_MODULE=scim
- # Qt immodule is not ready
- #QT_IM_MODULE=scim
- DEPENDS="scim,scim-gtk2-immodule,scim-anthy|scim-canna|scim-chewing|scim-pinyin|scim-hangle|scim-prime|scim-skk|scim-tables-additional|scim-m17n|scim-uim|scim-tables-ja|scim-tables-ko|scim-tables-zh"
复制代码
看起来三个文件没有什么太多差别啊。换句话说是根本没有差别。
另外/etc/X11/xinit/xinput.d/default里所有设置都为空。
所以断定根本问题是不知道为什么启动输入法后环境变量和设置都正确,但gtk里XIM里的设置的问题。也就是为什么fcitx不能自动自动设定为XIM(或者像scim那样单独设置一个SCIM Input Method),而SCIM却能自动设置成XIM!
在gtk程序选择XIM的菜单里有很多选项,但是有三个是最重要的,一个Default,一个XIM,而如果装了scim的话还会多出一个SCIM Input Method。我不知道跟这个有没有关系,但我觉得这不是主要原因吧。因为qt程序里好像就没有这么多选项,只有一个XIM。
所以,我觉得还是fcitx的问题,在什么地方设置跟debian的gnome不怎么配合,当然我指的是特定情况,但是scim就考虑到了这一点或者说什么地方的设置跟fcitx的原理不一样或者方法不一样,所以才造成现在这种情况。
我不太了解输入法的深层原理,但还是想请YuKing考虑一下研究研究这个到底是怎么回事。或者看一下scim到底是做了什么使这个设置会有问题。
因为还是想用fcitx,所以写了这么多,有什么写的不对的还请明指。
谢谢:) |
|