terminalをurxvtからalacrittyに乗り換えた

github.com

これになった.

tmux3.4 + urxvtの組み合わせで謎の文字列が出力される

tmuxを3.4にあげてからというもの,ターミナル起動時に必ず

10;rgb:ff00/ff00/ff00]11;rgba:0000/0000/0000/bfff

この文字が出力される.

github.com

原因はこれなんだけど,tmuxとurxvtの組み合わせによるものだ.urxvt側の修正を入れなきゃいけないんだけど,urxvtが更新されてないので自分で修正してビルドする必要がある. 正直面倒だし,urxvtも飽きたので,新しいターミナルを探してみることにした.

alacritty

github.com

この辺を漁っていたら,良さそうなものを見つけた.クロスプラットフォームで,Rustベースで,シンプル.設定を外部ファイルで指定できる.

というわけでalacrittyを使ってみることにした.

~/.config/alacritty/alacritty.toml

import = [
    "~/.config/alacritty/themes/themes/monokai_charcoal.toml"
]

[window]
opacity=0.8

[font]

# Normal font style
normal = { family = "Ubuntu Mono derivative Powerline", style = "Regular" }  # Default for Linux/BSD: "monospace", Regular

# Bold font style
bold = { style = "Bold" }  # Inherits family from normal, Default style: Bold

# Italic font style
italic = { style = "Italic" }  # Inherits family from normal, Default style: Italic

# Bold Italic font style
bold_italic = { style = "Bold Italic" }  # Inherits family from normal, Default style: Bold Italic

# Font size in points
size = 11.25  # Default: 11.25se

テーマは

github.com

ここにいっぱいあるので,結構選びたい放題だった.これもalacrittyの良い点であった.カラーテーマ変更がめちゃくちゃ楽.

ただ,使ってみるとtmuxのキーバインドが一部使えなくなっていた.特にMetaとの組み合わせのショートカットが軒並み動かない. tmuxはcopy-modeに入るとデフォルトでemacsキーバインドを使う.このときにemacsなのでCtrlとMetaを多用する.Ctrlは問題なく動くが,Metaがalacrittyに吸収されてしまいtmux側に入力されていない.というわけでMetaとの組み合わせを正しく伝達させる.

[[keyboard.bindings]]
key = "<"
mods = "Super|Shift"
chars = "\u001B<"

[[keyboard.bindings]]
key = ">"
mods = "Super|Shift"
chars = "\u001B>"

[[keyboard.bindings]]
key = "R"
mods = "Super|Shift"
chars = "\u001BR"

[[keyboard.bindings]]
key = "b"
mods = "Super"
chars = "\u001Bb"

[[keyboard.bindings]]
key = "f"
mods = "Super"
chars = "\u001Bf"

[[keyboard.bindings]]
key = "m"
mods = "Super"
chars = "\u001Bm"

[[keyboard.bindings]]
key = "r"
mods = "Super"
chars = "\u001Br"

[[keyboard.bindings]]
key = "v"
mods = "Super"
chars = "\u001Bv"

[[keyboard.bindings]]
key = "w"
mods = "Super"
chars = "\u001Bw"

[[keyboard.bindings]]
key = "x"
mods = "Super"
chars = "\u001Bx"

こんな感じ.これで無事にcopy-modeでもショートカットが使えるようになる.

ちなみにmacOS向けには option_as_alt という設定もあるらしい.が,macOSで使ってないのでわからん.

alacritty.org

また,画面共有するとき等にターミナルの文字サイズを変更したくなることがある.というわけでこのためのショートカットも作っておく.

[[keyboard.bindings]]
key = "Up"
mods = "Control"
action = "IncreaseFontSize"

[[keyboard.bindings]]
key = "Down"
mods = "Control"
action = "DecreaseFontSize"

[[keyboard.bindings]]
key = "="
mods = "Control|Shift"
action = "ResetFontSize"

余談

他にもkittyとかstとか試してみた.stは割と良さそうでは合ったのだが,フォント変更等の設定変更にヘッダーファイル変更+再ビルドが必要なので,それは流石に試行錯誤するときに面倒すぎるのでやめた. kittyも(ぐぐらびりてぃがやたら低いことを除外すれば)割と良かったけど,フォントレンダリング周りの結果を見てalacrittyの方が良かった.