LinuxSir.cn,穿越时空的Linuxsir!

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

关于slim/xdm/gdm, startx, startfluxbox, 中文输入的问题

[复制链接]
发表于 2007-10-8 10:41:22 | 显示全部楼层 |阅读模式
我不太了解了X的启动机制,遇到了一个可能是普遍性的问题。
现象是这样的:
环境:
(1)在rc.conf 中,设
XSESSION="fluxbox"

(2)在.bashrc中, 设
export LANG="en_US.utf8"
                                export LC_CTYPE="zh_CN.utf8"
                                export XMODIFIERS="@im=fcitx"
                                export XIM="fcitx"
                                export QT_IM_MODULE=XIM
                                export GTK_IM_MODULE=XIM
                                export XIM_ARGS=""

(3)在.fluxbox/startup中,运行 fcitx -d
(4)在.xinitrc中,有exec startfluxbox

问题是这样的:如何解决下面的(B)(C)两种情况下中文输入,特别是(C)?
(A)在level 3中,运行startx, 一切正常。在terminal中能正常输入中文。locale如下
LANG=en_US.utf8
LC_CTYPE=zh_CN.utf8
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=


(B)在level 3中,运行startfluxbox,不能启动,
错误提示:
user@localhost ~ $ startfluxbox
Error: Couldn't connect to XServer
Conky: can't open display:
Error: FCITX can only run under X
/home/walter/.fluxbox/startup: line 45: xscreenserver: command not found
Could not open display!
Make sure you have an X server running.
Error: Display connection
Can't open display, X may not be running!
Error: Couldn't connect to XServer


(C)当用slim(和xdm/gdm功能近似)图形界面登录时,ctl+space不能激活中文输入,此时在termial中的locale和startx中的locale一致。

先谢谢了
发表于 2007-10-8 10:53:37 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-8 11:36:30 | 显示全部楼层

我看了这篇文章,文章中的第一个方法应该和我现在使用的方法是一样的。我又试了第二个方法,就是把把.xinitrc中加入如下内容
export XMODIFIERS="@im=fcitx"
export XIM=fcitx
export XIM_PROGRAM=fcitx
exec startfluxbox
exec fcitx -d

通过slim启动后,问题依旧。虽然fcitx的进程在运行,当是ctl+space还是无法激活它。同时还注意到此时firefox的窗口框中的中文变成方框了。而用startx时是正常中文文字。
回复 支持 反对

使用道具 举报

发表于 2007-10-8 12:54:18 | 显示全部楼层
startflux不行是因为xserver没有启动,报错信息里很明显了。你要是先启动X再运行startfluxbox就可以了。startx是要启动默认的xserver(也就是X,也可以配置其它的)后启动xclient。你要是非输入startfluxbox来启动的话,不如改一下startfluxbox脚本,前面加入xserver的启动(没试验过:-)),和zhllg给的那个链接的最后一个方法类似。

我以前用slim的时候可以输入中文的。locale和你的一样。slim启动的时候要读。.xinitrc的,所以有了那个第二个方法,你应该把exec fcitx -d放到exec startfluxbox的前面。具体要你自己试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-8 13:28:14 | 显示全部楼层
解决了一部份问题:

(1)在xinitrc中,无论是把exec fcitx -d放到exec startfluxbox的前面还是前面都不行,放到前面就反复进入slim,不进入fluxbox, 放到后面,就根本无法运行。
(2)fcitx -d也不能放到.fluxbox/startup中,否则fcitx的输入图标乱码。(attachment 1)
(3)采用slim方式,.Xdefaults/.Xresource中xterm对于字体的设置根本不起作用,xterm
无法输入中文。但手动启动,并指定字体,xterm -fa Nsimsun则中文可以正常输入.
(4)此时,firefox还不能正常输入中文,感觉是字体问题。因为从图中可以看出firefox>窗口的中文标题还是方框。(attachment 2)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2007-10-8 13:30:13 | 显示全部楼层
export XMODIFIERS="@im=fcitx"
export XIM="fcitx"
export QT_IM_MODULE=XIM
export GTK_IM_MODULE=XIM
export XIM_ARGS=""

还有几个什么什么的。全部改成fcitx,然后加入到/etc/profile里面最方便了,然后再x里面启动fcitx就可以输入中文了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-8 17:30:52 | 显示全部楼层
Post by jarryson
export XMODIFIERS="@im=fcitx"
export XIM="fcitx"
export QT_IM_MODULE=XIM
export GTK_IM_MODULE=XIM
export XIM_ARGS=""

还有几个什么什么的。全部改成fcitx,然后加入到/etc/profile里面最方便了,然后再x里面启动fcitx就可以输入中文了

说的有道理,放在/etc/profile, 变成系统整体设置算了。
于是,我就把下面的内容放到了/etc/profile中。
export LANG="en_US.utf8"
export LC_CTYPE="zh_CN.utf8"
export XMODIFIERS="@im=fcitx"
export XIM="fcitx"
export QT_IM_MODULE=XIM
export GTK_IM_MODULE=XIM
export XIM_ARGS=""
结果,fcitx还真能激活了。至此,已经可以看出slim太自以为是了,只认全局locale设置,却忽略了单个用户的locale设置。如果全局的locale不设,只是单个用户的locale分别设置,而且执行locale显示也正确,这也不行。 真不知道程序是怎么写的,这也能做到?!

看来slim的scripit或是/etc/slim.conf要有修改。
回复 支持 反对

使用道具 举报

发表于 2010-4-25 16:42:28 | 显示全部楼层
Post by nainaide;1764683
export XMODIFIERS="@im=fcitx"
export XIM=fcitx
export XIM_PROGRAM=fcitx
fcitx -d
exec startfluxbox

exec startfluxbox放后边?
回复 支持 反对

使用道具 举报

发表于 2010-4-25 19:57:36 | 显示全部楼层
我不理解你为什么要用exec fcitx -d
要知道exec <app>是会执行<app>,并当<app>结束/返回 之后直接结束脚本的执行。
这就是为什么.xinitrc里面只能有一条exec <xxx>的原因(还必须放在最后)。

而且执行fcitx,用最简单的写法
fcitx -d
不就可以了吗(不过我一般用fcitx &)。
.xinitrc不过是个shell脚本而已。
所以你在第5贴里面说的情况(1)再正常不过了。
--------------------------------------------------
第7贴的情况,我有些疑惑。以前曾经碰到过因为slim导致fcitx无法激活的问题并在linuxsir.cn发过贴询问,得到的答复是因为系统启动顺序的问题。我想并不是什么slim认不认吧?
回复 支持 反对

使用道具 举报

发表于 2010-4-25 21:01:53 | 显示全部楼层
樓主啊,你说的问题都能解决,关键就在于 /etc/slim.conf 的配置~~~多看看吧~~
回复 支持 反对

使用道具 举报

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

本版积分规则

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