LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5939|回复: 27

想问一下fcitx能不能不依赖LC_CTYPE来工作?

[复制链接]
发表于 2006-8-11 23:46:52 | 显示全部楼层 |阅读模式
我用debian sid
用im-switch来管理输入法
我的locale全是en_US.utf-8的
用scim没有任何问题

其实我更想用fcitx
(因为scim的输入条很烦人)
我也知道fcitx是根据LC_CTYPE中有zh_CN*字样的就能工作的
但是现在我的问题是:
我想用gdm登陆gnome
而gdm中只能选择一种locale,而这种locale的所有变量的值都是一样的
但是我就想用en_US.utf8的绝大多数变量
怎么办?
有人会说,你可以在~/.bash_profile or ~/.bashrc  or ~/.xinitrc or  ~/.X???rc 里设定
export LC_CTYPE=zh_CN.UTF-8

我知道这个,也设置了(任何其中一个)
进了gnome后在未完全出现桌面前我也看到了fcitx的输入然
但是进了桌面后那个输入条就不见了
locale看一下
LC_CTYPE=zh_CN.UTF-8
这一条的确是有
ps aux|grep fcitx,看到fcitx也在运行
但是根本不能用fcitx,因为根本调不出来,也看不到那个小企鹅

我不知道在gnome启动时什么时候把环境变量给改了
分析不出来

但是我觉得如果fcitx能做到像scim一样不依赖LC_CTYPE=zh_CN*就能运行
是不是会更好呢?

希望大家讨论一下解决这个问题
 楼主| 发表于 2006-8-13 00:13:30 | 显示全部楼层
为什么Yuking大哥不看这个帖子?
FT!
回复 支持 反对

使用道具 举报

发表于 2006-8-13 01:24:08 | 显示全部楼层
按说fcitx应该是支持en_US.utf8的,我再测试一下。SORRY啊…………
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-15 16:35:35 | 显示全部楼层
支持吗?
好像印象中只支持LC_CTYPE=zh_***类的
回复 支持 反对

使用道具 举报

发表于 2006-8-15 17:25:13 | 显示全部楼层
初步测试结果:在en_US.utf8状态下,可以输入,但输入条不能显示中文……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-15 23:49:19 | 显示全部楼层
哪个发行版?
哪个窗口管理器?
用没有gdm登陆?

跟我第一帖说的环境一样吗?
回复 支持 反对

使用道具 举报

发表于 2006-8-16 08:43:49 | 显示全部楼层

UBUNTU6的测试结果

当locale设置为zh_CN*的时候,可以不设置XMODIFIERS。当为en_US.utf-8时,必须设置XMODIFIERS,否则将无法工作。

已经解决了en_US.utf-8时中文无法正常显示的问题。很快放出新版
回复 支持 反对

使用道具 举报

发表于 2006-8-17 00:53:38 | 显示全部楼层
这里会是未来的伤心地吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-20 14:03:48 | 显示全部楼层
Post by Yuking
当locale设置为zh_CN*的时候,可以不设置XMODIFIERS。当为en_US.utf-8时,必须设置XMODIFIERS,否则将无法工作。

已经解决了en_US.utf-8时中文无法正常显示的问题。很快放出新版

中文无法正常显示的问题???
能显示输入条和显示条(就是有小企鹅的那个条)吗?
我这里是用gdm登陆后见到gnome-splash能看到显示条
然后等到显示完了桌面后那个条就没有了

下面是locale
  1. LANG=en_US.UTF-8
  2. LC_CTYPE="en_US.UTF-8"
  3. LC_NUMERIC="en_US.UTF-8"
  4. LC_TIME="en_US.UTF-8"
  5. LC_COLLATE="en_US.UTF-8"
  6. LC_MONETARY="en_US.UTF-8"
  7. LC_MESSAGES="en_US.UTF-8"
  8. LC_PAPER="en_US.UTF-8"
  9. LC_NAME="en_US.UTF-8"
  10. LC_ADDRESS="en_US.UTF-8"
  11. LC_TELEPHONE="en_US.UTF-8"
  12. LC_MEASUREMENT="en_US.UTF-8"
  13. LC_IDENTIFICATION="en_US.UTF-8"
  14. LC_ALL=
复制代码

这是环境变量
$ export |grep fcitx
declare -x XMODIFIERS="@im=fcitx"

$ export|grep XIM
declare -x GTK_IM_MODULE="XIM"
declare -x QT_IM_MODULE="XIM"

这是相关进程
$ ps aux|grep fcitx
user1     5511  0.0  0.0      0     0 ?        Z    13:35   0:00 [fcitx] <defunct>
user1     5520  0.0  0.4  18360  2192 ?        S    13:35   0:00 /usr/bin/fcitx
user1     5683  0.0  0.1   3624   688 pts/3    S+   13:48   0:00 grep fcitx


真是不知道哪里有问题,我把fcitx那个进程kill -9 ,然后再手动启动
然后提示条是有了,但是不能输入,按Ctrl+space没有反映
再除一个/etc/X11/Xsession.d/90im-switch

