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をトリガーとして呼び出しています。
まあ、思いっきり手動なんですけどね😅 自動で出来たら面白いんですけどね。
素の状態 | 切り替えた状態 |
---|---|