有馬総一郎のブログ

(彼氏の事情)

2021年01月17日 02:56:55 JST - 3 minute read - Linux

rxvt-unicodeことurxvtを導入してみる

軽量ターミナルを求めているわけでもないけど、東アジアの曖昧な文字を全角文字幅で扱えるらしいrxvt-unicodeことurxvtを導入してみた。

インストール

$ sudo apt install rxvt-unicode-256color

でインストール。今思えばこの 256color となっている時点で気付くべきだった…

設定ファイル

urxvt こと rxvt-unicode を使うことのメモ | Jenemal Notes

ここに記載されている内容がよくまとまっていて、分かりやすいと思う。

参考サイトを見つつ

~/.Xresourcesを編集していく。

!! ウィンドウサイズ
URxvt.geometry:           1914x1017
!! スクロールバー
URxvt.scrollBar:          false
!! デザイン
URxvt.scrollBar_right:    true
URxvt.scrollBar_floating: true
URxvt.scrollstyle:        rxvt
!! カーソル形状と点滅
URxvt.cursorBlink:        true
!! マウスポインター消去
URxvt.pointerBlank:       false
!! ヴィジュアルベル
URxvt.visualBell:         true
!! バッファ行数
URxvt.saveLines:          3000
!! アウトオブフォーカス時に画面を暗く
URxvt.fading:             40
!! フォント
URxvt.font:               xft: HackGen Console-12
!! 文字間
URxvt.letterSpace:        -1
!! 行間
URxvt.lineSpace:          2
!! カラースキーマ
URxvt.foreground:         #c2c2b0
URxvt.background:         #222222
URxvt.cursorColor:        #c2c2b0
URxvt.color0:             #111111
URxvt.color8:             #181818
URxvt.color1:             #aa4450
URxvt.color9:             #ff6a6a
URxvt.color2:             #719611
URxvt.color10:            #b1d631
URxvt.color3:             #ff9800
URxvt.color11:            #87875f
URxvt.color4:             #6688aa
URxvt.color12:            #90b0d1
URxvt.color5:             #8f6f8f
URxvt.color13:            #8181a6
URxvt.color6:             #528b8b
URxvt.color14:            #87ceeb
URxvt.color7:             #d3d3d3
URxvt.color15:            #c1cdc1
URxvt.colorIT:            #719611
URxvt.colorBD:            #d3d3d3
URxvt.colorUL:            #528b8b
!! Perl拡張抑止
URxvt.perl-ext:
URxvt.perl-ext-common:

ちょっと特殊なのが、書いただけでは駄目で。xrdb -load ~/.Xresourcesしないと駄目なこと。

xrdb コマンドは -merge オプションで現在の設定に指定ファイルの内容をマージする。 -load (あるいはオプション無し)で全ての内容を置き換える。 -query オプションで現在定義中の内容を確認できる。

ただ、参考サイトどおりに

URxvt.color12:     [90]#83a598    /* bright blue    */

と設定していたら、urxvt: unable to parse color '!!83a598', using pink instead.エラーを吐かれたのでカラースキーマのところは sourcerer/sourcerer.Xresources at master · xero/sourcerer · GitHubを真似た。

導入後、東アジアの曖昧な文字などを試す

何もしないと駄目だったので、例のサイト East Asian Ambiguous Width問題と絵文字の横幅問題の修正ロケールにある libcのロケールの曖昧な文字幅を全角にする を試す。

$ wget https://raw.githubusercontent.com/hamano/locale-eaw/master/UTF-8-EAW-FULLWIDTH.gz
$ gunzip UTF-8-EAW-FULLWIDTH.gz
$ sudo mv UTF-8-EAW-FULLWIDTH  /usr/share/i18n/charmaps/
$ sudo nvim /etc/locale.gen

/etc/locale.gen

#ja_JP.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8-EAW-FULLWIDTH
$ sudo locale-gen

これで、東アジアの曖昧な文字が全角文字幅で扱われていることを確認。

urxvt

しかし、問題が…urxvtはTrueColor(24 bit color)非対応だった。

urxvt
nvimを起動するとオレンジに!

TrueColor対応しているか確認すると、

curl -s https://gist.githubusercontent.com/lifepillar/09a44b8cf0f9397465614e622979107f/raw/24-bit-color.sh | bash

こんな結果に。

mlterm問題なし。

mlterm
mlterm

urxvtだと欠けてる…これはこれで変だが、とりあえず駄目と。

urxvt
urxvt 何か欠けてる。これはどうして

reddit でもどうしたら良いかとの質問がある。

set termguicolorsをしているのをやめるか、256色をサポートしているカラースキーマを使うしかない。

true color
set termguicolors
256color
set notermguicolors

urxvtのtrue color版もあるみたいだけど、完全ではないみたい… AUR (en) - rxvt-unicode-truecolor

という微妙な結果だった。