如果这个问题解决了就跟scim一样好了,我就换回来:)
  1. #!/bin/sh
  2. # Copyright (C) 2005 Kenshi Muto <kmuto@debian.org>
  3. #  Modified for Debian package.
  4. # Copyright (C) 1999 - 2004 Red Hat, Inc. All rights reserved. This
  5. # copyrighted material is made available to anyone wishing to use, modify,
  6. # copy, or redistribute it subject to the terms and conditions of the
  7. # GNU General Public License version 2.
  8. #
  9. # You should have received a copy of the GNU General Public License
  10. # along with this program; if not, write to the Free Software
  11. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  12. #
  13. # X Input method setup script
  14. # Keep original values related to IM
  15. _XIM=$XIM
  16. _XIM_PROGRAM=$XIM_PROGRAM
  17. _XIM_ARGS=$XIM_ARGS
  18. _XMODIFIERS=$XMODIFIERS
  19. _GTK_IM_MODULE=$GTK_IM_MODULE
  20. _QT_IM_MODULE=$QT_IM_MODULE
  21. # $LNG is locale <language>_<region> without .<encoding> and .<encoding>@EURO
  22. LNG=${LC_ALL:-${LC_CTYPE:-${LANG}}}
  23. LNG=${LNG%@*}
  24. LNG=${LNG%.*}
  25. [ -z "$LNG" ] && LNG="all_ALL" || true
  26. echo "Setting IM through im-switch for locale=$LNG."
  27. # Source first found configuration under $LNG locale
  28. for f in    "$HOME/.xinput.d/${LNG}" \
  29.             "$HOME/.xinput.d/all_ALL" \
  30.             "/etc/X11/xinit/xinput.d/${LNG}" \
  31.             "/etc/X11/xinit/xinput.d/all_ALL" \
  32.             "/etc/X11/xinit/xinput.d/default" ; do
  33.     if [ -f "$f" -a -r "$f" ]; then
  34.         echo "Start IM through $f linked to $(readlink -f $f)."
  35.         . "$f"
  36.         break
  37.     fi
  38. done
  39. unset LNG
  40. # Revibe IM related environment if other values were set.
  41. [ "$_XIM" ] && XIM=$_XIM || true
  42. [ "$_XIM_PROGRAM" ] && XIM_PROGRAM=$_XIM_PROGRAM || true
  43. [ "$_XIM_ARGS" ] && XIM_ARGS=$_XIM_ARGS || true
  44. [ "$_XMODIFIERS" ] && XMODIFIERS=$_XMODIFIERS ||true
  45. [ "$_GTK_IM_MODULE" ] && GTK_IM_MODULE=$_GTK_IM_MODULE || true
  46. [ "$_QT_IM_MODULE" ] && QT_IM_MODULE=$_QT_IM_MODULE || true
  47. [ -n "$GTK_IM_MODULE" ] && export GTK_IM_MODULE || true
  48. [ -n "$QT_IM_MODULE" ] && export QT_IM_MODULE || true
  49. # setup XMODIFIERS
  50. [ -z "$XMODIFIERS" -a -n "$XIM" ] && XMODIFIERS="@im=$XIM" || true
  51. [ -n "$XMODIFIERS" ] && export XMODIFIERS || true
  52. # execute XIM_PROGRAM
  53. [ -n "$XIM_PROGRAM" -a -x "$XIM_PROGRAM" ] && eval "$XIM_PROGRAM $XIM_ARGS &" || true
  54. # execute XIM_PROGRAM_XTRA
  55. [ -n "$XIM_PROGRAM_XTRA" ] && eval "$XIM_PROGRAM_XTRA &" || true
复制代码
/etc/X11/xinit/xinput.d
  1. drwxr-xr-x 2 root root 4096 2006-07-06 11:42 .
  2. drwxr-xr-x 3 root root 4096 2006-08-13 12:23 ..
  3. lrwxrwxrwx 1 root root   32 2006-07-05 14:53 all_ALL -> /etc/alternatives/xinput-all_ALL
  4. -rw-r--r-- 1 root root 1042 2006-05-20 18:37 default
  5. -rw-r--r-- 1 root root  100 2006-04-30 05:44 fcitx
  6. lrwxrwxrwx 1 root root   30 2006-07-06 11:42 ja_JP -> /etc/alternatives/xinput-ja_JP
  7. lrwxrwxrwx 1 root root   30 2006-07-06 11:42 ko_KR -> /etc/alternatives/xinput-ko_KR
  8. -rw-r--r-- 1 root root  474 2006-05-20 18:37 none
  9. -rw-r--r-- 1 root root  622 2006-06-17 16:30 scim
  10. -rw-r--r-- 1 root root  649 2006-06-17 16:30 scim-immodule
  11. lrwxrwxrwx 1 root root   30 2006-07-05 14:53 th_TH -> /etc/alternatives/xinput-th_TH
  12. -rw-r--r-- 1 root root  610 2006-05-20 18:37 th-xim
  13. lrwxrwxrwx 1 root root   30 2006-07-06 07:15 zh_CN -> /etc/alternatives/xinput-zh_CN
  14. lrwxrwxrwx 1 root root   30 2006-07-06 11:42 zh_HK -> /etc/alternatives/xinput-zh_HK
  15. lrwxrwxrwx 1 root root   30 2006-07-06 11:42 zh_SG -> /etc/alternatives/xinput-zh_SG
  16. lrwxrwxrwx 1 root root   30 2006-07-06 11:42 zh_TW -> /etc/alternatives/xinput-zh_TW
复制代码
/etc/X11/xinit/xinput.d/fcitx
应该是安装后自己带的
  1. XIM=fcitx
  2. XIM_PROGRAM=/usr/bin/fcitx
  3. XIM_ARGS=""
  4. GTK_IM_MODULE=XIM
  5. QT_IM_MODULE=XIM
  6. DEPENDS="fcitx"
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-8-20 22:49:28 | 显示全部楼层
能不能这样,它自动产生配置,设置字体主要为文泉驿。。。编码为utf8
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表