読者です 読者をやめる 読者になる 読者になる

urxvt 入れてみた

ターミナルエミュレータ Linux urxvt

これまでは gnome-terminal 一本だったのだけど、とりあえず入れてみた。会社のローカルマシン。 Fedora19 。

インストール

$ sudo yum install rxvt-unicode

設定

自分は solarized の dark が基本なので、

https://gist.github.com/yevgenko/1167205

こちらの .Xdefault を $HOME に配置。フォントを Ricty にする。

プラグイン

一つのターミナルの中で、リモート(会社の開発環境)とローカルをタブで使い分けたく( tmux はさらにその向こう側で使う)、まずデフォルトで付いてくる tab プラグインを有効にしてみた。

URxvt.perl-ext-common: default,tabbed

Shift と矢印キーの同時押してタブの切り替えや新規タブ作成ができるということなのだが、 Fedora19 の最新 Gnome が食ってるのか何なのか全く効かない。あと NEW ボタンがあってマウスで押せっていうけどそんなことはするはずがない!。キーのカスタマイズは perl コードを弄ればできるということ。

そうしたら、 tabbedex というプラグインを書いてる人がいた。

https://github.com/stepb/urxvt-tabbedex

これを入れる。プラグインは、 perl-lib オプションに指定したディレクトリの次に、

$URXVT_PERL_LIB, $HOME/.urxvt/ext and lastly in (release docs will have LIBDIR here)/urxvt/perl/.

を探すと書いてあるので、特にオプションには頼らず $HOME/.urxvt/ext に置いてみる。

$ mkdir -p .urxvt/ext
$ cd .urxvt/ext
$ wget https://raw.github.com/stepb/urxvt-tabbedex/master/tabbedex

設定する。

URxvt.perl-ext-common:      default,tabbedex
URxvt.keysym.M-t:           perl:tabbedex:new_tab
URxvt.tabbed.no-tabbedex-keys: yes

Ctrl-T が tmux と当たるので M-t にしてみた。依然として Shift 上下が効かないんだけど、とりあえずこれで。

結果(追記:これ、古いです。最新はたぶんこっち

!-------------------------------------------------------------------------------
! Xft settings
!-------------------------------------------------------------------------------

Xft.dpi:                    96
Xft.antialias:              true
Xft.rgba:                   rgb
Xft.hinting:                true
Xft.hintstyle:              hintslight

!-------------------------------------------------------------------------------
! URxvt settings
! Colours lifted from Solarized (http://ethanschoonover.com/solarized)
! More info at:
! http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.1.pod
!-------------------------------------------------------------------------------

URxvt.depth:                32
URxvt.geometry:             90x30
URxvt.transparent:          false
URxvt.fading:               0
! URxvt.urgentOnBell:         true
! URxvt.visualBell:           true
URxvt.loginShell:           true
URxvt.saveLines:            50
URxvt.internalBorder:       3
URxvt.lineSpace:            0

! Fonts
URxvt.allow_bold:           false
URxvt*font: xft:Ricty:pixelsize=18

! Fix font space
!URxvt*letterSpace: -1

! Scrollbar
URxvt.scrollStyle:          rxvt
URxvt.scrollBar:            false

! Perl extensions
URxvt.perl-ext-common:      default,tabbedex
URxvt.matcher.button:       1
URxvt.urlLauncher:          google-chrome
URxvt.keysym.M-t:           perl:tabbedex:new_tab
URxvt.tabbed.no-tabbedex-keys: true

! Cursor
URxvt.cursorBlink:          true
URxvt.cursorColor:          #657b83
URxvt.cursorUnderline:      false

! Pointer
URxvt.pointerBlank:         true

!!Source http://github.com/altercation/solarized

*background: #002b36
*foreground: #657b83
!!*fading: 40
*fadeColor: #002b36
*cursorColor: #93a1a1
*pointerColorBackground: #586e75
*pointerColorForeground: #93a1a1

!! black dark/light
*color0: #073642
*color8: #002b36

!! red dark/light
*color1: #dc322f
*color9: #cb4b16

!! green dark/light
*color2: #859900
*color10: #586e75

!! yellow dark/light
*color3: #b58900
*color11: #657b83

!! blue dark/light
*color4: #268bd2
*color12: #839496

!! magenta dark/light
*color5: #d33682
*color13: #6c71c4

!! cyan dark/light
*color6: #2aa198
*color14: #93a1a1

!! white dark/light
*color7: #eee8d5
*color15: #fdf6e3

ibus のキー食われてる!

Windows ATOK となるべく一緒にしようと変換キーと無変換キーで ibus の日本語と英語固定入力をトグルしてるのだけどこれまで tab の拡張に食われちゃう。デフォルトの tabbed もそうだった。

323,324c323,326
<    my ($self, $event) = @_;
<    $self->{cur}->key_press ($event->{state}, $event->{keycode}, $event->{time});
---
>    my ($self, $event, $keysym) = @_;
>    unless ( $keysym == 0xff22 || $keysym == 0xff23 ) {
>        $self->{cur}->key_press ($event->{state}, $event->{keycode}, $event->{time});
>    }

とりあえず変換と無変換のときは current tab の key_press を呼ばないようにしてみたら、切り替えられるようになった。入力も正しくできる。良かった。

(追記:結局複数マシンでキー変えるの面倒くさくて resource で設定できるようにした