|
|
适合懒人的美化过程——我的 redhat/fedora 工作站
本文遵循 GNU FDL,仅正文部分可自由修改,重发布时正文之外的部分必须同时原样发布。作者对误读的后果表示不负责。
正文开始
安装好系统之后,通常是漫长的设置过程。这个过程会持续多久?也就是说,在真正地开始写程序、上网、听歌看电影之前,需要有多少时间花费在设置过程中?假如这个时间长达几天甚至最后不得不从头做起,那么这个系统给我们带来的只是折磨而不是享受。反过来说,即使按照这篇文章来做,依然觉得是折磨的话,那么就让自己相信:生活就像被强奸,如果不能反抗,就闭上眼享受吧。不过,使用一个简单的系统并不等于自虐,简单有时才是美。
安装系统时,大多数人会选择 gnome 因为这毕竟是 fedora/redhat 的默认桌面。另外会有不同的要求,比如开发工具,文本处理,排版工具等等需求。我们的内容,就从刚装好包含 gnome 的系统开始,假设这个系统已经可以正常运转。而我们的原则,是尽可能保持系统原状,采用 “加法” 来实现自己的设置,使自己的设置不被后来的软件包升级覆盖掉。
首先做的事情,是更新系统配置。这是一切工作的前提。最好的办法,是用一些准备好的配置文件,而不是自己手动去改那些配置。尽管简单,但是却无法重复,容易忘记。在这里要更新的,是三个配置文件:storage-policy.fdi, local.conf 还有 .bashrc
第一个文件 /usr/share/hal/fdi/95userpolicy/storage-policy.fdi 的内容如下
- <?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
- <deviceinfo version="0.2">
- <device>
- <match key="block.is_volume" bool="true">
- <match key="volume.fsusage" string="filesystem">
- <match key="volume.fstype" string="vfat">
- <merge key="volume.policy.mount_option.fmask=111" type="bool">true</merge>
- <merge key="volume.policy.mount_option.dmask=0" type="bool">true</merge>
- <merge key="volume.policy.mount_option.users" type="bool">true</merge>
- <merge key="volume.policy.mount_option.utf8" type="bool">true</merge>
- </match>
- </match>
- </match>
- </device>
- </deviceinfo>
复制代码
然后运行 service haldaemon restart 来重新读取配置。这个配置文件的作用是设置自动挂载 vfat 文件系统时,使用的默认选项。众所周知,fc3 中挂载 vfat 文件系统时,必须使用 mount -o utf8 命令选项,否则系统会挂起。详情查看这里
第二个配置文件 /etc/fonts/local.conf 的内容是这样
$HOME/.fonts.conf 的内容是这样。与单个字体有关的定制全部放到了这里,当然也可以合并到 local.conf 中,或者在 local.conf 中再次 include,但是放在个人目录下的配置文件可以方便普通用户定制。
- <?xml version="1.0"?>
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
- <!-- /etc/fonts/local.conf file for local customizations -->
- <fontconfig>
- <match>
- <test target="pattern" name="weight" compare="more">
- <const>medium</const>
- </test>
- <test name="family" compare="eq">
- <string>DongWen--Song</string>
- </test>
- <edit target="name" name="family" mode="assign">
- <string>FZHei-B01</string>
- <string>FZHeiTi</string>
- <string>FZHei-B01_GB18030</string>
- </edit>
- </match>
- <match target="font">
- <test name="family" compare="eq">
- <string>FZHei-B01</string>
- <string>FZHeiTi</string>
- <string>FZHei-B01_GB18030</string>
- </test>
- <test name="pixelsize" compare="less_eq">
- <double>10</double>
- </test>
- <edit name="hinting" mode="assign">
- <bool>true</bool>
- </edit>
- <edit name="autohint" mode="assign">
- <bool>false</bool>
- </edit>
- <edit name="antialias" mode="assign">
- <bool>false</bool>
- </edit>
- </match>
- <!-- from kanker, don't know why -->
- <match target="pattern">
- <test name="family">
- <string>Tahoma</string>
- </test>
- <edit name="family" mode="append" binding="strong">
- <string>SimSun</string>
- </edit>
- </match>
-
- <match target="pattern" >
- <test compare="eq" name="family" qual="any" >
- <string>AR PL KaitiM GB</string>
- </test>
- <edit mode="prepend_first" binding="strong" name="family" >
- <string>Bitstream Vera Sans</string>
- </edit>
- </match>
-
- <match target="pattern" >
- <test compare="eq" name="family" qual="any" >
- <string>AR PL Mingti2L GB</string>
- </test>
- <edit mode="prepend_first" binding="strong" name="family" >
- <string>Bitstream Vera Serif</string>
- </edit>
- </match>
- <match target="pattern" >
- <test compare="eq" name="family" qual="any" >
- <string>AR PL KaitiM Big5</string>
- </test>
- <edit mode="prepend_first" binding="strong" name="family" >
- <string>Bitstream Vera Sans</string>
- </edit>
- </match>
- <match target="pattern" >
- <test compare="eq" name="family" qual="any" >
- <string>AR PL Mingti2L Big5</string>
- </test>
- <edit mode="prepend_first" binding="strong" name="family" >
- <string>Bitstream Vera Serif</string>
- </edit>
- </match>
- <!-- bingding Bitstream Vera Sans Mono to monospace -->
- <!--match target="pattern" >
- <test name="family" qual="any" >
- <string>monospace</string>
- </test>
- <edit mode="append" binding="strong" name="family" >
- <string>Bitstream Vera Sans Mono</string>
- </edit>
-
- </match-->
- </fontconfig>
复制代码
然后将 windows 的字体 simsun.ttc 复制到 /usr/share/fonts/zh_CN/TrueType 目录,将 windows 的字体 arial* 复制到 /usr/share/fonts/local/truetype 目录。最后,执行 fc-cache -fv,注销并重新登录图形界面。
这个配置文件设置了替换字体。要是喜欢 Verdana 或者 Tahoma 这些字体的话,可以修改这个文件并复制那些字体到 /usr/sahre/fonts/local/truetype 目录。当你升级 fontconfig 时,这个文件不会被覆盖掉。
* 安装 firefly 的 libXft 等软件包来配置字体实在太麻烦了,并且在软件包升级时 apt-get 会提示出错,所以放弃粗体效果
* 配置 fonts.dir 和 gtkrc 那些内容实在是太麻烦了,应该把硬盘上所有基于 gtk-1.2 的程序统统删掉!
第三个配置文件纯属娱乐。gedit $HOME/.bashrc,添加这样几行。别担心,添加到文件最后就可以了。这样会有一些视觉效果 ^_^
export PS1="[\[\033[36m\]\u\[\033[34m\]@\h \[\033[m\]\W]\[\033[31m\]\\$\[\033[m\] "
#alias ai='apt-get install'
#alias au='apt-get update'
alias ai='yum install'
alias au='yum check-update'
alias emacs='emacs -nw'
alias updmap='updmap-sys'
alias cce='cce -filter utf8 -sdl'
alias eclipse='' # 绝对不能以 root 身份运行 eclipse
alias mm='make -C /lib/modules/`uname -r`/build M=`pwd` modules'
第一行的意思,是将 bash 命令行提示符设置成彩色的。接下来的两行是定义别名,这样用 ai 命令就可以代表后面长串的命令。
如果是 csh 想实现彩色提示符的效果,应该在 $HOME/.cshrc 中这样写
- if ($?prompt && $?tcsh) then
- set title=""
- if ( $?term ) then
- switch ( $term )
- case "xterm*":
- case "rxvt":
- case "dtterm":
- set title="%{\e]0;[ %n@%m %.0 ]\007%}"
- breaksw
- default:
- set title=""
- breaksw
- endsw
- endif
- set prompt="$title"'[%{\e[1;31m%}%B%n%b%{\e[m\e[34m%}@%m %{\e[m\e[1m%}%.%{\e[m%}]%{\e[36m%}\$%{\e[m%} '
- unset title
- endif
复制代码
假如愿意,还可以修改第四个第五个配置文件,比如在 /boot/grub/grub.conf 中,把 rhgb 删掉,加上 vga=792 quiet 等等参数;还有设置 /etc/asound.conf 来实现多音频等等 (参见 使用 dmix 轻松实现多音频流)。
配置修改完毕,应该是安装软件的时候了。应该使用 apt-get 来安装软件,那样最省心省力。所以先去 http://apt.freshrpms.net 下载合适的版本,安装。然后,运行 apt-get update 来获取最新的软件包列表 (如果自带的仓库不够用,可以到这里来精挑细选几个软件仓库,同时还可以看到 apt-get 的帮助文档)。
接下来万事俱备,安装什么呢……先运行 apt-get -V dist-upgrade 看一看。漫长的计算之后,apt 会提示很多东西。按 n 或者 ctrl-c 退出执行,然后慢慢看提示的内容。虽然可以升级的软件包很多,但是有价值的并不多。想装什么,就运行 ai 好了,比如 ai udev 然后就是等待 (漫长的) 下载和安装过程。或者,ai mplayer ——不过这次等待的时间会稍长一点,因为要装的东西实在太多了。
下载还没有结束,可以先去做些别的。比如,设置一下默认的字体。通常,字体应当设置为某个英文字体而不是直接使用宋体,这样会显得好看一些。标题栏用小一号的粗斜体也会比较好看,桌面用手写体或者 Comic Sans MS 会很卡通。浏览器中字体的设置也是同样的原则,首先选择要设置的语言为简体中文,然后设置各项为某个英文字体。我个人喜欢默认使用 sans serif,而 sans serif 默认使用 Arial。monospace 的设置总是 Courier 10 Pitch 因为实在太好看了。
还有些细节的设置。使用 gconf-editor 可以修改一些软件设置,比如让 gedit 自动探测文档编码,这样打开 GB* 编码的文档时就不会乱码,可以找到 apps->gedit-2->preferences->encodings->auto_detected ,双击就可以修改,添加几个值比如 “GB2312” 等等。也可以在终端下用命令- gconftool-2 --get /apps/gedit-2/preferences/encodings/auto_detected
- gconftool-2 --get /apps/gedit-2/preferences/encodings/shown_in_menu
复制代码 来查看原来的值,如果不包含 GB2312 就用命令- gconftool-2 --set /apps/gedit-2/preferences/encodings/auto_detected '[CURRENT,UTF-8,GB2312,ISO-8859-15]' --type list --list-type string
- gconftool-2 --set /apps/gedit-2/preferences/encodings/shown_in_menu '[GB2312,ISO-8859-15]' --type list --list-type string
复制代码 来修改。修改之后记住再用第一个命令看看修改后的值对不对。我喜欢做的设置还有让 gnome-terminal 全屏,只要找到 apps->gnome-terminal->keybindings->full_screen ,双击进行修改,选择 “String” 类型,填上 <Ctrl><Shift>f 就可以了。用命令的话,是- gconftool-2 --get /apps/gnome-terminal/keybindings/full_screen
- gconftool-2 --set /apps/gnome-terminal/keybindings/full_screen '<Ctrl><Shift>f' --type string
复制代码 这些设置是即时生效的。
ai —— apt-get install 还在运行,可能还要好一阵子。网络通常并不是那么太好。可能你的机器连网络都没有,这时候不如考虑一下系统中还缺什么。我的系统中常用的,需要额外下载的软件包只有不多几个:bmp, openq, stardict, qterm,scim,java, realplay。这些软件包的下载地址都很好找,并且都提供了 rpm 的下载。
之所以使用 bmp 是因为它的界面很漂亮,尤其是添加曲目的时候很人性化,并且可以通过设置 ID3tag 的编码为 GB2312 来避免界面乱码。安装时最好使用 apt-get,也就是这样 ai bmp bmp-mp3 就可以了。再一次需要下载很多软件包。
之所以使用 scim 是因为它自动设置了所有内容,而不必用户干预。只要下载 scim 和 scim-pinyin 装上就可以了。当然,使用 fcitx 也很简单,按照这里的说法,只要这样
mkdir $HOME/.xinput.d
cat > $HOME/.xinput.d/default
XIM=fcitx
XIM_PROGRAM=fcitx
按 ctrl-d 结束编辑。这样做是在个人目录中新建了一个文件,记录默认输入法的个人设置。等到下次注销并重新登录图形界面,输入法就可以用了。即使是默认语言是英文,这些输入法也会默认启动。多谢几位大侠们的好输入法!不过对于 fcitx,可能还要修改界面字体:gedit $HOME/.fcitx/config
安装 java 的时候,如果用 sun 的 jre,那么最好去这里一趟,去下载 java-1.4.2-sun-compat-1.4.2.06-1jpp 这个软件包。它会自动设置整个 java 环境。不过,最好动动手把 jpackage.org 加入 apt 仓库列表,因为这里还有很多非常诱人的软件,包括 ant, antlr, tomcat, jboss, commons-*, eclipse 等等。
用 ai gxine 安装基于 xine-lib 的播放器也很不错。不过,应当到 http://mplayerhq.hu 去下载 解码器的压缩包,解压后放在 /usr/local/lib/codecs 目录,再用 ln -s /usr/local/lib/codecs /usr/lib/win32 创建一个链接。比较好的播放器还有 totem-xine 和 kaffeine,前者可以用 ai 来装,后者仍然需要 ai xine-lib-devel 然后从源码编译。如果想体验 muine 播放器,就得添加新的软件仓库,并且 ai muine 时需要下载非常多的软件包。这些我都装上了,但是时常的升级让人不知所措。
基本上我的系统就配置完成了。假如手头准备好了所有软件,不必再去下载,那么这样的配置过程会非常快。BTW,因为默认的窗口边框,控件风格,桌面图标等等都很适合我的口味,所以我一概懒得换掉。这也是不使用 KDE 的原因,KDE 太晃眼了,而很多配置选项也让人心烦。在《人本界面》中提到,定制并不一定能提高效率。心里喜欢才是最好的。
简单的测试
* service haldaemon restart 之后,插入一个vfat格式的带有中文文件名的优盘试一试,应该不会挂起了。运行 mount 会看到自动挂载的选项,应该包含 fmask=111, dmask=0, utf8 等内容
* 假如使用的是 windows 的 simsun.ttc,那么在 fc-cache -fv 之后,运行 fc-list |grep SimSun 会得到两行输出,一个是 SimSun 另一个是 NSimSun
* 修改了 .bashrc 之后,注销并重新登录,会看到提示符变成彩色。运行 ai 不会报错。
* 安装了 jpackage 的 java-1.4.2-compat 之后,运行 alternatives --config java 会提示当前使用的 java 是哪一个。也可以执行 java -version 查看当前的 JVM 版本
可能的问题
* 自动挂载不起作用,可能是没有重新读入配置。检查配置文件中有没有拼写错误,然后重启机器,也许重启之后就好了
* fc-list |grep SimSun 什么都找不到,可能是 Simsun 或者是 simsun 吧……
* 输入法没有启动,手动运行 /etc/X11/xinit/xinitrc.d/xinput.sh 看看是不是能启动输入法
可重复性
修改 $HOME/.bashrc 时的操作不可重复?
gconf-editor 为 gedit 添加自动识别的编码时的操作不可重复?
相容性
不要修改 locale
不要在 $HOME/.bashrc 中设置 locale 或者输入法,否则会出错
不必卸载 libgcj 的 placeholder,不必卸载 iiimf
如果使用个人设置,安装了 fcitx 输入法并建立了配置 $HOME/.xinput.d/default,那么其他输入法将不起作用
卸载回退
如果新建/复制了配置文件或字体文件,只要简单地删除,包括 /etc/fonts/local.conf
对 $HOME/.bashrc 的修改可以注释掉,也可以删掉那几行
使用 apt-get 或 ai 命令安装的软件可以通过 apt-get remove 删除
其他软件可以通过 rpm -e 删除
gnome 及 firefox 字体设置可以再次全部设置为 sans, serif 和 monospace 并取消各种效果
使用 gconf-editor 作出的改动可以通过同样途径恢复
影响
也许在全部回退后,能恢复到原始状态
正文结束
后记
因为看大家的美化过程都比较麻烦,想起来见过一篇 “懒人的……”,于是也用用这个题目,把我自己的经历写出来。内容不会很完整,大家还想知道什么可以跟帖,我会及时更新或解释为什么没有这样做。
update:
在 fc4 中,中文 ttf 字体目录变为 /usr/share/fonts/chinese/TrueType
update 20050524:
更新了 $HOME/.bashrc 来让 ai 和 au 使用 yum 而不是 apt
根据 firefly, versace, kanker 几位的 fonts.conf 重新写了一下 local.conf
* 明确指定默认的字体样式,然后再限制各种情况
* 将特定字体的设置移动到 $HOME/.fonts.conf,当然也可以合并到一起
实际效果与以前没有区别,但是维护会简单点。想要效果更好,使用特殊的 libXft, freetype 和 fontconfig
update 20050525:
对于 gedit 和 gnome-terminal 的设置,可以用 gconftool 命令进行,便于添加到美化包里面
- |
|