概要
iTermでは、ショートカットキーを使ってターミナルの表示/非表示を切り替えることができます(いわゆるDropDownTerminal)。
これがかなり便利なのですが、残念ながらAlacrittyにはその機能がありません。Alacrittyの開発者はその機能の開発に前向きではないようなので、当分はその機能の導入もなさそうです(イシューにて議論された)。
ということで、Alacrittyに頼らずに実現します。環境はMacです。
完成品
この記事で紹介するやり方で、次のようになります。(GIF画像ですが再生されない場合は画像をクリックしてみてください)
- 設定したキーボードショートカットを押すとターミナルの表示/非表示が切り替わる
- ウィンドウ表示でも動作するし、Alacrittyを全画面表示にしていてもオーバーレイ表示させることができる
ただし、下のウィンドウが全画面表示のときは、その上にオーバーレイで表示できなくて、Alacrittyのウィンドウを置いてるデスクトップまで移動してしまいます。この点においてはiTermと全く同じようにはできないのが、あと一歩という感じですね、、、。
やり方
Hammerspoonのインストール
Hammerspoonというアプリを使って実現します。これはMac標準搭載のAutomatorに近いもので、関数を定義して実行することでMacを自動操作できるようにするものです。ここでは、「アプリを表示する、非表示にする」というMacの操作をHammerspoonから呼び出すことで、Alacrittyのウィンドウ操作を実現します。
まずは、Hammerspoonを公式HPよりインストールしてください。
- 公式HPの上部のDownloadをクリック
- 「Hammerspoon-{バージョン番号}.zip」をダウンロード
- zipを解凍したらHammerspoon.appが解凍されるので、アプリケーションフォルダに移動して起動する
表示/非表示を切り替え可能にする
Hammerspoonを起動したら、右上のメニューバーから「Open config」をクリックします。
init.lua というファイルがデフォルトのエディタで開かれるはずなので、下記コードを入力して保存します。(開かれなかった場合、 ~/.hammerspoon/init.lua
を作成してそこに入力してください)
hs.hotkey.bind({"ctrl"}, "q", function()
local alacritty = hs.application.find('alacritty')
if alacritty:isFrontmost() then
alacritty:hide()
else
hs.application.launchOrFocus("/Applications/Alacritty.app")
end
end)
コードの解説です。
- 1行目:ctrl+qが押されたら次の関数を実行せよ(ctrl+qは任意に変えて良い)
- 2行目:"alacritty"というアプリをMacから見つけよ
- 3-7行目:alacrittyが最前面にあるなら非表示にして(cmd+hと同様)、そうでないなら起動または最前面にせよ
設定が完了したら、右上のメニューバーのHammerspoonから「Reload config」をクリックします。これで、Alacrittyを起動したらctrl+qで表示/非表示が切り替えられるようになったはずです。
※Hammerspoonにアクセシビリティの権限を付与する必要があります。設定できていなかったら、「システム環境設定」→「セキュリティとプライバシー」→「アクセシビリティ」でHammerspoonに権限を付与してください。
※うまく動作しない場合、ショートカットキーがMacで設定されている何かと被っている可能性があります。HammerspoonからConsoleを開いて重複エラーが出力されていたら、その問題が生じているため解消する必要があります。Macの設定で割当てられているショートカットを無効にするか、Hammerspoonに割り当てるショートカットを別の重複してないものにしてください。
Alacrittyの全画面表示を有効にする
~/.config/alacritty/alacritty.yml
を開いて、次の行を追加します。
key_bindings:
- { key: Return, mods: Command, action: ToggleSimpleFullscreen }
こうすると、cmd+エンターで全画面モードに入るようになります。
さらに僕は、半透明にすることでターミナルを利用しながら後ろの情報が見れるようにしています。
window:
opacity: 0.9
さいごに
これで、Alacrittyがさらに便利になったと思います。快適なシェルライフを楽しみましょう。
AlacrittyをiTermライクにするための様々な方法を今後上げていく予定なのでご期待ください。