Toggle Font
ここではわたしが使っている機能実装を紹介します。
環境によっては全く必要ないと思いますので、その場合はスキップしてください😅
まず前提
わたしのディスプレイ環境なんですが、MacBook と 4K を行ったり来たりして使っています。
だからなんだって言われるとキツイんですが、一番わかりやすいところでフォントサイズの問題があって、画面のスケールが違いすぎて大きすぎたり小さすぎたりしてしまう...😢
DecreaseFontSize・ IncreaseFontSize を使ってサイズを上げ下げしてもいいんですが、ちょっとコレじゃない...😒
わたしはこれが結構ストレスになっていたので、 この問題を解消するのに有用なのが、次のフォントサイズ切り替え機能です😃
フォントサイズ切り替え
この例ではtoggle-font-sizeというイベントを独自に作っています。
WezTermでは、フォントサイズに限らず、元の設定を直接書き換えるのではなく、オーバーライドすることで変化させます。
Returns a copy of the current set of configuration overrides that is in effect for the window.
ウィンドウに適用されている設定オーバーライドの現在のセットのコピーを返します。
local wezterm = require 'wezterm'
wezterm.on('toggle-font-size', function(window, pane)
  local overrides = window:get_config_overrides() or {}
  overrides.font_size = not overrides.font_size and 10.0 or nil
  window:set_config_overrides(overrides)
end)
端的に言えば、以下の動作を交互に行っています。
- 素の状態であれば、
font_sizeを10.0でオーバーライド。 - オーバーライドされているのであれば、
font_sizeをnilとしてオーバーライドを無効化 (素の状態に戻す)。 
これでフォントサイズの切り替えが実現できます。
独自イベントが呼び出されるようにするにはEmitEventを用います。
This action causes the equivalent of wezterm.emit(name, window, pane) to be called in the context of the current pane.
このアクションは、現在のペインのコンテキストで wezterm.emit(name, window, pane) と同等のアクションが呼び出されるようにします。
わたしはキーバインドCtrl-fをトリガーとして呼び出しています。
まあ、思いっきり手動なんですけどね😅 自動で出来たら面白いんですけどね。
| 素の状態 | 切り替えた状態 | 
|---|---|
![]()  | ![]()  | 

