環境
macOS Sonoma 14.2.1
wezterm version 20240203-110809-5046fc22
背景
普段自分はMacでRaycastというランチャーツールを使っており、アプリケーションごとにHotkeyを割り当てアプリケーションの表示、非表示を切り替えています。
例: alt+wで該当アプリを表示、該当アプリの表示中にalt+wで非表示
Weztermというターミナルにこのホットキーを設定していました。
Wetermがウィンドウの状態ならこの機能が正常に動くのですが、フルスクリーン状態だと非表示化の部分が上手く動作しませんでした。(フルスクリーン状態だとランチャーツール側で制御ができなくなる?Windowsではこのような現象にはあってないのでmacOS特有の問題?)
やりたいこと
Weztermがフルスクリーンの状態で同一ショートカットを使用して表示、非表示を切り替える。
方法
Hotkeyを使って表示するところのみ外部アプリに任せてWeztermの操作中はWezterm側で設定可能なアプリケーションを非表示にするアクションを使用します。
このようにすればフルスクリーン中でも同じキーを用いて表示、非表示の切り替えが行えます。
方法詳細
表示Hotkeyの設定
Weztermの表示にはkarabiner-Elementsを使用します。
Raycastより細かい条件でHotkeyの設定が行えます。
karabiner.jsonのrulesに以下を追記します。
{
"description": "Alt+W to launch wezterm, disabled when wezterm is active",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "w",
"modifiers": {
"mandatory": [
"option"
],
"optional": [
"any"
]
}
},
"to": [
{
"shell_command": "open -a wezterm"
}
],
"conditions": [
{
"type": "frontmost_application_unless",
"bundle_identifiers": [
"^com\\.github\\.wez\\.wezterm$"
]
}
]
}
]
}
condtionsの所でweztermが最前面に表示されている時以外という条件でキーの設定を行っています。Weztermが最前面に表示されていない時にalt+w
を押すと起動する設定です。
非表示Hotkeyの設定
こちらはWeztermの設定で行います
Wezterm.luaに以下を追記します。
local wezterm = require("wezterm")
local config = wezterm.config_builder()
config.keys = {
{ key = "w", mods = "ALT", action = wezterm.action.HideApplication },
}
return config
HideApplicationというアクションを使用すればWeztermを非表示にできるのでalt+w
にその設定をしています。
終わりに
今まで非表示化の部分が動かない状態で使用していたので解決できてよかったです。そもそもWezterm側にHotkey機能があれば楽なのにと思ったり。