+ -
当前位置:首页 → 问答吧 → 分析HIWEED X系统设置的一点心得

分析HIWEED X系统设置的一点心得

时间:2005-04-01

来源:互联网

今天才安装的HIWEED DEBIAN 0.6。

HIWEED0.6中把所有的运行级中都设置成了进入图形登陆界面xdm。
我不喜欢这样,所以把/etc/rc2.d/目录下的xdm删除,这样默认启动的时候(默认的运行级为2)是进入的字符界面,然后再startx,这时发现输不了中文。 :ask

我敲locale,发现全都是POSIX。这样子怎么能输中文呢。然后查/etc/environment 居然没有这个文件。

所以我开始想hiweed0.6是怎么设置locale和输入法的。

我又运行xdm,然后再进X WINDOW,这是的locale却仍然是zh_CN.UTF-8,SCIM使用很正常。

这下我想原因肯定是在xdm这个脚本中。
/etc/init.d/xdm,这个是启动时调用的xdm脚本,它跟命令敲的xdm不是一回事。
可以用这样的命令来启动和关闭xdm:
cd /etc/init.d
./xdm start
./xdm stop

通过man xdm发现xdm的配置文件在这里:
/usr/X11R6/lib/X11/xdm/ 这个目录是个链接,真正的目录在/etx/X11/xdm目录下面。
从文件的修改时间可以看出:
xdm-config 和 Xresources 是hiweed自己改过了的。
其中Xresources定义了XDM的运行画面:
xlogin*logoFileName:这个变量定义的就是启动时那个HIWEED的标志,呵呵……,HIWEED把原来的debian.xpm改成了他的hiweed-logo.xpm,文件放在/usr/share/hiweed/下,里面还有一些东东。呵呵……,这就是hack一个系统的乐趣,跟RPG游戏中找宝物的感觉差不多。

但是这里没有发现有关locale的设置。
之后xdm调用的是/etc/X11/xsession这个脚本了

再查看/etc/X11/xsession脚本:
里面定义了指向相关配置文件的变量,我一个一个的看这些文件。
其中这个:SYSSESSIONDIR=/etc/X11/Xsession.d指向了一个目录。
一般以.d结尾的目录都是些很重要的配置目录。Xsession.d和init.d一样里面有很多的配置文件。

在这个目录下,通过对吧系统日期,我又一眼发现了HIWEED改过的文件:
/etc/X11/Xsession.d/95locales-xinput-set
呵呵,就是这个文件中定义了LANG XMODIFIERS 等等
代码:
export LANG=zh_CN.UTF-8
case "$LANG" in
zh_*)
export XMODIFIERS="@im=scim"
export GTK_IM_MODULE=scim
/usr/bin/fcitx&
export G_FILENAME_ENCODING=@locale
xscreensaver -no-splash &
;;
esac
可能大家早就知道了这个文件,但是我完全是一步一步摸索出来的,惭愧,没有好好学习,现在只好瞎摸,大家要有好的X WINDOWS启动配置的说明文件介绍我看看好吗?

目前我还是编辑了/etc/environment来实现startx也能用scim.

作者: dreamrise   发布时间: 2005-04-01

Hiweed 这样的目的是为了让字符下适用英文环境, 避免乱码
如果在字符下用中文 locale , 那就会乱码
就有人报怨了



以前的 Hiweed 在字符下也是中文 locale
于是很多人就报怨“字符下乱码”

作者: jhuangjiahua   发布时间: 2005-04-01

还有

只要你的 ~/ 下面没有 .xinitrc 文件
startx 就一样会执行
/etc/X11/Xsession.d/95locales-xinput-set


用不着修改默认 locale

作者: jhuangjiahua   发布时间: 2005-04-01

今天终于透彻的懂了一些X WINDOWS的配置。

另外一个问题,为什么系统知道去启动XFCE做为窗口管理器。
在这里面:
/etc/X11/Xsession.d/50xfree86-common_determine-startup


/usr/bin/x-session-manager 指向了xfce。

作者: dreamrise   发布时间: 2005-04-01

请楼主先看看 Debian 参考手册

里边全部都有

自己摸索精神可嘉,但是着实有点浪费时间

作者: jhuangjiahua   发布时间: 2005-04-01

引用:
作者: jhuangjiahua
Hiweed 这样的目的是为了让字符下适用英文环境, 避免乱码
如果在字符下用中文 locale , 那就会乱码
就有人报怨了



以前的 Hiweed 在字符下也是中文 locale
于是很多人就报怨“字符下乱码”
虽然没用过 Hiweed, 据我使用 debian 的经验,要在控制台不出现乱码,最好把所需 locale 写到 /etc/environment 下,如选 POSIX,保证控制台下是英文。

一个比较管用的方法是localeconf 来配,从而让 debconf 来管理你的 locale 配置 。

我很少用 kdm , gdm , xdm, 所以以上仅供参考。不过我不赞成到处修改配置而向用户隐瞒很多真相的做法,你能保证在以后的升级过程中不会出现问题么?

作者: quanliking   发布时间: 2005-04-01

不过楼主的帖子条理性很强啊,如果不是写了/修改了好几遍,真是要佩服一下了。

没事的时候自己摸索和没事的时候翻翻参考手册都是不错的,我想。

作者: big_sword   发布时间: 2005-04-01

摸索还是比直接看手册来的实在多。

作者: easyhappy   发布时间: 2005-04-01

我比较懒,本来准备发贴来问的,还好先search了一把。
现在把~/.initrc删除,就好了。
谢谢楼主以及各位了。

作者: noword   发布时间: 2005-04-12

看了这个,明白了不少,我以前也是象楼主这样去做,结果找不出来,呵呵

作者: YourLai   发布时间: 2005-04-12

噢!懂了不少.哈哈.好...

作者: budaodao   发布时间: 2005-04-12

楼主有空可去研究knoppix的一些自动脚本

作者: roadgo   发布时间: 2005-04-12

其实这个东东,debian是提供了指令让我们修改的,用update-alternatives --config x-session-manager 就会让我们选择默认进入哪个窗口管理器了,结果也是更改了链接,在参考文档的系统微调一节有讲
所以,建议为了维护方便,还是去读debian的参考文档,而读这些启动代码应该作为一项单独的“事业”来干。

作者: nwslustc   发布时间: 2005-04-13

引用:
作者: quanliking
虽然没用过 Hiweed, 据我使用 debian 的经验,要在控制台不出现乱码,最好把所需 locale 写到 /etc/environment 下,如选 POSIX,保证控制台下是英文。

一个比较管用的方法是localeconf 来配,从而让 debconf 来管理你的 locale 配置 。

我很少用 kdm , gdm , xdm, 所以以上仅供参考。不过我不赞成到处修改配置而向用户隐瞒很多真相的做法,你能保证在以后的升级过程中不会出现问题么?
当然要做不少修改,要不干嘛做个发行版出来呢?而那里能改,哪里不能改,我想hiweed都是经过不少的考虑的,debian官方也会建议我们在什么地方加入自己的脚本,而不会冲突,大家觉得晕的原因,还是因为没有好好读debian的参考文档:(

作者: nwslustc   发布时间: 2005-04-13

其实安装的时候出来个对话框,问一下用户,想不想用XDM,这样应该比较好吧。

作者: noword   发布时间: 2005-04-13