ショートカットアプリでウインドウスナップ機能を作る

## 本記事について

VSCodeが横にめっちゃ長いときにスナップしたいとかよくある。
それをショートカットキーから実行する機能、
Macのショートカットアプリを用いて実装する方法を紹介する。

|スナップ|画像|
|:--|:--|
|スナップ左|![スクリーンショット 2022-04-10 10.07.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/3a5df516-4024-1a83-14fa-69661a4df6d9.png)|
|スナップ右|![スクリーンショット 2022-04-10 10.08.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/fc347dfd-e554-7b28-419b-1b2e2baeb644.png)|
|スナップ全画面|![スクリーンショット 2022-04-10 10.08.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/286e70c0-3d9d-d1af-4c36-d71aa95cda09.png)|

![スクリーンショット_2022-04-10_10_29_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/a8cd8904-0fad-6018-c517-7a6971787720.png)

## 作り方

### 「ショートカット」を作成
まずはスナップ左から作る

![スクリーンショット_2022-04-10_10_31_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/40ae67ac-61e5-ee20-7055-1976f31e0f2a.png)
![スクリーンショット 2022-04-10 10.32.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/f188e375-3331-f9b1-3945-d51b3c5d9bb1.png)

新規ショートカットを作成

![スクリーンショット_2022-04-10_10_33_48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/fe5073cb-eded-3962-6856-c5554513a5ba.png)

カテゴリ > スクリプティング > ウインドウ
から「ウインドウを検索」を左側にドラッグ

![スクリーンショット 2022-04-10 10.35.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/4e38e032-2449-8bdf-362b-c0071a705a2e.png)

![スクリーンショット 2022-04-10 10.36.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/9dbf6374-c571-deef-a237-f4ea41b3da69.png)

上記のように設定

![スクリーンショット_2022-04-10_10_38_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/d67c2eee-06e8-4e62-8ad4-c9fcf94a9fae.png)

実行すると、現在触っているショートカットアプリが表示されるはず。
つまり、

ウインドウインデックスが一番小さい
=> 一番手前にあるウインドウ

ということ。

![スクリーンショット_2022-04-10_10_40_29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/b44b92ed-3ace-5246-9aa1-64d8e105ab90.png)

続いて「ウインドウのサイズを変更」と「ウインドウを移動」をダブルクリックする。
すると左に並ぶ。

![スクリーンショット_2022-04-10_10_44_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/45361e02-e97e-cb18-ea79-0b5edcd287dd.png)

左上、左半分にする。

この時点で右上の「▶︎」で実行して、スナップ左の挙動ができていることを確認する。

![スクリーンショット 2022-04-10 10.46.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/76df40f0-4a0b-d214-5c9a-18f780cf6576.png)

一度ショートカット一覧に戻り、
対象のショートカットを右クリック > 名称変更　で 「スナップ左」という名前にする。

### ショートカットキーを設定する

![スクリーンショット_2022-04-10_10_48_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/643ed8eb-88b3-02bb-938e-18dcb31cb9c9.png)

クイックアクションとして使用を選択する
(サービスメニューのチェックは勝手に入る)
次で実行のところで任意のショートカットキーを設定

私は以下のように設定している

|ショートカット|ショートカットキー|
|:--|:--|
|スナップ左|option + control + ←|
|スナップ全画面|option + control + Enter|
|スナップ右|option + control + →|

これでスナップ左は完成

### 全画面と右も作る

![スクリーンショット 2022-04-10 10.52.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/6f2c0b99-8943-a2e0-f0f6-48d0c485a372.png)

複製して「サイズ」と「位置」をそれぞれ以下のように設定する。

全画面 位置: 中央, サイズ: 画面に合わせる
右上 位置: 右上, サイズ: 右半分

## 改善したい点
AppleScriptで実装した場合よりも、ショートカットでやると遅い気がする。
ショートカットをGit管理はしづらい。(テキストデータでまとめて書き出し、まとめてインポートとかできたらいいなと思う)

## 感想

公式アプリで機能実装できるの嬉しい。
ショートカットアプリのググラビリティーめちゃ低い

## 参考
https://poraggio.com/2022/01/07/original-shortcut-app/