Help us understand the problem. What is going on with this article?

[Mac] Alacrittyで Ctrl-Q と Ctrl-[ がきかなかった話(ついでに自前ビルド手順)

はじめに

先日、せっかくだから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-[

どの環境でも、というわけにはいきませんが、EscapeCtrl-[で代替することができます。私も環境が許してくれれば、ホームポジションから遠いEscapeの代りにCtrl-[を使います。

AlacrittyでVimを立上げ、INSERTモードからNORMALモードに戻ろうとCtrl-[を押すと、今度は「あれ、モードが変らねえ…。」
一方Escapeを押すと、ちゃんと認識してNORMALモードに戻ってくれました。

対応

~/.config/alacritty/alacritty.ymlの最下部にキーバインド例が載っており、これを参考にしてCtrl-[Espaceに置換えるキーバインドを追加します。

alacritty.yml
# ↓のコメントアウトをはずす
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-[の方は、私の環境依存の問題かもしれないですが、お困りの方がいたら取り急ぎの策ということで、ご参考になれば幸いです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした