freebsd rxvt-unicode 安裝與設定

用過X11的人應該知道xterm這個終端機,但是也知道它非常的不好用,這裡推薦大家使用rxvt這個功能比xterm強,而且又是輕量級的終端機,而它的unicode版的rxvt稱為urxvt,以下介紹一下設定檔的部份

1、安裝urxvt
# cd /usr/ports/x11/rxvt-unicode
# make install clean

2、設定urxvt
-tr 背景透明(配合-sh使用)
-fade 沒有focus的時候的亮度0~100
-fadecolor 沒有foucs的時候的顏色
-tint 背景色調(要-tr啟動)
-sh 背景明亮0~100黑100~200亮(配合-tr使用)
-icon 指定檔案當icon
-bg 背景色
-fg 前景色(文字色)
-cr 游標色
-pr 滑鼠指標的前景色
-pr2 滑鼠指標的背景色
-bd 邊框色
-fn 設定字型(預設吃XFT)
-vb 關掉vbell
+sb 關掉scroll
-sr 把scroll移到右邊
-sl 歷史記錄筆數
-b 外邊框大小
-w 內邊框大小
-im 指定輸入法
-imlocale 用來開啟輸入法的語系
-imfont 輸入法字型設定
-ch 啟動的根路徑

3、我的設定
記錄1000筆、不開聲音、沒有捲軸、沒有邊框、文字白色、背景黑色、游標白色、沒有focus的時候暗度30%
EX: urxvt -sl 1000 -vb +sb -b 0 -fg #EEEEEE -bg #000000 -cr #EEEEEE -fade 30

記錄1000筆、不開聲音、沒有捲軸、沒有邊框、文字白色、背景透明、透明暗度20%、沒有focus的時候暗度30%
EX: urxvt -sl 1000 -vb +sb -b 0 -fg #EEEEEE -tr -sh 20 -fade 30
在unix like的系統中,輸入法總是讓人家最煩腦的部份,因為設定的東西實在太多了,這裡討論的是不是底層架構的部份,只單純講解如何在freebsd上面安裝中文輸法引擎和加入一個無蝦米輸入法。

1、安裝scim的table(輸入法)
雖然有套件可以裝全語系的scim,叫scim-tables,但是會裝了一堆用不到的輸入法,我覺得沒有必要,所以我用另一個方法安裝,如果要裝scim-tables的人可以安裝
# cd /usr/ports/chinese/scim-tables/
# make install clean
如果像我一樣只要裝無蝦米就好,其它的都不要的話,請依我的方式安裝
# cd /usr/ports/textproc/scim-table-imengine (安裝輸入法表引擎)
# make install clean
裝好之後就有一個輸入法表的引擎了,可以自己新增像無蝦米這樣的輸入法。

2、安裝各種輸入法(無蝦米)
要安裝無蝦米要先下載無蝦米的表格還有它的圖片,你可以在這裡下載
# fetch http://moon.cse.yzu.edu.tw/~s932361/bsd/bsd_scim.tgz
# tar zxvf liu_scim.tgz
裡面有兩個檔案分別cp到它要放的目錄
# cp liu5.bin /usr/local/share/scim/tables
# cp liu5.png /usr/local/share/scim/icons
這樣就安裝完scim還有加入了無蝦米的輸入法了,如果你想用新酷音輸入法,當成注音輸入法的話,也非常的簡單,只要安裝scim-chewing套件就行了
# /usr/ports/chinese/scim-chewing
# make install clean
這樣就裝完了新酷音輸入法了,你就有兩套可以使用的輸入法,一套是無蝦米,另一套就是注音

3、啟動scim
透過以上的方式我們己經裝好我們的輸入法引擎,並且加入了兩種輸入法,那我們該怎麼在x11下啟動scim,那就要設定.xinitrc(X11啟動的時候的設定檔)
vim .xinitrc
export XMODIFIERS='@im=SCIM' (吃XIM的程式使用scim輸入法平台)
exec scim -d & (啟動scim當成deamon)
存檔之後就可以啟動X了

