Chrome拡張機能やウェブページをグローバルショートカットキーで呼び出せるようにしたい (Windows11)

## やりたいこと

グローバルショートカットキーを使い、Chromeがアクティブでないときも素早くChrome拡張機能のポップアップ（や特定のウェブページ）を呼び出す（Windows11）。
ローカルのファイルをchromeで閲覧したりもできると思うけど使い道が思いつかない

## 経緯

[Notionの拡張ツールを紹介している動画](https://youtu.be/ePyPhETtErM?si=_srOSHeC4dscL1Ik&t=250)でSave to Notionが紹介されていた。ウェブページをデータベースに追加するほか、ショートカットキーを追加してchromeがアクティブでないときも自由にメモを追加できるらしい。

<iframe width="560" height="315" src="https://www.youtube.com/embed/ePyPhETtErM?si=7X84w-SHV_l-T6s2&amp;start=250" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

[手順の参考に挙げられていた動画](https://youtu.be/dQ7-rwBMFNM?t=529)の内容がWindowsで再現できなかったのでなんとかした。

<iframe width="560" height="315" src="https://www.youtube.com/embed/dQ7-rwBMFNM?si=Zp78p08uB8Zle4aA&amp;start=529" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

## 手順

### 1. URLを用意する

ふつうのウェブページならURLをそのまま。

Chrome拡張機能を呼び出す場合、2つめの動画のとおりポップアップ上で右クリックしてデベロッパーツールを開く。画像はSave to Notion
![スクリーンショット (14).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750057/2747f103-0b49-833f-9246-02f689e51077.png)

コンソールからポップアップをクリックし、ポップアップのURL (?) を取得
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750057/2a4e2cc7-54ce-9b43-ca90-4febc5e654f6.png)

`'chrome-extension://ldmmifpegigmeammaeckplhnjbbpccmm/popup/index.html'
`というURL (?) が取得できた

関係ないけどこれをアドレスバーに貼り付けるとポップアップではなくフルページで開くことができる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750057/54a5c097-e323-e392-14ec-fffb55ac33d3.png)

### 2. .batファイルを用意する
なんかMacだと上記のページをそのままタスクバーに置いたりできるみたいだけどWindowsだと無理みたいのでバッチファイルで開く。
適当な場所にバッチファイルを作って書く

```bat:普通のウインドウで表示
@echo off
start chrome.exe "chrome-extension://ldmmifpegigmeammaeckplhnjbbpccmm/modal/modal.html"
exit /b
```

起動オプションをつけるとアプリケーションウインドウで表示したり新しいウインドウで表示したりできる。今回はこっちのほうが見やすいのでこっちにした

```bat:アプリケーションウインドウで表示
@echo off
start chrome.exe --app="chrome-extension://ldmmifpegigmeammaeckplhnjbbpccmm/modal/modal.html"
exit /b
```

### 3.batファイルへのショートカットを作成する
標準だとbatファイルにショートカットキーを割り当てることができないのでショートカットを作る。

### 4a. ショートカットキーを設定する
ショートカットキーが有効になるのはスタートメニューかデスクトップにあるファイルのみみたいなので3.で作ったショートカットをどちらかに移す。

ファイルを右クリックするなどしてプロパティを編集。適当なショートカットキーを設定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750057/36e8369f-5303-3ce8-e1b3-fdd1025a208e.png)

これでChromeが起動していなくても直接ページを開いたりできる。

しかしどうやらショートカットキー経由だとバッチファイルの起動まで数秒かかるらしい。なんかWindows10のころから[こんなかんじ](https://www.google.com/search?q=%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC+%E3%83%90%E3%83%83%E3%83%81%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E9%81%85%E3%81%84&oq=%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC%E3%80%80%E3%83%90%E3%83%83%E3%83%81%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%80%80%E9%81%85%E3%81%84&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIGCAEQRRg90gEINjIzOWowajeoAgCwAgA&sourceid=chrome&ie=UTF-8)らしい。解決策があったら教えてください

### 4b. タスクバーにピン留めする
速さは正義なのでタスクバーにピン留めしてWindows+数字キーで起動することにした。
（参考：https://note.z0i.net/2020/09/pin-batch-file.html ）

バッチファイルはタスクバーにピン留めできないのでふたたびショートカットを作り、それをタスクバーに置いておく。タスクバーで左から10番目以内ならWindows+数字キーで開くことができる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750057/2c3a13df-5e8b-f17d-6445-6c1b41e1fdd5.png)


### おまけ（ウインドウのサイズと表示位置を設定する）
ウインドウサイズを指定した
```bat:特定のサイズの新しいウインドウを開く
@echo off
start chrome.exe --new-window --window-size=600,600 --app="chrome-extension://ldmmifpegigmeammaeckplhnjbbpccmm/modal/modal.html"
exit /b
```

しかしChromeが実行中だとサイズの指定がうまくいかなくてこまった。
あきらめて以下の方法をとった。

- URLに"data:text/html..."を指定し、閲覧するページのhtmlを直接記述する
- \<script>でウインドウの操作をする
- window.locationでURLを指定して開きたいページを開く

（参考: https://stackoverflow.com/questions/13436855/launch-google-chrome-from-the-command-line-with-specific-window-coordinates ）

```bat:改良版
@echo off
start chrome.exe --app="data:text/html,<html><body><script>window.resizeTo(525,600);window.location='chrome-extension://ldmmifpegigmeammaeckplhnjbbpccmm/modal/modal.html';</script></body></html>"
exit /b
```

位置も指定した。
```bat:位置も指定
@echo off
start chrome.exe --app="data:text/html,<html><body><script>window.resizeTo(525,600);window.moveTo(390,50);window.location='chrome-extension://ldmmifpegigmeammaeckplhnjbbpccmm/modal/modal.html';</script></body></html>"
exit /b
```

いいかんじ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750057/37a5e0a0-d139-0686-0e2f-6abe8834c264.png)
## 結果
ショートカットキーを使っていつでもウェブページや拡張機能を開くことができるようになった