げっとシステムログ

WEB開発メモ

Windows10 で Alacritty する話

某Slack コミュニティで Rust 製のターミナルエミュレータの Alacritty が良いという話を聞いたので、試してみる。

CONTENTS
  1. Alacritty について
  2. Chocolatey インストール
  3. Alacritty インストール
  4. エスケープキー対応
  5. まとめ
  6. 参考資料
ENVIRONMENTS
  • Windows 10 Pro

Alacritty について

Rust 製のターミナルエミュレータ。 はやい、らしい。 実感はないが、気に入ったので使うことにした。

とりあえずターミナルエミュレータへの要件は以下くらい。

  • フォントの設定ができる
  • 背景透過ができる
  • 起動時の位置、サイズの設定ができる

cmd や wsl でもほぼ事足りるのだが、これらで使用できるフォントは限られているので別な選択肢が欲しい。

Alacritty にできないこと

2019/11/15 現在、日本語入力がインラインでできない。 Windows 10 標準の IME は、入力中の文字が左上の小さなウインドウに表示されるので何とかなる。 ちなみに Mac 標準の日本語入力はこれがなかったので Alacritty の使用をあきらめた。

また、複数のウインドウを立ち上げることもできない。 どうやら近々での複数ウインドウ対応はなさそう。 ログを流す用のウインドウを別に立ち上げたいのだけど、これは Windows の cmd とか wsl を使用することにする。

さらに、エスケープキーの入力がどこかに吸収されてしまうことがあるように感じる。 vi で入力すると <M-S-F3> みたいになる。 常に、というわけではない。 ただ、これが Alacritty のせいかは、はっきりしていない。

TOP

Chocolatey インストール

Alacritty の README によると、chocolatey を使用してインストールができる。

chocolatey は Windows のパッケージマネージャ。 まずはこれをセットアップする。

Installing Chocolatey の手順に従って作業する。

スタートメニューを右クリックして、PowerShell を管理者権限で立ち上げ、以下のコマンドを実行する。

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

これで chocolatey のインストールが完了する。

TOP

Alacritty インストール

管理者権限の PowerShell から、以下のコマンドを実行することで Alacritty をインストールできる。

choco install alacritty

Alacritty の設定は C:\Users\{ユーザー名}\AppData\Roaming\alacritty\alacritty.yml にある。 AppData は隠しフォルダなのでエクスプローラーには表示されない場合もあるが、隠しフォルダを表示したり、パスを入力するといける。

WSL + Alacritty で Powerline を使う | hiromasa.another :o) を参考に設定していく。

font

font には Windows にインストールしたものが使用可能。

font:
  normal:
    family: あんずもじ等幅

手書き風フォントのあんずもじを愛用しているので、これが使用できるかが最重要。

opacity

壁紙の透過がしたいので、背景の透過率を設定する。

background_opacity: 0.8

Alacritty で背景透過をしても、Vim の色設定で背景色が指定されていると背景が透過されなくなる。 背景色が NONE な colorscheme を選択すれば良いが、少ないので以下の設定を行って背景色をキャンセルした。

colorscheme monokai_pro
hi Normal guibg=NONE
hi LineNr guibg=NONE
hi NonText guibg=NONE
hi SpecialKey guibg=NONE

起動時の位置、サイズ

ターミナルエミュレータの起動位置は固定したい。 作業が終わったら shutdown する運用にしているため、起動時に手で調整したくない。

window:
  dimensions:
    columns: 140
    lines: 40
  position:
    x: 100
    y: 15
  padding:
    x: 5
    y: 5

shell

wsl を起動するように設定。

shell:
  program: /Windows/System32/wsl.exe

Windows 10 ConPTY backend の有効化

新しい API の有効化を行う。 実際に何が有効になるのかはよくわかっていないが、とりあえず vim の色設定が通るようになった。

enable_experimental_conpty_backend: true

色設定

Color schemes | GitHub jwilm/alacritty Wiki に、色設定のサンプルが載っているのでこれを使用した。

# Monokai Pro
colors:
  # Default colors
  primary:
    background: '0x000000'
    foreground: '0xFCFCFA'

  # Normal colors
  normal:
    black:   '0x403E41'
    red:     '0xFF6188'
    green:   '0xA9DC76'
    yellow:  '0xFFD866'
    blue:    '0xFC9867'
    magenta: '0xAB9DF2'
    cyan:    '0x78DCE8'
    white:   '0xFCFCFA'

  # Bright colors
  bright:
    black:   '0x727072'
    red:     '0xFF6188'
    green:   '0xA9DC76'
    yellow:  '0xFFD866'
    blue:    '0xFC9867'
    magenta: '0xAB9DF2'
    cyan:    '0x78DCE8'
    white:   '0xFCFCFA'

TOP

エスケープキー対応

時々エスケープキーの入力がどこかに吸収される感じがする。 これが Alacritty のせいであるかは、はっきりしていない。

Vim のエスケープキー対応

Vim でエスケープキーが通らないのは困るので、エスケープキーのキーバインドを追加した。

imap <C-L> <Esc>

Tmux のコピーモード対応

Tmux ではコピーモードのキーバインドにエスケープキーを使用していたが、これも Ctrl-L に変更した。

bind C-l copy-mode

TOP

まとめ

Windows で Alacritty を使用する方法をまとめた。

いくつか気になる部分はあるが、気に入ったので使用することにした。 あと Rust を使い始めたので、このプロジェクトに貢献できたらいいな。

TOP

参考資料

TOP