※特別注意,scim必須要以utf8的環境才可以啟動,所以你的系統如果還是全是big5的環境的話,那你必須在.xinitrc裡面改成
exec env LC_CTYPE="zh_TW.UTF-8" scim -d &
才可以順利啟動scim,不過以目前的趨勢來說,unix lik的系統已經走向全面utf8化了,所以最好整個系統都設成utf8的語系
目前的unix like系統像是freebsd ubuntu ...都走上utf8的編碼,因為在utf8編碼上可以支援更多的語系,但是要怎麼將整個使用環境改成utf8編碼可以透過以下的方式。

1、設定登入語系
可以用locale -a |grep zh來查,我用的是zh_TW.UTF-8
vim ~/.login_conf
加入
me:\
:lang=zh_TW.UTF-8:


設好之後重新登入,使用locale來看應該就是zh_TW.UTF-8了

2、設定vim編輯器
vim ~/.vimrc
加入
"file encoding
set fileencodings=utf-8,big5
set fileencoding=utf-8


fileencodings是說vim透過順序解碼,如果成功就使用
fileencoding是說vim建立文件的時候使用utf8編碼

3、設定irssi聊天工具
vim ~/.irssi/config
修改settings部份
settings = {
core = {
recode_fallback = "UTF-8"; #本端使用utf8
recode_out_default_charset = "UTF-8"; #輸出使用utf8
recode_transliterate = "yes";
real_name = "xxxxx";
user_name = "xxxxx";
nick = "xxxxxx";
};
"fe-common/core" = { term_charset = "UTF-8"; }; #用utf8字元集
"fe-text" = { actlist_sort = "refnum"; };
};


4、設定screen工具
在編譯screen的時候請加入cjk的支援,如果沒有加入的話先去重編一次。screen很聰明會自動看你設定的LC_ALL為什麼編碼來開啟編碼方式,所以其實不用太需要去設定,但是會出現一種問題,就是你make config的時候銀目會花掉,這是因為cjk的關系也就是寬字元顯示的關系,所以我會在screen裡面先關掉cjk,因為預設為utf8時它就會自動啟動。
vim ~/.screenrc
加入
cjkwidth off


當有需要顯示像是日文或是韓文時,請手動開啟cjk,請用ctrl+a, :cjkwidth on來開啟
※請注意開啟cjk的時候不論你用的是putty還是pietty全都要和screen一致才行

5、設定pietty或putty
選項 > 字元編碼 > Unicode UTF-8
選項 > 亞洲語系修正 > 取消 亞洲寬字元 (這個就是cjk了)
※所以如果在screen裡面有開cjkwidth on的話,記得這裡就要勾選亞洲寬字元,但是平常如果沒有在看bbs沒有一堆外星文字的話,是不用特別去開cjk的。
※請配合screen所設定的cjk要一致。

6、WinScp檔案傳輸
可以透過設定winscp自動幫忙轉換windows和freebsd兩邊的編碼

開啟login時,選Environment裡面有Server environment的第二個下拉選項
UTF-8 encoding for filenames: 選ON,之後記得存檔

※這裡提醒一下,winscp只有管理檔名的轉換問題,內容編碼為何,它是不理的,所以如果你用vim寫的話,那裡面的編碼已經是utf8了,所以下載回來,需要使用支援utf8編碼的軟體來開,否則會是乩碼。


關於編碼的觀念
==============================================================
對於不論是big5或是utf-8都好,它都是一種編碼的方式,其實要看每個程式是否有支援編碼的部份,像檔名的話,就是由putty或是pietty來顯示編碼,而如果是文件內的資料的話,用vim來開那就是由vim來決定編碼的方式,所以要設定utf8的話,並不是只要設定一個部份而己,其實每個程式都要設定,像是screen和putty就有很大的關係,必須要相互配合。

編碼是編碼,顯示是顯示,今天使用了utf-8編碼,代表你打的每個字都是由utf-8當成內碼來表示,而我們看到的中文字顯示的出來,表示這個軟體它支援轉換utf-8這種編碼的方式,一次只能選擇一種編碼方式,所以不可能檔案裡面又是用big5編碼或是又用utf-8編碼。

不過現在越來越多opensource的軟體越來越強了,只要設定了LC_ALL的部份,它就會自動偵測且自動切換編碼了,是真的非常的方便。

