💻

WezTermをHammerspoonでCtrlダブルタップのHotkeyを設定してみた

2024/11/21に公開

概要

iTerm2ではCtrlキーのダブルタップでHotkeyを設定していましたが、WezTermにはHotkeyを設定する機能がないため、Hammerspoonを利用して同様の操作を再現しました。

環境

  • OS: macOS Sonoma 14.6.1
  • WezTerm: Version 20240203-110809-5046fc22

Hammerspoonとは

Hammerspoonは、macOSで動作する自動化ツールです。Luaスクリプトを使用して、キーボードのホットキー設定やウィンドウ操作、アプリケーションの起動など、macOSのさまざまな操作を柔軟に制御することができます。

導入手順

1. Hammerspoonのインストール

Homebrewを利用してHammerspoonをインストールします。

brew install --cask hammerspoon

2. Hotkey設定ファイルの作成

1. ~/.hammerspoon/ctrlDoublePress.luaの作成

Ctrlキーのダブルタップを検知するために必要なモジュールを~/.hammerspoon/ctrlDoublePress.luaに設定します。

asmagill/ctrlDoublePress.lua

2. ~/.hammerspoon/init.luaの編集

表示/非表示してくれる以下のスクリプトを~/.hammerspoon/init.luaに設定します。

-- Ctrlキーのダブルタップを検知する設定
local double_press = require("ctrlDoublePress")

-- WezTermを表示または非表示に切り替える関数
local open_wezterm = function()
    local bundleID = "com.github.wez.wezterm" -- WezTermのBundle ID
    local app = hs.application.get(bundleID)

    if app == nil or app:isHidden() then
        hs.application.launchOrFocusByBundleID(bundleID)
    else
        app:hide()
    end
end

-- ダブルタップの動作を設定
double_press.timeFrame = 0.5  -- ダブルタップの間隔(秒)
double_press.action = open_wezterm

3. Hammerspoonの設定

  1. Hammerspoonを起動します。
  2. システム設定プライバシーとセキュリティアクセシビリティを開き、Hammerspoonにアクセシビリティ権限を付与します。

注意した点

最初、アプリ名で設定しようとしましたが、認識されない場合があったので、Bundle IDを使用しました。

-- Bundle IDを使用
local bundleID = "com.github.wez.wezterm"
local app = hs.application.get(bundleID)

-- アプリ名を使用
local appName = "WezTerm"
local app = hs.application.get(appName)

まとめ

これで、CtrlキーのダブルタップによるWezTermの表示・非表示切り替えが簡単に行えるようになりました。アプリをいちいちクリックして操作する手間が省けます。

参考記事

https://zenn.dev/beryu/articles/bd71fc3b933bd8
https://moriso.hatenablog.com/entry/2022/03/20/175922

Discussion