はじめに
先日、せっかくだからMacにもAlacrittyを入れてみようかな~と思い、
$ brew cask install alacritty
でインストールしてさわってみていたところ、
「あれ、Ctrl-Qがきかない…?」
となり、調べて対応したメモです。
環境
- MacBook Air (macOS Catalina)
Ctrl-Q
正確には、Ctrl-Qを2連打しないと、AlacrittyがCtrl-Qの入力を認識してくれない、という症状でした。
私はCtrl-QをTmuxのプリフィクスキーに割当てていて、これは死活問題だぞ…と。
対応
とりあえずGitHubを見てみると、ちょうどドンピシャのissueがあがっていました。
ちょうど2日前(2020/02/07)に解決されていたのですが、昨日の今日でリリースに反映されているはずもないので、自前でビルドしました。
Cargoのインストール
まずRustのパッケージマネージャ兼ビルドツールであるCargoをこちらの手順に従いインストールします。
$ curl https://sh.rustup.rs -sSf | sh
インストールがすんだら、画面の指示に従いPATHをとおすようにして、
$ . ~/.bash_profile
でPATHを反映します。
Alacrittyのビルド
続いて、Alacrittyをビルドします。
$ git clone git://github.com/alacritty/alacritty.git alacritty
$ cd alacritty
$ make app
$ cp -r target/release/osx/Alacritty.app /Applications/
動作確認
Alacrittyを起動し、Ctrl-Qを試しに押してみると、「動いた!!!」
…と喜んだのも束の間、今度は「あれ、Ctrl-[動かなくね…?」ということで次に続きます。
Ctrl-[
どの環境でも、というわけにはいきませんが、EscapeはCtrl-[で代替することができます。私も環境が許してくれれば、ホームポジションから遠いEscapeの代りにCtrl-[を使います。
AlacrittyでVimを立上げ、INSERTモードからNORMALモードに戻ろうとCtrl-[を押すと、今度は「あれ、モードが変らねえ…。」
一方Escapeを押すと、ちゃんと認識してNORMALモードに戻ってくれました。
対応
~/.config/alacritty/alacritty.yml
の最下部にキーバインド例が載っており、これを参考にしてCtrl-[をEspaceに置換えるキーバインドを追加します。
# ↓のコメントアウトをはずす
key_bindings:
# (Windows, Linux, and BSD only)
#- { key: V, mods: Control|Shift, action: Paste }
#- { key: C, mods: Control|Shift, action: Copy }
#
# ...(中略)...
#
#- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
#- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt }
#
# ↓以下を追記
- { key: "LBracket", mods: Control, chars: "\x1b" }
動作確認
Alacrittyを起動してCtrl-[を試しに押してみると「動いたぞ!!!」
ということで、めでたし、めでたし。
おわりに
そのうちHomebrewやリリースにも反映されるだろうと思います。Ctrl-[の方は、私の環境依存の問題かもしれないですが、お困りの方がいたら取り急ぎの策ということで、ご参考になれば幸いです。