现在绝大多数网站都是针对 windows 进行设计,linux 并没有也不能有 windows 那些字体,当在 linux 下浏览时,看到的中文字体一般默认是文泉驿宋体。看惯了 ClearType 字体,再回来看点阵字体实在是种折磨,特别是我需要长时间对着电脑。看来不动手DIY下是不行。

首先,在 /usr/share/fonts/truetype 下建了个 myfonts 文件夹,把自己喜欢字体 copy 或者 ln 进去。再执行 fc-cache -f 更新字体缓存,然后在 firefox -> edit -> preference -> content ->  fonts & colors -> advanced 里面可以看到新增的字体,把 western 里的字体改为自己喜欢英文字体,simplified chinese 改成相应的中文字体。再把 “Allow pages to chose their own fonts….." 选项打掉。这样大部份网页都会使用设定好的字体进行显示,并且在中文网页中的英文字体则会使用 western 设定的字体进行显示。

但是,总有那么一部份顽固的网页依然会使用默认字体显示中文。 我想到曾经用过 greasemonkey 调整 google reader 在两栏模式下正文宽度,让它变成100%宽以方便阅读,便立即写了个脚本将字体设定自动加到样式表里,试了几下,目的可以达到,可惜 greasemonkey 是在页面完全载入之后再执行,所以在轮到 greasemonkey 起作用之前看到的还是点阵字体。

最后想起曾经有篇文章介绍过通过 userContent.css 使 firefox 也具有“像 Google Chrome 那样的活动输入框高亮显示”功能。firefox 是基于 Mozilla XUL 架构,本身的界面元素可以通过 userChrome.css 来自定义, userContent.css 则对应页面样式进行默认定义。通过这两个文件来控制明显是最完美方案了,yes,在 ~/.mozilla/firefox/chrome/xxxxxx.default/chrome (xxxxxx视具体替换)里面建立 userChrome.css 和 userContent.css 内容如下:

* { font-family : 'english font name', '中文字体名称' }

字体从左到右优先显示,名称中有空格需以单引号括起。名称以 firefox preferences 里看到的字体名称为准,重启 firefox, 这回连界面字体也一併改了,舒服了。

环境:

xubuntu 8.10

firefox 3.0.5

顺便再说说 Mozilla XUL, 这是一个界面框架, 允许Programming者以HTML代码创建Native用户界面,许多 Mozilla 的项目也是基于 XULProgramming,ActiveState 的 Komodo Programming工具系统也是基于 XUL。