在/etc/inittab中设定init:5(使用gdm登录)和使用startx登录图形界面看起来差不多,其实差别挺大的。最主要的差别就是语系。你可能发现你设定的环境是中文的,但是startx后系统桌面环境变成英文的了,并且输入法也调不出来了。
先说下init 5跟startx启动流程的区别:
在init 5的模式下,系统会执行/etc/X11目录下的prefdm文件,这是一个script文件,打开看看可以知道,它是用来判断当前的Desktop Manager(桌面系统)的,如gnome还是kde或是其他的。如果都没有找到,那么prefdm会依序执行gdm,kdm,wdm和xdm这几个Display Manager(显示管理器)。也就是说咱们的fedora默认的Display Manager是gdm。
which gdm,发现gdm在/usr/sbin/下,file gdm发现是它也是一个script文件,重点就是这里了,打开看看,可以看到在gdm中加载了LC_ALL,LANG, LC_MESSAGES这几个环境变量,从名字可以看出这几个就是语系的信息了,在设定好语系后gdm调用gdm-binary程序。当gdm-binary开始执行时,首先使用的就是gdmgreeter登录程序,到现在就可以看到咱们熟悉的登录界面了。输入用户名密码进入桌面环境。
再来看使用startx登录图形界面,其实startx也是一个script文件,主要负责加载和设定一些环境变量,最后执行xinit程序,xinit才是真正的x window启动程序,在startx的执行过程中,不会经过gdm的步骤,所以就没有了语系的定义,也不会有gdmgreeter的登录窗口界面。故而直接startx后是不用输入用户名密码的,直接以当前用进入xwindow,当然,环境是默认的,English。
知道了这些就好办了。咱们用startx登录的fvwm的时候,是创建了一个~/.xinitrc文件,在里边写上exec fvwm,那如果要在fvwm中调用中文输入法和定义变量什么的,在这个语句之前写上就OK了。我的.xinitrc文件如下:
export LANGUAGE=zh_CN.UTF-8
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE=SCIM
exec scim&
exec fvwm
重新使用startx进入fvwm,打开gnome-terminal,看看,是不是已经可以输入中文了?OK!
---本文为原创内容,如需转载,请注明来源和作者姓名。
阅读(3273) | 评论(0) | 转发(0) |