Saturday, August 16, 2008

FreeBSD|后期的设置

FreeBSD后期的设置 - 修齐治平 - by nilarcs

FreeBSD后期的设置

Saturday, 31. December 2005, 09:11:26

后期设置主要说两个问题,一个是汉字显示,一个是输入法。

一 汉字显示

汉字显示主要是字体的问题,这里我使用文泉驿,因为它已经能够满足我的要求。

去文泉驿主页(http://wqy.sourceforge.net/cgi-bin/index.cgi)下载点阵字体,照说明安装设置,基本上中文界面就没有问题了。(当然KDE的中文包还是要装的)

-------------------------------------
1、2 下载解压

3.移动

所有的文件都将被解压缩到目录./WenQuanYi,您需要把这个目录移动到您想安装字体的目录,一个比较好的建议是/usr/share/fonts/Chinese/WenQuanYi。

为了移动目录,您需要使用"su"或者"sudo"来获取root权限。(如果您没有root权限,请查看章节II.6)

4.设置字体路径

现在您需要告诉窗口系统去找所安装的字体,假设您把字体安装到了这个目录 /usr/share/fonts/Chinese/WenQuanYi/ 您需要运行如下的命令:

cd /usr/share/fonts/Chinese/WenQuanYi/Bitmap/
mkfontdir
cp fonts.dir fonts.scale
xset +fp /usr/share/fonts/Chinese/WenQuanYi/Bitmap/

最后一个命令是把字体目录添加到窗口字体路径列表,为了永久性的添加这个目录,您需要把如下一行 "/usr/share/fonts/Chinese/WenQuanYi/Bitmap," 添加到/etc/X11/XF86Config-4这个文件,添加的位置是 "catalogue =/usr/lib/X11/fonts/misc/"这一行的下面。

大多数不太老版本的Linux图形程序都支持fontconfig,为了让fontconfig使用这个点阵字体,您需要执行

fc-cache -f -v

如果您在系统里面安装过中文矢量字体,那么这个新安装的字体可能不能自动的被使用,您可以从preference\font选项里面设置,或者临时删除您的矢量字体,从而激活这个点阵。我们正在为如何在fontconfig解决方案下面同时使用点阵字体和已有的矢量字体而工作。

5.测试

为了检测字体是否成功安装,可以使用下面的命令

xset q

应该会显示字体的正确路径。另外

/usr/X11R6/bin/xlsfonts | grep wenquanyi

将会输出类似下面的输出:

-wenquanyi-wenquanyi bitmap song-bold-r-normal--0-0-75-75-p-0-iso10646-1
-wenquanyi-wenquanyi bitmap song-bold-r-normal--12-120-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-bold-r-normal--13-130-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-bold-r-normal--15-150-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-bold-r-normal--16-160-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-medium-r-normal--0-0-75-75-p-0-iso10646-1
-wenquanyi-wenquanyi bitmap song-medium-r-normal--12-120-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-medium-r-normal--13-130-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-medium-r-normal--15-150-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-medium-r-normal--16-160-75-75-p-80-iso10646-1

如果是fontconfig,您需要执行

fc-list | grep 'WenQuanYi'

应该能看到输出两行以"WenQuanYi Bitmap Song"开始的提示。类似如下:

WenQuanYi Bitmap Song:style=Bold
WenQuanYi Bitmap Song:style=Regular

6.作为普通用户安装

如果您没有root用户权限,比如,您使用的是公共的机器,那么安装这个字体也是很简单的,如果您使用的是KDE,在菜单上面找到"控制中心",选择"系统管理",然后点击"安装字体",在面板上点击右键,选择"添加字体",然后选择字体文件(bdf/pcf.gz)。

如果您使用的是Gnome环境,双击"我的电脑",在地址栏输入"fonts:/"然后回车,然后再打开另外一个文件浏览器,找到字体文件(bdf/pcf.gz),把字体拖到文件夹fonts:/ 或者使用复制粘贴。

如果您没有启动图形界面,您也可以直接把字体文件解压缩到~/.fonts目录(如果没有这个目录,就创建一个,然后确认您已经安装了fontconfig)。

7:在您的系统上面打开中文支持

为了正确地显示这个字体,您的系统需要支持中文,您可以加入这一行

LC_CTYPE=zh_CN.UTF-8

到~/.i18n目录,然后重新启动您的系统(您也可以使用"ls -d /usr/lib/locale/zh_*" 这个命令所输出的其它的locales)。

为了在终端显示中文信息,可以使用"LC_CTYPE"替换"LC_ALL",如果您希望所有的菜单都使用中文,在KDE环境下面,找到"控制中心",展开"Region and Assistance",找到 "国家/地区 和语言,在"添加语言里面选择"中国";如果您使用的是Gnome环境,您需要在"选项"里面选择"语言",然后添加"中国"。然后如果需要的话重新启动您的图形界面来使用这些设置。

8:其他问题

由于debian 3.1(sarge)及其更新版本在默认的情况下不使用纯粹的点阵字体,如果您是debian用户,请到/etc/fonts/conf.d/ 这个目录下面有一个链接文件,默认的情况下只有一个,请unlink掉,这样就可以使用纯粹的点阵字体了,比如文泉驿点阵宋体。

如果你的自己编译安装的 fontconfig, 以及其他发行版,请检查 /etc/fonts/ 以及子目录 conf.d 中的配置文件, 把如下的配置内容注释或删除掉,如果不删除的话,fontconf 是不会去识别文泉驿点阵字体的。
-------------------------------------
6和8没太用到,7我使用KDE,当然那个.i18n的文件我还是建立了。此外可能还需要把/usr/X11R6/etc/fonts/fonts.conf改一下,具体改法网上很多可以参考一下。主要是加入<family>WenQuanYi Bitmap Song</family>。

至此,中文显示应该算是解决了。


二、输入法问题

1、我选用fcitx,安装很简单,make install clean就好了。设置稍微有点麻烦,fcitx本身的设置很简单,但随系统自动启动费了很多力气,因为我用kde,网上的很多文章似乎是用startx来启动的。

fcitx本身的设置,主要是字体,中文设置成WenQuanYi Bitmap Song,至于其它的设置看个人了。

2、要启动fcitx还需要设置几个变量,位置很多,有在个人家目录的,有在系统目录的。我选择系统目录。我用bash,所以打开/etc/profile文件,加入以下几句
----------------------------
LANG=zh_CN.UTF-8
LC_CTYPE=zh_CN.UTF-8
export LANG LC_CTYPE
export XMODIFIERS='@im=fcitx'
----------------------------
此时重新登陆,在console下输入fcitx & 应该就能够使用了

3、我想让它随系统启动就自动运行,网上看了很多,但都不起作用。(如加在.xinitrc.xsession中。我使用KDM来登陆,它好象不读取这些文件)。后来看了kdmrc文件,明白了一些设置。然后又google到了kdm的帮助文件,看了看有点明白了。修改/usr/local/share/config/kdm/kdmrc中Language为zh_CN.UTF-8,这样kdm界面是中文了。

下面是启动脚本,kdmrc中有说它调用了哪个脚本,其实就是同目录下的Xsession。在脚本的最后显示了KDM界面上session选择中的几个类型,custom、failsafe、default和*(其它的session)。
a、试着在default中加入了fcitx&,结果default可以了,第一种方法成功。
b、custom调用了家目录下的.xsession文件,所以我想在.xsession中写入fcitx&应该也可以成功,初试不成功,想想似乎有哪里不对。突然想到我建立了一个普通文件,没有给执行的权限,随即chmod +x .xsession,再试果然成功,第二种方法又成功了。
c、对于一般的session(如KDE),它是由kde.desktop这样的文件控制,位置在/usr/local/share/apps/kdm/sessions下。所以对于新安装的window manager,如果KDM的session中没有支持,自己完全可以新建一个。打开kde.desktop文件,很容易看到Exec=指定了要执行的程序或脚本,试着直接添加fcitx&,结果不行.。看kdm的帮助文档说,desktop似乎也支持default、custom等'magic',但我不懂bash编程,不走这条路。马上想到自己建立一个脚本。就在/usr/local/bin下面建一个脚本,名字随意,就写两行
-------------
fcitx &
startkde
-------------
然后给它执行的权限。再把kde.desktop文件中的Exec=指向刚才建立的文件,TryExec=就不变了。这样即使Exec失败了,也不影响启动。一试成功了,第三种方法也有效。


网上的文档只能做为参考,有的可能比较老,或是和自己的情况不符,不要过多的依赖。很多时候需要看官方的帮助文档,结合自己的实际情况,找到解决问题的方法。

No comments: