🍎

Wezterm でタブの順番を並べかえる【MacOS 15】

に公開

はじめに

私は普段の作業で端末エミュレータとして WezTerm を使っています。
WezTerm は複数の端末を扱える multiplexing 機能が付いており、 Workspace, Tab, Pane 単位で端末を複数起動して管理することができます。

タブを複数起動した際に、利便性やわかりやすさのためにタブの並べ変えをしたくなることがあります。
この記事では WezTerm でタブの順番を Keyboard shortcut で並べかえる方法を説明します。

また、MacOS 15 を使用している場合 OS 機能のショートカットと wezterm のデフォルト設定が被ってしまい、ハマりやすいです。
この問題に対する回避方法も合わせて説明します。

デフォルト設定

タブの順番の並べかえは、デフォルトのキーマッピングが用意されています。
デフォルトのキーマッピングは Default Key Assignments にまとめられています。

タブの並び変えについては MoveTabRelative という名前の Action が設定されており、デフォルトでは Ctrl + Shift + PageUp/PageDown に割りあてられています。
なお、MacOS では PageUp, PageDown はそれぞれ Fn + ↑, Fn + ↓ として入力できると思います。

MacOS 15 の罠

筆者は以前からこのデフォルトのキーマッピングを使用していたのですが、ある日このキーマッピングが使用できなくなってしまい、代わりに何やら Window が上下に動くようになってしまいました。

調べてみたところ、原因はどうやら MacOS 15 で追加された Tile windows という機能の キーボードショートカット とキーバインドが衝突しているせいだということがわかりました。

Tile windows の機能が追加されたこと自体は良いのですが、使い慣れたキーバインドが使えなくなってしまうのは困ります。
ショートカットの無効化を試みてシステム設定からキーボードショートカットの設定を確認してみますが、それらしき項目は見当たりません。
なんとか無効化する手段は無いかと調べていたところ Reddit にて手動でショートカットを設定して上書きするという方法を見つけることができました。

文章だとわかりにくいと思うのですが、具体的には以下のような手順になります。

  1. "システム設定 > キーボードショートカット > アプリのショートカット" を開く。
  2. "+" ボタンでショートカットの追加を選択する。
  3. メニュータイトルに "Top & Bottom" などのように 手動で 入力し、適当な (被らない) キーバインドを設定する。

"Top & Bottom" のようなメニュータイトルとして有効な名前は、以下の画像のように画面上部のメニューの "Window" タブから確認できます。

なお、確認した限りではここで説明したのようにキーマップを上書きすることはできても、キーマップを完全に無効にする手段は見つけられませんでした。

Wezterm 側のキーマッピングを変更する

タブの移動について、Wezterm 側でデフォルトキーマッピングと違うキーを割りあてることも可能です。
以下の例は Wezterm の 公式ドキュメント から引用した設定例です。

local act = wezterm.action

config.keys = {
  { key = '{', mods = 'SHIFT|ALT', action = act.MoveTabRelative(-1) },
  { key = '}', mods = 'SHIFT|ALT', action = act.MoveTabRelative(1) },
}

この設定を行うことで、 Alt + Shift + { または Alt + Shift + } でタブを移動させることができるようになります [1]

おわりに

この記事では WezTerm でタブの順番を Keyboard shortcut で切りかえる方法を説明しました。
また、 MacOS 15 で OS のキーボードショートカットと被ってしまう問題に対する対処方法についてまとめました。

実のところ、私用の MacBook 上でこのキーバインドが効かなくなる問題自体については、数ヶ月前から気づいていたのですが地味に不便ながら深く調べないまま放置してしまい、ようやく解決方法を見つけることができたのでした。

OS アップグレードで新機能を導入すること自体は良いと思うのですが、できればキーバインドの無効化は設定で簡単に行えるようにしてほしいものです。
ささいなことではありますが、使い慣れたキーバインドが使えなくなるというのは作業の中断につながり、生産性も低下してしまうように感じられます。

関連

タブの順番を切りかえる際に、合わせてタブに名前をつけておくと作業単位を管理しやすいと思います。
設定例は以下を参照すると良いでしょう。

https://wezterm.org/config/lua/keyassignment/PromptInputLine.html#example-of-interactively-renaming-the-current-tab

また、タブより上位の階層である workspace を用いて作業単位を管理する方法については以前記事を書いています。
タブと合わせて利用すると、より体系的に作業単位を整理することができて便利です。

https://zenn.dev/sankantsu/articles/e713d52825dbbb

脚注
  1. 多くのキー配列では {Shift + [ であり、この場合 Alt + Shift + { といっても実際の入力は Alt + Shift + [ であると言ったほうがわかりやすいかもしれません ↩︎

GitHubで編集を提案

Discussion