ステージマネージャのステージをショートカットキーで切り替える方法

# はじめに

**[macOS Ventura](https://www.apple.com/jp/macos/ventura/)、使ってますか～！**
**（ Yeah ～！）**

**[ステージマネージャ](https://support.apple.com/ja-jp/HT213315)、使ってますか～！**
**（ シーン ･･･ ）**

のような感じの評判の[ステージマネージャ](https://support.apple.com/ja-jp/HT213315)ですが、私は使っています。と言いつつも、正直なところ使い勝手で言えば、いい所と悪い所が相殺してプラマイゼロな印象です。

この記事ではそんな、ちょっと微妙な[ステージマネージャ](https://support.apple.com/ja-jp/HT213315)の使用感を少しでも向上させるべく、[ステージマネージャ](https://support.apple.com/ja-jp/HT213315)のｎ番目のステージに切り替える AppleScript と、それをショートカットキーに割り当てる方法をご紹介します。


# ｎ番目のステージに切り替える AppleScript

まず、AppleScript はこう書きます。ここでは1番目のステージに切り替える場合を例に挙げます。

``` AppleScript:AppleScript
tell application "System Events" to tell process "WindowManager"
	tell list 1 of group 1
		
		-- ここの番号 ↓ を､「何番目のステージに切り替えたいか」によって変える
		click button 1
		
	end tell
end tell
```

※ button の後ろの番号には、切り替えたいステージが上から数えて何番目かを書く

どうやら[ステージマネージャ](https://support.apple.com/ja-jp/HT213315)は、内部では WindowManager というプロセスで実行されているみたいですね。


# ショートカットキーに割り当てる

この AppleScript をショートカットキーに割り当て、ショートカットキーでステージを切り替えられるようにしましょう。

ここでは、[Apple 純正ショートカットアプリ](https://support.apple.com/ja-jp/guide/shortcuts-mac/apdf22b0444c/mac)を使う場合と、サードパーティー製の [Keyboard Maestro](https://3fl.jp/nkm001/) というアプリを使う場合の、2パターンを紹介します。


## Apple 純正ショートカットアプリを使う

例として、1番目のステージに切り替えるショートカットキー を **⌃⌘1** に設定してみます。

![2F50E0D9-FB40-4636-95B5-84C63F637CD8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3065008/af1e238a-e9f3-3729-4ada-c11988d91215.png)

わりかし簡単なのではないでしょうか。


## Keyboard Maestro を使う

::: note
**更新日：** 2023-02-18
マクロと AppleScript をよりシンプルにしました。
:::

[Keyboard Maestro](https://3fl.jp/nkm001/) を使えば、1つのマクロで複数のショートカットキーを作ることができます。また、[純正ショートカットアプリ](https://support.apple.com/ja-jp/guide/shortcuts-mac/apdf22b0444c/mac)と [Keyboard Maestro](https://3fl.jp/nkm001/) では、[Keyboard Maestro](https://3fl.jp/nkm001/) の方がステージの切り替わりが少し速いです。

以下にマクロのスクショとマクロ内の AppleScript の部分を示します。


### マクロのスクショ

[ステージマネージャ](https://support.apple.com/ja-jp/HT213315)の**ｎ番目**のステージに切り替えるショートカットキーを **⌃⌘ｎ**（ｎは任意の数字）に設定してみました。

例外として、**⌃⌘0** は現在のウィンドウを現在のステージから除外する（Remove Window from Set）ショートカットキーとして割り当てています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3065008/56445fcf-291d-2992-da16-a8e6cf0faa3f.png)

※「Remove Window from Set」の部分は、システムの言語設定が英語の場合


#### マクロ内の AppleScript の部分

``` AppleScript:AppleScript
tell application "Keyboard Maestro Engine"
	set Instance_Trigger_Number to (getvariable "Instance Trigger Number" instance system attribute "KMINSTANCE") as integer
end tell

tell application "System Events" to tell process "WindowManager" to tell list 1 of group 1
	click button Instance_Trigger_Number
end tell
```


### 簡略的な解説

やっていることとしては、[Keyboard Maestro](https://3fl.jp/nkm001/) で、

1. **打鍵されたショートカットキーの数字部分を抽出して変数に設定する**
1. **以下の AppleScript を実行する**
    1. **設定した変数を数値として [Keyboard Maestro](https://3fl.jp/nkm001/) から受け取る**
    1. **受け取った数値と同じ番目のステージをクリックする**

だけです。


# まとめ

以上が、[ステージマネージャ](https://support.apple.com/ja-jp/HT213315)のステージをショートカットキーで切り替える方法の全貌でございます。いかがでしたでしょうか。

ちなみに、[最新のバージョンの BetterTouchTool（有料）を使えば AppleScript を使わずにショートカットキーに（1つずつなら）割り当てられます](https://applech2.com/archives/20221031-bettertouchtool-support-stage-manager-for-ventura.html)（先に言え）。しかし、私のオススメは**断然マクロの管理がしやすい [Keyboard Maestro](https://3fl.jp/nkm001/)**（有料）です。

ご質問があればコメントにどうぞ。それでは、よき [Ventura](https://www.apple.com/jp/macos/ventura/) ライフを！