window.x:FreeBSD X Window下的中文环境

  Unix中文化对于Unix推广使用向是个难题对于象FreeBSD这样操作系统来讲中文化工作比较零乱虽然有不少X下中文软件Software但是由于国内软件Software发展水平还不高自由软件Software开发水平更是如此并且自由软件Software开发者的间也没有被有效组织起来因此还没有出现个很完整中文系统  然而中文相关软件Software却相当丰富在Ports Collection中个类别就是chinese专门收集中文相关处理软件Software但其中绝大多数是台湾BIG5 版本台湾在FreeBSD领域发展相当快很多软件Software都是先由台湾出现相应BIG5版本的后再出现GB版本

bash-2.02$ ls /usr/ports/chinese
CJK       big5fonts    gbfonts     nvi-big5    ted
CVS       c2t       gbscript    nvi-euc-cn   tin
Makefile    celvis     hc       nvi-euc-tw   xcin
README.html   cless      hztty      pine3
Wnn       cnsfonts    kcfonts     pine4
bg5ps      cxterm     lunar      pkg
big5con     gb2ps      mule-wnn4    rxvt
  

  • 中文X应用软件Software
  在X Window下使用中文基本条件的就是需要安装合适中文字库当前XFree86发行版本中带有些基本中文字库在系统安装选择X组件设置时需要将其包括在内然而中文存在区别编码方式使用区别编码应用就使用区别字体文件XFree86中提供中文字体对于另外些中文还是不够

  Packages Collection中chinese类别中也提供了其他些BIG5和GB 编码字体如gbfonts、kcfonts、big5fongs等软件Software包需要使用pkg_add命令将其安装入系统在真正执行中文X应用可以使用xlsfont命令可以查看系统中是否有相应字库如:

$ xlsfonts *gb*
-cc-song-medium-r-normal-jiantizi-0-0-75-75-c-0-gb2312.1980-0
-cc-song-medium-r-normal-jiantizi-40-400-75-75-c-400-gb2312.1980-0
-cc-song-medium-r-normal-jiantizi-48-480-75-75-c-480-gb2312.1980-0
-isas-fangsong ti-medium-r-normal--0-0-72-72-c-0-gb2312.1980-0
-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0
-isas-song ti-medium-r-normal--0-0-72-72-c-0-gb2312.1980-0
-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0
-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0
hanzigb16fs
hanzigb16st
hanzigb24st
  当个字体不存在但同时存在同样编码其他字体时候可以通过在 fonts.alias中定义别名思路方法来帮助解决这个问题

  除了Packages Collection提供字体的外从网络上也可以得到其他些中文字体在ftp://ftp.css.org站点中收集了很多自由或共享中文字体和中文软件Software

  • cxterm
  cxterm是个使用非常广泛中文X终端已经被移植到很多种类Unix系统中它已经被FreeBSD爱好者做成Packages因此安装起来非常简单cxterm支持GB、BIG5以及日、韩文等编码和多种输入法

  直接启动cxterm只能用于浏览中文而不能进行输入这是由于cxterm需要X系统些资源设置以使用快捷键切换区别输入法并根据设置寻找其输入法对应数据文件要输入中文必须进行设置将资源文件预先载入指定热键、输入法和输入字典所在目录cxterm软件Software包中提供了个缺省资源文件 CXterm.ad些使用者将这个文件中相应资源定义放入~/.Xdefault中用户登录进入X Window时就载入这些资源另外cxterm还提供了个shell脚本 ── CXterm可以在启动cxterm的前完成相应资源设置工作所以般应该 用如下CXterm命令来启动cxterm这种启动方式更为简易

  $ CXterm &

  在中文仿真终端下使用bash作为shell时会发现在命令行中无法输入中文这是bash对输入进行了额外处理可以在~/.bashrc中设置bash让其通过中文(另个可能原因为stty终端设置):

stty pass8
bind ' convert-meta off'
bind ' meta-flag _disibledevent=/usr/X11R6/lib/wrap.so
export LD_PRELOAD
chinput &
^D
$ cat ~/.xinitrc.orig >> ~/.xinitrc
  然而由于这些中文包装软件Software需要处理键盘以用于输入中文直接让包装软件Software接管窗口管理器就使得它也影响窗口键盘控制就使得些热键不能正常使用虽然通过包装KDE使KDE能显示中文菜单和中文提示但为了使用正常键盘操作还是推荐对每个需要中文能力软件Software分别进行包装而不要直接对窗口管理器进行包装

  所有这些中文包装库都比较新没有经过足够实战考验或测试因此存在问题是难免当包装了窗口管理器时如果包装库出现问题就可能造成X服务器键盘死锁对使用者操作没有反应然而此时系统并没有停止运行可以使用网络连接上去杀死X服务器更改包装设置

中文X服务器

  除了在X11级汉化以支持显示中文能力的外种使 X Window系统显示中文思路方法是在X服务器级进行汉化汉化X服务器就使得所有西文软件Software能正常显示中文当然它必须没有对8位进行特殊过滤处理并且由于是在服务器低层对中文进行支持因此速度和兼容性也很好XFree86汉化版本称为CXwin也是由台湾开发者首先进行开发当前移植到GB版本为CXwin 0.5

  为了安装CXwin必须重新编译X Server这样首先就要下载XFree86 服务器源展开后使用Patch命令打上CXwin补丁后重新编译X服务器最后才能生成针对区别硬件中文X服务器那么就可以使用CXwinX 服务器代替原有同样硬件X服务器在X Window下就能够正常显示中文了

  X服务器被放到/usr/X11R6/bin目录下例如S3显示卡对应X服务器为XF86_S3需要使用同名CXwin服务器替换原有除了标准 XFree86设置文件的外CXwin还使用配置文件/etc/X11/ChineseConfig来设置中文字体等设置般缺省设置文件就能满足正确显示中文要求由于CXWin是直接替换原有X服务器因此必须保证安装CXwin的前XFree86已经安装和设置正常了

  从显示效果来看CXwin 0.5有最佳显示效果会根据区别英文字体大小而选择对应大小中文字体因此除了有时由于汉字字体过大而使得字体被切去部分的外对于字体大小和间距处理最好然而中文输入还要依靠XA或Chinput因此最佳效果应该是使用CXwin用于基本显示XA 或Chinput用于包装某个应用提供中文输入并设置了中文为缺省语言KDE作桌面环境有了这些的后FreeBSD系统就具有了中文桌面操作环境基本中文处理能力了



  为了利用CXwin显示而不被包装软件Software截去中文显示能力最好使用不带中文显示能力xa(无CV代码)来管理中文输入此外Chinput也使用了多种区别大小字体来提供输出其显示效果也不错带CV能力xa 使用字体缩放技术来产生合适大小字体但字体缩放会消耗额外系统资源ZhXwin最简单适合简单浏览中文情况

  由于CXwin需要针对每个区别X服务器进行修改因此对于区别X 服务器其显示效果存在差异X服务器具有相当不错显示效果而有效果较差或不能正常显示而有X服务器还不支持中文显示能力需要随着CXwin步发展各个问题才会被逐渐解决



Tags:  freebsd中文 如何安装xwindow window.event.x window.x

延伸阅读

最新评论

发表评论