感受 Fedora 4.0

我使用过的 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 自己的道理。但是如果把目标降低一些就会可以 更加简单的解决问题,例如

- 不要让一个发行版本支持所有的语言。这样也许会增加维护各种语言的发行版本的工作。