字型管理

在X的世界中字型管理到處都是,目前最常用的就是fontconfig,但是不是每個程式都吃XFT這一套,有些舊有的還是吃XLFD的,所以我們使用freebsd內有一套軟體叫ttfm的來解決

fontconfig把xorg裝好就含在裡面了,反而是傳統的XLFD比較麻煩,所以我們先安裝ttfm
# cd /usr/ports/chinese/ttfm
# make install clean

用法 ttfm.sh --help
目錄 /usr/local/share/font/TrueType/
假設今天要裝一個xxx.ttf字型的話,那只要簡單的將它cp到/usr/local/share/font/TrueType/之後執行下面的命令讓它建立fonts.dir

# ttfm.sh --add xttfm xxx.ttf
※當執行這樣動作的時候,雖然產生出來是放在/usr/local/lib/X11/fonts/TrueType/但是會建個一個s-link到上面我們放的目錄,所以ttfm自己管理自己的目錄,和系統用到的字型目錄不混在一起。

如果要移除的話
# ttfm.sh --remove xttfm xxx.ttf
不過樣比較麻煩,我是直接到/usr/local/lib/X11/fonts/TrueType/直接rm -rf *

那如果你已經安裝完你的ttf字型的話,到/usr/local/lib/X11/fonts/TrueType/下面應該可以發現已經產生了fonts.dir,所以我們可以使用XLFD吃我們中文的字型。

但是如果你想要知道你裝了那些字型的話可以透過
# ttfm.sh --list xttfm
※那其實是在fonts.dir裡面的資料^^

如果你是XFT的話,fontconfig套件提供了很方便的功能,直接
# fc-cache -fv
那fontconfig就會透過你設定在xorg.conf裡面的字型路徑去爬你放在這目錄裡面的字型,並加入到cache中,所以你就可以直接使用字型了,像是firefox這些應用程式都吃這一套,所以就可以直接在firefox裡面設定顯示的字型了,透過
# fc-list :lang=zh-tw
我們可以看到安裝的字型中有那些是中文的,來顯示我們安裝了那些中文字型

=================================================
以上不論是XFT或是XLFD都有自己設定字型的方式,舉例來說,如果我今天裝了fvwm2,結果它不吃fontconfig那一套的話,看看設定檔它吃XLFD這一套,那我們其實可以用一套很簡單的工具它叫xfontsel可以讓你在啟動X的時候選字體,決定之後複製貼上就行了

EX:
假設我們今天要用飛星送字體,那我會先用xfontsel,出現視窗之後讓自己選,另一種方式就是直接看fonts.dir看看有什麼可以用的,直接貼過來。

XFLD的表示方式比較特別,雖然設定欄位非常多,但是我從來沒有去注意它,因為設成*系統會自動匹配最佳的設定,沒有辦法匹配的話,就顯示不出來,所以我只會注意挑選我要指定的部份,其它的系統自動會匹配。

以下表示misc這間公一的ar pl new sung字型,後面的其實沒有去查不知道是設什麼,那個11是表示字型大小,而到數第二個是編碼,那如果匹配的話它會看使用者語系自己匹配,所以也放著不用理它

Menustyle * fvwm, Font "-misc-ar pl new sung-medium-r-*-*-11-*-*-*-*-*-*-*"

這種設定方式還有一個好處,可以把中英文分開指定,像ar pl new sung沒有iso8859的編碼,也就是沒有abcdefg....的英文字,所以我補上我英文字的顯示用另一套

Menustyle * fvwm, Font "-misc-ar pl new sung-medium-r-*-*-11-*-*-*-*-*-*-*,-artwiz-snap-normal-r-*-*-*-*-*-*-*-*-*-*"

透過豆號分開就行了,這樣中文字有專門的顯示,而英文的話又有精美字型,真是超客制化,而如果是吃XFT的話,那就好好寫.fonts.conf吧!雖然不難,而且功能又多,但是我覺得還是XLFD比較好用。

同樣的mlterm這隻程式也是吃XLFD所以設定方法可以同上,基本上在X的世界中,字型的問題這樣差不多就搞定了

=================================================
這裡推見一下artwiz-aleczapka這套字型,英文我都用它設,不是向量字型是點陣字型
# cd /usr/ports/x11-fonts/artwiz-aleczapka
# make install clean
裝完之後因為它放在/usr/local/lib/X11/fonts/artwiz-aleczapka-en
所以要讓X吃的到的話我們要去xorg.conf裡面加上fontpath

FontPath "/usr/local/lib/X11/fonts/artwiz-aleczapka-en"
加進去之後就吃的到了,一樣用xfontsel就可以找的到,不然就是去看它的fonts.dir

freebsd 系統升級流程

這幾天把freebsd裝在eeepc901上面剛剛好要從freebsd-release升到freebsd-stable所以就順來記錄一下升級的流程了,首先一定要先準備好make.conf的設定檔

※從頭到尾都要用root做
# cp make.conf /etc/
# cd /usr/src
# make update
# make buildworld
# make buildkernel KERNCONF=LACHESIS
(自訂編譯的kernel檔放在/usr/src/sys/i386/conf)
若要自訂kernel的話
# cd /usr/src/sys/i386/conf
# cp GENERIC ~/LACHESIS
# ln -s ~/LACHESIS
之後在家目錄下修改LACHESIS的kernel設定檔
# make installkernel KERNCONF=LACHESIS
# sync;sync;sync;reboot (重啟動)
# mergemaster -p (避免升級時帳號衝突問題)
# make installworld
# make delete-old (移除舊設定檔和舊目錄)
# mergemager (merge舊的設定檔到新的去)
# sync;sync;sync;reboot
# make delete-old-libs (移除舊的系統函式庫)
# sync;sync;sync;reboot

以上的流程就升級完成了,而過程中編譯的檔案會放在/usr/obj下面,如果你空間不怎麼夠的話,那就去砍了吧!
# cd /usr/obj
# chflags -R noschg *
# rm -rf *