2024-07-07

WezTerm でも「⌘ + ,」のショートカットキーで設定画面を開きたい

macOS のアプリの多くは、コマンドキーとカンマ(⌘ + ,)を同時に入力することでそのアプリの設定画面を開くショートカットキーが割り当てられていると思います。

しかし、私の知る限り WezTerm は設定用の UI は持ち合わせておらず、Lua によるプレーンなテキストファイルですべてを管理しています。

Lua で設定を管理できる、というのは私が WezTerm を使い始めるきっかけにもなった feature でもありこのままであってほしいのですが、⌘ + , で設定を行える状態にはしたいと感じていました。

⌘ + , を押したら新規タブで wezterm.lua をエディタで開く

まず WezTerm は keys という設定項目で キーバインドの設定 ができます。 そして定義したキー入力に応じて、新しいタブ上で設定ファイル wezterm.lua をエディタで開くことができれば、ほぼ期待通りの挙動と言えそうです。

以下がそのデモです。 ⌘ + , で設定ファイルをエディタで開く

設定ファイルは次のようになりました。

-- ~/.config/wezterm/wezterm.lua
local wezterm = require("wezterm")
local os = require("os")

return {
  keys = {
    { key = ",", mods = "CMD", action = wezterm.action.SpawnCommandInNewTab({ args = { "/opt/homebrew/bin/nvim", os.getenv("WEZTERM_CONFIG_FILE") } }) },
  },
}

⌘ + , のキーバインドを追加し、入力時の振る舞いを action に定義しています。 SpawnCommandInNewTab という WezTerm ビルトインの関数を用いて新規タブを開き、さらに args オプションにタブを開くときに実行するコマンドを渡しています。

os.getenv は Lua の提供する関数です。WEZTERM_CONFIG_FILE という環境変数に設定ファイルのパスが自動でセットされているので、ここから参照するようにしています。

しばらく使っていますがなかなか快適です。⌘ + , であらゆる設定を行いたい同志のみなさまの参考になれば幸いです。