星期六, 2月 19, 2005

FreeBSD的桌面

關於FreeBSD中文化的問題,大都在 FreeBSD Chinese HowTo 裡可以找到。
這裡只寫那篇HowTo沒寫的東西。
由於兩年沒用FreeBSD的X,特別感謝Yahoo的Dustin Liu的提供的設定方法。

1. Locale的問題,在Xorg裡,似乎對Big5的支援度比較差,因此許多人直接使用zh_TW.UTF-8。這樣在桌面的顯示會正常,但是在Terminal會不正常,因此可以使用Screen,再設定 .screenrc
defencoding big5

但是中文檔名有問題,實在是有些麻煩

2. 中文字型顯示不好看,必須利用Firefly的patch,在/etc/make.conf請加入
WITH_CJK=yes
分別編譯安裝ports:
print/freetyp2;
x11- fonts/fontconfig;
x11-toolkits/pango;
x11-fonts/libXft;
libXft必須在port:print/freetyp2及port:x11-fonts/fontconfig之後 ,
以前的XFS已經不見了,安裝libXft就有這個功能。

字型設定的細節可參考 FontConfig
(新)細明體在 11, 12, 13, 15, 16, 20 點的大小有特別做內嵌的點陣字,換句話說,由於中文字的 hinting 不易,有時點陣字會比較有效。又因為新細明體使用了 bytecode 來組合筆劃, 沒有編進 bytecode interpreter 的 freetype 版本在 render 的時候,就會碎掉。請確定您系統上 freetype2 的 source 之中, include/freetype/config/ftoption.h 裡面的 #defineTT_CONFIG_OPTION_BYTECODE_INTERPRETER 是不是有打開。也不可以使用內建的 autohinter. 由於是上述幾個特定的大小是內建點陣字型,所以沒有被 bytecode interpreter 影響。
設定讓新細明體在這些大小時顯示內建的點陣字而不要用 anti-aliased, 可以在 ~/.fonts.conf 加入:


PMingLiU
true
true
false


PMingLiU
12
false
true

因為 MingLiU 宣稱自己是 monospaced 字型,但實際上它有兩種寬度:中文的全形以及英文的半形。於是 freetype 就被騙了; 同樣的事情也發生在其他華康的一些字型上。Freetype 有個 globaladvance 的 flag:


MingLiU
false


萬一因為不明的原因, 這樣做沒有用, 那麼還可以改 spacing:


MingLiU
0

雖然細明體比較好看,但是破碎字的問題還是偶爾會出現,而且還是有版權的東東,不太建議安裝,用Firefly New Sung比較保險,嫌醜就打開antialias吧。

Gtk2 可以使用兩組特殊的 alias: Sans 和 Serif. Sans 是無襯線的意思,也就是如 Arial, Verdana 等等邊緣是方的字。Serif 則是有襯線的字,如 Times. 由於 fontconfig 有字型取代的機制, 可以修改 /etc/fonts/fonts.conf 裡面的這一段:

Bitstream Vera Sans
Helvetica
Arial
Verdana
Nimbus Sans L
Luxi Sans
Kochi Gothic
PMingLiU
AR PL KaitiM GB
AR PL KaitiM Big5
Baekmuk Dotum
SimSun
sans-serif


與這一段:


sans-serif

Bitstream Vera Sans
Verdana
Nimbus Sans L
Luxi Sans
Arial
Helvetica
Kochi Gothic
PMingLiU
AR PL KaitiM GB
AR PL KaitiM Big5
Baekmuk Dotum
SimSun



3. 輸入法:Dustin建議我用SCIM,實際使用上比XCIN好用。


有時候中文輸入會不正常,重新登入又可以,應該是SCIM的問題吧
不過用Windows XP的msn有時候也會無法輸入中文,不要對X要求過高,給它一點時間改進.

4. Browser:當然就是Firefox囉,裝完後記得裝 /usr/ports/java/jdk1.4和 /usr/ports/www/linuxpluginwrapper 設定請參考 http://freebsd.kde.org/howtos/konqueror-flash.php
就可以看Java applet和flash
目前測試的結果,jdk 1.4中文沒問題,jdk 1.5會變成方塊,而且jdk 1.5的設定方法己經改變沒辦法用Firefly的方法修改。

5. IDE:我是用Eclipse,2005/10開始有Eclipse 3.1,使用上完全正常,字型用細明體或Firefly 新宋體都可以.NetBeans 4.1我也裝了,大致上都是用笨人裝法.只是要新增plugin時會沒有權限,所以記得打開檔案權限 chown .或是xhost +,sudo eclipse或sudo netbeans來安裝plugin,之後再用自己的帳號使用。




希望以後能夠一次裝到底,沒有這些怪問題