Ubuntuにurxvt(軽量ターミナル)を導入

自分は今までターミナルとしてGNOME-Terminalを利用してきましたが、某所で「GNOME-TerminalやKonsoleを使ってるなんて。。。」的な書き込みがあったので軽くて良いとされているurxvtを利用してみることにしました。
で、urxvt自体は普通に

$ apt-get install rxvt-unicode

とするとインストールできますが、これだと256色に対応していません。そのため、256色に対応させるためには自分でソースに同胞されているパッチを当ててビルドする必要があります。そのため、

  1. http://memo.officebrook.net/20090305.html
  2. http://d.hatena.ne.jp/hiloicoli/20080617/1213715287
  3. http://d.hatena.ne.jp/ns9tks/20080814/1218721065

といったページを参考にさせてもらって、次のようにしました。

$ mkdir ~/urxvt
$ cd ~/urxvt
$ apt-get source rxvt-unicode
$ apt-get build-dep rxvt-unicode
$ cd rxvt-unicode-9.06
$ patch -p1 < doc/urxvt-8.2-256color.patch
$ ./configure --enable-xterm-colors=256 (←必須 あとは適当)
$ make

が、makeで問題が発生。

background.C: In member function 'bool bgPixmap_t::set_geometry(const char*)':
background.C:273: error: invalid conversion from 'const char*' to 'char*'
background.C:274: error: invalid conversion from 'const char*' to 'char*'
background.C: In member function 'bool bgPixmap_t::set_file(const char*)':
background.C:680: error: invalid conversion from 'const char*' to 'char*'

とかでてきてしまいました。エラー内容からみるに、constで宣言した変数をconstなしの変数にキャストしているためエラーがでているようです。とりあえず、src/background.Cの該当場所を少し変更すれば大丈夫じゃないかと考えましたが、そこを変更してもまた違う箇所でエラーがでてきてしまいました。困ってしまって検索してみたところ、次のページを発見しました。
Bug #317366 “urxvt menu hangs urxvt with x input frozen” : Bugs : rxvt-unicode package : Ubuntu
ここをみてみると次のような書き込みが。

Krzysztof Klimonda  wrote on 2009-11-03:  	  #23

* rxvt-unicode-gcc44 (1).patch (1.3 KiB, text/plain)

A fix for FTBFS from Fedora (the only link other than Gentoo BTS I could find is http://lists.schmorp.de/pipermail/rxvt-unicode/2009q2/000970.html)

ここからその「rxvt-unicode-gcc44 (1).patch」をダウンロード。中身を見てみると先ほどの該当箇所などを変更していることが分かります。どうやらこのパッチを当てるとよさそうです。

$ cd ~/urxvt/rxvt-unicode-9.06/src
$ patch -p1 < /path/to/rxvt-unicode-gcc44\ \(1\).patch 
$ cd ../
$ make
$ sudo make install

これで、無事にインストールができました。ターミナルからurxvtとすれば起動できます。urxvtの設定ファイルは~/.Xdefaultsです。ここで色やフォントの設定ができます。とりあえず自分の設定は次のようにしてみました。

!font
urxvt.font: xft:M+1VM+IPAG circle:size=11:antialias=true

!urxvt.background: black
urxvt.background:  #363636
urxvt.foreground:  white
! make a scrollbar that's nearly black
urxvt*scrollBar:     true
urxvt*scrollBar_floating:     true
urxvt*scrollBar_right:        false
urxvt*scrollColor:            #202020
urxvt*termName:               xterm
urxvt*urllauncher:            firefox
! matcher.button # 3 is a right-click
urxvt*matcher.button:         3
urxvt*saveLines:              8192
urxvt.perl-ext-common:        default,matcher,tabbed
! black 
urxvt*color0:      #222222
urxvt*color8:      #666666
! red
!urxvt*color1:     #9e1828
!urxvt*color9:     #cf6171
! green
urxvt*color2:      #aece92
urxvt*color10:     #c5f779
! yellow
urxvt*color3:      #968a38
urxvt*color11:     #fff796
! blue
urxvt*color4:      #71C5F4
urxvt*color12:     #67CDE9
! magenta
urxvt*color5:      #963c59
urxvt*color13:     #cf9ebe
! cyan
urxvt*color6:      #418179
urxvt*color14:     #71bebe
! white
urxvt*color7:      #bebebe
urxvt*color15:     #FFFFFF

urxvt*cursorColor:       #d8d8d8

まぁほとんどコピペしただけですが、だいたい何を設定しているのかは分かるとおもいます。フォントは、.Xdefaultみてると「M+1VM+IPAG」を使ってる人が多かったので、それにしました。M+とIPAの合成フォントからフォント本体をダウンロードして、

$ mkdir ~/.fonts
$ tar jxvf /path/to/mixfont-mplus-ipa-TrueType-20060520p1.tar.bz2 -C ~/.fonts
$ fc-cache -f

でフォントをインストールできます(自分は mkdir ~/.font としていてちょっとはまりましたorz)。フォントを変えたければ「M+1VM+IPAG circle」の部分を変えればOKです。


それで、256色対応のurxvtをインストールしたのはいいですが、自分はいつもscreenを使ってましたが、今度はscreenが256色に対応していないことが発覚。これも自分でビルドしました。

$ mkdir ~/screen
$ cd ~/screen
$ apt-get source screen
$ sudo apt-get remove screen
$ sudo apt-get build-dep screen
$ cd screen/screen-4.0.3/
$ ./configure --enable-colors256
$ make
$ sudo make install

./configure --enable-colors256と指定するところが重要です。自分はここでも--enable-color256とやってしまってちょっとはまりました(ぇ。さらに、.screenrcに

termcapinfo xterm 'Co#256:pa#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm:'

とすると256対応になります(他にも記述しなきゃいけない場合もあるみたいです)。256色に対応しているかどうかは、ここのページにある256colors.plを実行すればわかります。



ついでに自分はdesert256.vimをダウンロードしてきて、.vimrcに

set t_Co=256
colorscheme desert256

としてvimも256色にしてみました。

感想

GNOME-Terminalよりもさくさく動いてくれていると思います。見た目もより洗練された感じですね。また、自分はいままでフォントとか色とか全く意識してきませんでしたが、かなり印象が変わりました。ずいぶんと見やすくなって目にやさしくなったと思います。ちょっと導入に手間取りましたが、入れてみて良かったです。