やりたいこと
常にターミナル背景を透過させていると文字が見づらいが、
たまにカンニングしながらターミナルでコマンドを打ちたいときがある。
そのためWezTermで、特定のコマンドを押すことにより背景の透過度を切り替えたい。
参考
実は公式ドキュメントにサンプルコードとして設定が記載されている。
set_config_overrides - Wez's Terminal Emulatoru
①透過度切り替え用の関数を作成
-- 透過切り替え
wezterm.on('toggle-opacity', function(window, pane)
local overrides = window:get_config_overrides() or {}
if not overrides.window_background_opacity then
overrides.window_background_opacity = 0.8
else
overrides.window_background_opacity = nil
end
window:set_config_overrides(overrides)
end) -
wezterm.on('toggle-opacity', 関数)で、toggle-opacityという名前のイベントが発火したときに実行される関数を定義できる -
window_background_opacity:背景の透過度を設定するプロパティ - 未指定(透過しない)場合は0.8で上書きし、指定(0.8が入っている)場合はnilで上書きしている
-
get_config_overrides - Wez's Terminal Emulator:現在のウィンドウの設定のコピーを返却する -
set_config_overrides - Wez's Terminal Emulator:ウィンドウ設定を上書きする -
wezterm.on - Wez's Terminal Emulator:イベントハンドラーを定義する
②キーマッピング追加
①で作成したイベントを特定のキーで発火できるようにする。
keys = {
{ key = 'u', mods = 'SUPER', action = wezterm.action.EmitEvent 'toggle-opacity' },
} 筆者は leaderキー + uで切り替えするように設定している。