Port Make Target

在Ports下面不只有簡單的make install deinstall clean等等的,其實還有非常多的target可以用,這些可以讓你用來查詢或是做一些設定,這裡列出一些常常在用的target

fetch 抓取此ports套件檔案放在/usr/ports/distfiles/
fetch-recursive 抓取此ports檔案與其所有相依的套件檔案放在/usr/ports/distfiles/
fetch-url-list 檢查這個ports還沒有存在distfiles中的話,需要從那些url抓取
fetch-urlall-list 檢查這個ports不管存不存在distfiles中,需要從那些url抓取
all-depends-list 顯示這個ports所需要的套件清單
build-depends-list 編譯這個ports所需要的套件清單
run-depends-list 這個ports執行時所需要的套件清單

extract 將distfiles中下載的檔解壓縮到work目錄中
patch 為解壓縮後的work目錄打上patch
configure 執行gnu的configure來配置makefile
build 編譯work目錄中的source
install 將已編譯完的source
reinstall 重新安裝,若已安裝了,則會蓋掉所有修改過的資料
deinstall 移除這個ports
deinstall-all 移除所有的ports
package 將此ports建立package讓以後可以用pkg_add來裝
package-recursive 將此ports與所有相依的ports都建立package
clean 清除此ports的work目錄
config 設定這個ports要編譯的相關設定
config-recursive 設定這個ports以及所有相依ports編譯時相關設定
showconfig 顯示這個ports的編譯設定內容
showconfig-recursive 顯示這個ports和所有相依ports要編譯的設定內容
rmconfig 移除編譯這個ports的設定檔
rmconfig-recursive 移除編譯這個ports和所有相依ports的設定檔
all 相當於check-sanity fetch checksum extract patch configure build

irssi 簡單教學

相信IRC是個還滿古老的東西,但是卻非常的有效,本來我完全不知道和很多好朋友在同一個頻道聊天的樂趣,接觸之後我發現我真的非常的喜歡,介紹給大家認識一下

首先先安裝軟體irssi
# cd /usr/ports/chinese/irssi
# make install clean

裝好之後,直接使用irssi就可以啟動這個irc的軟體,而設定檔的部份,第一次進之後離開,就會自動出現在你的家目錄裡的.irssi/config,如果你的環境是UTF-8的話,那應該沒有什麼太大的問題,而我的是Big5編碼,為了和windows相容的關係,首先我們先從config下手
# vim ~/.irssi/config
servers = ( #要連的主機
{
address = "irc.oftc.net";
chatnet = "oftc"; #伺服器
port = "6667";
autoconnect = "yes"; #是否啟動時自動連上
} #用,分開可以設定很多組,因為可以同時連上很多irc server
);

chatnets = { #設定加入伺服器的時候的命令
oftc = { type = "IRC"; };
};

