我使用过的 Linux 发行版,没有一个能够装上之后没有一点问题的。从 Red Hat 6.0 , Red Hat 7.2 , Red Hat 8.3 到 Fedora 4.0 。 还有 Debian 3.1a4 。 总的来说是越来越 好了。这也是 Linux 桌面发展的一个重要的障碍。
Debian 3.1a4 的问题是不能显示中文,我是指安装后,默认不能显示中文,我已经厌倦修 改 Fonts.alias 之类的文件了。中文输入是 Chinput ,也是一般般。
Fedora 4.0 还是很不错,但是我发觉他渐渐远离了自由软件的风格了。
默认的中文配置是 zh_CN.UTF-8 ,尽管 Unicode (字符集标准) , UTF-8 ( 对应的编码方 案) 和 GB2312 , GBK 有很优点,但是由于历史原因,这些 GB2312 编码的文件太多了,没 有办法很容易的过度到 Unicode/UTF-8 上。
- 表示中文时, UTF-8 编码 比 GB2312/GBK 占用多一个字节。 UTF-8 是可变长编码方案,最 多会用 6 个字节表示一个 Unicode 字符。
- UTF-8 和 GB2312 对 ASCII 的支持都很好。
- Unicode 理论上可以表示 2^32 个字符, 而 GB2312 只能表示 6000 多个字符, GBK 增加了一些,但是还远远不能和 Unicode 相比。 这也是 UTF-8 编码效率不高的原因,因 为 UTF-8 要表示更多的字符。
- Unicode 支持多国语言同时表示。 GB2312/GBK 不能。
- 使用 GB2312 的历史太长了,远远超过了 UTF-8 的编码,人们交换信息时,大量使用 GB2312 。 Unicode 和 GB2312 不兼容,这是 Unicode 在中文环境中普及的一个重要障碍。
- GB2312 一些常用汉字按照读音排序,但是 Unicode 没有发现什么排序方式。
再说我使用 Fedora 4.0 的遭遇。
安装完毕之后,发现默认的 iiim 系列输入法在非 gnome 的程序上表现很糟糕,提示窗口 很乱。例如 Emacs 。而且默认输入法采用 UTF-8 编码, 严重影响使用。
于是用 system-config-service 卸掉了 iiim service 安装了 fcitx ,还不错, Emacs 可以正常工作了,但是不会这么顺利, gnome 的程序还是不能正常工作。经过一阵折腾,发现 所有了 gnome 程序能够接受用户输入文本信息的 widget 都可以点击右键,然后选择输入 法, 但是默认总是 iiim ,查找帮助文件总是找不到相关的,怎么让默认使用 X 输入法 呢? 后来发现
ps -e | grep iiim
存在两个 iiim 相关的进程, 于是
ps -e | grep iiim | awk '{print $1}' | xargs kill
kill 所有 iiim 相关的进程,于是 gnome 程序就可以使用 fcitx 输入法了。
问题还是没有完全解决,因为每次起动都要 kill 进程是很不好的解决方案。 于是
pstree
这样查找到 这些进程的父进程是 Xsession ,
插入一段,我不喜欢 gdm ,原来的 xdm 就很好了,通过阅读 /etc/X11/prefdm ,发现 改变 /etc/sysconfig/desktop 如下
DESKTOP="GNOME" DISPLAYMANAGER="XDM"
这样就可以使用 xdm 。
我喜欢 xdm 的一个原因就是我曾经看过 xdm 的启动流程,他可以根据用户 HOME 目录下的 .xsession 启动用户自定义的 session ,也就是说,不用更改系统配置,用户也可以拥有 很灵活的配置权利。
我可以在 .xsession 中做出很多选择,
#配置使用语言 export LC_ALL=zh_CN.GBK #启动 gnome #gome-session #启动 kde #startkde #启动 fctix fcitx & gnome-terminal #anythong else you want to do.
事实上,我不喜欢 KDE ,也不喜欢 gnome ,因为我的机器很旧,很慢,我不象运行我用不 到的程序,我想我可以判断那些是我需要的,我想让我的 CPU , Memory 用在刀刃上。但是 我还是安装 KDE 和 GNOME ,因为有些程序还是非常好用的。
还是回到 iiim 的问题上,iiim-x 由 Xsession 启动的,于是我搜索 Xsession ,发现 只要修改 /etc/X11/xinit/xinput.d/zh_CN 如下就可以了
#XIM=iiimx #XIM_PROGRAM=iiimx #GTK_IM_MODULE=iiim #gnome-im-settings-daemon >/dev/null #QT_IM_MODULE=iiimqcf
我是怎么找到的呢?其实我觉得搞明白 Xsession 是一件很麻烦的事情,我认为关于系统 配置的问题,应该可以做的更简单的。
find /etc | xargs grep iiim
这样发现 /etc/X11/xinit/xinput.d/zh_CN 这个名字还是很容易让人联想到修改输入法的。
有些东西做的这么复杂,也许有 red hat 自己的道理。但是如果把目标降低一些就会可以 更加简单的解决问题,例如
- 不要让一个发行版本支持所有的语言。这样也许会增加维护各种语言的发行版本的工作。