烏兎匆匆

Weztermをホットキーで起動・前面に出す

概要

LinuxでWeztermをホットキーで起動・前面に出す方法を調べた。ソフト単体にはそういった機能は無いがwmctrlというプログラムで実現できた。ホットキーに対応していないアプリやGUIでなくコンソールアプリをホットキーで起動したい場合などに役立つので方法をメモしておく。

Weztermをホットキーで起動・前面に出す方法

前提

wmctrlがなければインストール。Debianの場合はaptでインストールできた。

sudo apt install wmctrl

スクリプト作成

次のスクリプトを任意の場所に配置して、chmodで実行権限をつける。

#!/bin/bash

# ウィンドウクラス名(必要に応じて変更)
WEZ_CLASS="WEZTERM"

# WezTerm の実行ファイル(パスが通っていれば単に wezterm でOK)
WEZ_CMD="wezterm start --class $WEZ_CLASS"

# WezTerm のウィンドウが存在するか確認
if wmctrl -lx | grep -q "$WEZ_CLASS"; then
  # 存在すれば前面に出す
  wmctrl -xa "$WEZ_CLASS"
else
  # 存在しなければ起動してから前面に出す
  $WEZ_CMD &
  
  # ウィンドウが表示されるまで待機(最大20回、2秒まで)
  for i in {1..20}; do
    sleep 0.1
    if wmctrl -lx | grep -q "$WEZ_CLASS"; then
      wmctrl -xa "$WEZ_CLASS"
      break
    fi
  done
fi

ホットキー登録

Debian12でKDEを使っている私の環境ではKDE システム設定のショートカット-カスタムショートカットに新しいグローバルショートカットを追加して、トリガーにホットキー、アクションのコマンド欄に作成したスクリプトのパスを設定するとうまくいった。

Weztermが起動していない状態では起動→ウィンドウがwmctrlに認識されたらそのウィンドウを前面に出す、起動している状態では起動しているウィンドウを前面に出すという動作になる。