Ubuntuにurxvt(軽量ターミナル)を導入
自分は今までターミナルとしてGNOME-Terminalを利用してきましたが、某所で「GNOME-TerminalやKonsoleを使ってるなんて。。。」的な書き込みがあったので軽くて良いとされているurxvtを利用してみることにしました。
で、urxvt自体は普通に
$ apt-get install rxvt-unicode
とするとインストールできますが、これだと256色に対応していません。そのため、256色に対応させるためには自分でソースに同胞されているパッチを当ててビルドする必要があります。そのため、
- http://memo.officebrook.net/20090305.html
- http://d.hatena.ne.jp/hiloicoli/20080617/1213715287
- 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よりもさくさく動いてくれていると思います。見た目もより洗練された感じですね。また、自分はいままでフォントとか色とか全く意識してきませんでしたが、かなり印象が変わりました。ずいぶんと見やすくなって目にやさしくなったと思います。ちょっと導入に手間取りましたが、入れてみて良かったです。