channels = ( #加入頻道時候的命令
{ name = "#yzugeek"; chatnet = "oftc"; autojoin = "yes"; }
);
接下來是命令的alias喜歡的可以在這裡新增自己常用的
aliases = {
J = "join"; #加入某個channel
WJOIN = "join -window";
WQUERY = "query -window";
LEAVE = "part";
BYE = "quit"; #斷線,離開irssi
EXIT = "quit";
SIGNOFF = "quit";
DESCRIBE = "action";
DATE = "time"; #看目前的時間
HOST = "userhost";
LAST = "lastlog"; #列出到目前為止的記錄
SAY = "msg *";
WI = "whois"; #看某個人的訊資
WII = "whois $0 $0";
WW = "whowas";
W = "who"; #看目前channel上每個人的資訊
N = "names"; #看目前channel上有那些人
M = "msg"; #傳送私人資訊給某人
T = "topic"; #若是op的話可以修改channel的標題
C = "clear";
CL = "clear"; #清除銀目
K = "kick"; #若是op的話可以踢人
KB = "kickban";
KN = "knockout";
BANS = "ban";
B = "ban";
MUB = "unban *";
UB = "unban";
IG = "ignore";
UNIG = "unignore";
SB = "scrollback";
UMODE = "mode $N";
WC = "window close"; #關閉目前channel的聊天視窗
WN = "window new hide";
SV = "say Irssi $J ($V) - http://irssi.org/";
GOTO = "sb goto";
CHAT = "dcc chat";
RUN = "SCRIPT LOAD";
CALC = "exec - if which bc &>/dev/null\\; then echo '$*' | bc | awk '{print \"$*=\"$$1}'\\; else echo bc was not found\\; fi";
SBAR = "STATUSBAR";
INVITELIST = "mode $C +I";
Q = "QUERY"; #開啟和某人的私人聊天視窗
"MANUAL-WINDOWS" = "set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set re
EXEMPTLIST = "mode $C +e";
ATAG = "WINDOW SERVER";
};
statusbar的部份我不討論,因為我用目前的樣式就行了,有興趣的可以自己改一改畫面,或是直接把官網的themes來用也是可以的
settings = { #irssi的設定
core = {
recode_autodetect_utf8 = "yes"; #自動偵測頻道是不是utf8
recode_transliterate = "yes"; #直接轉換
recode_fallback = "Big5"; #設定轉換為Big5
recode_out_default_charset = "UTF-8"; #輸出uft8
real_name = "Clockwork Box"; #在channel上全名
user_name = "clockwork";
nick = "clockwork"; #在channel上使用的nick
};
"fe-common/core" = { term_charset = "Big5"; }; #我們輸入的字元集
"fe-text" = { actlist_sort = "refnum"; };
};


以上大概是整個irssi的設定檔了,設好之後,啟動就可以直接殺進channel裡面,這裡我設定我常去的channel是#yzugeek,還有很多其它的指令你可以使用/help來查尋,不過一堆用不到的,常用的還是那幾個。

※另外這裡要介紹的,就是如何使用irssi
一進來irssi如果你沒有設過上面的東西的話,你要先連上server之後在join到一個channel才可以開始聊天,假設我今天要加入irc.oftc.net裡面的#yzugeek的話先開啟irssi之後輸入
/connect irc.oftc.net
之後會跑阿跑的停了之後就連上了,接著
/join #yzugeek
這個樣子就進了channel了,很簡單吧!
之後你會看到像是這樣的東西
[14:41] [@clockwork(+i)] [2:oftc/#yzugeek(+nt)]
@ - 表示你是個OP就是具有管理權限的人,也可以踢人
2 - 表示你在視窗2,視窗1通常是連上server的資訊,或是相關資訊的output
oftc - 表示目前在這台oftc server上面
#yzugeek - 表示目前你在這個#yzugeek的channel裡面
+i or +nt - 表示你的權限和這個頻道的權限

後面你可能會看到這樣的東西
1 2 3 4 5 6 ....
這個表示是視窗的意思,可以用alt+1 or 2 or 3 ....來切換,或是使用ctrl+n or p來切換
視窗1通常是連上irc server的資訊
視窗2之後都是一般頻道的視窗了,在裡面就可以和別人聊天

※玩irc該了解的大小事
1、聊天的時候如果只是針對某個人講的話,請先打他的nick:之後接要打的資訊
2、如果私人的事,請用/q or /msg私人視窗聊天,一樣用alt+??可以切過去
3、如果要離開還是要做什麼事,請用/me 去睡覺,告訴別人你的情況
4、下命令可以使用alias比較方便,如開私人視窗用/q xxxx比/query xxxx好打
5、善用tab來補齊你的命令,比較方便
6、當有1 2 3 4 5 6 ...的數字在statusbar上出現,表示那個視窗有人聊天
7、如果數字是紅色的話,表示有人叫你的名字
8、如果不知道怎麼用使用的話先用/help輸出所有命令到1視窗去,之後去看看用什麼
9、用/help command來查尋命令的功能
10、不想和別人聊的話,就可以用/wc把視窗關閉
11、想要離開irssi的話用/bye離開
12、善用screen+irssi來掛機(screen說明也在blog中,請找自己找)

以上大概是簡單的設定了,這裡提供一些別人的說明,可以參考看看
http://irssi.org/documentation 這是官網的說明
http://lzy-blah.blogspot.com/2007/08/screen-irssi-irc-q.html 更仔細的說明