エンジニアを目指す初学者に向けて、わかりやすく解説したブログです。

【WezTerm】透過をコマンドで切り替える

やりたいこと

常にターミナル背景を透過させていると文字が見づらいが、
たまにカンニングしながらターミナルでコマンドを打ちたいときがある。

そのためWezTermで、特定のコマンドを押すことにより背景の透過度を切り替えたい。

参考

実は公式ドキュメントにサンプルコードとして設定が記載されている。

Icon in a page linkset_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)

②キーマッピング追加

①で作成したイベントを特定のキーで発火できるようにする。

  keys = {
    { key = 'u', mods = 'SUPER', action = wezterm.action.EmitEvent 'toggle-opacity' },
  }

筆者は leaderキー + uで切り替えするように設定している。