Chrome拡張機能

拡張機能を作ったので貼っておこー

背景

タスクバーをダブルクリックしたときに、タスクバーの表示・非表示を変更しています。

なお、アプリや画面の操作は画面上部でまとめて行いたいので、以下のアプリでタスクバーを画面上部に配置しています。

Explorer Patcher for Windows 11
https://github.com/valinet/ExplorerPatcher

やりたいこと

Chromeのブックマークバーの表示・非表示もマウス操作で切り替えたい。

ブックマークバーの高さ(40px)分を非表示にして使いたい。

Chromeの標準機能

画面右上「…」で「ブックマークとリスト」-「ブックマークバーを表示」/「ブックマークバーを非表示」を選択する。
→メニューが多くて2階層、3階層と辿る操作がメンドクサイ。

キーボード操作では、Ctrl + Shift + B が使用可能。
→こんなの覚えてられない。キーボードを使いたくない。

やったこと

Chrome ウェブストア
https://chromewebstore.google.com/

ブックマーク関連の拡張機能を検索したけれど見つからなかった。

よく使うキーボードショートカットをマウスから実行できないのか?

Chrome Extensions > Reference > API
https://developer.chrome.com/docs/extensions/reference/api?hl=ja

標準機能を呼び出すAPIが見つけられない。

また、セキュリティ的にも「Ctrl + Shift + B」キーを投げつけるようなことはできないのか?

拡張機能の作り方の調査…

以下の記事で実装できそうなのでやってみた。

Chrome拡張機能とローカルアプリでプロセス間通信
https://dev.classmethod.jp/articles/chrome-native-message/

ネイティブ メッセージング
https://developer.chrome.com/docs/extensions/develop/concepts/native-messaging?hl=ja

作ったもの

拡張機能のアイコンをクリックしてブックマークバーの表示/非表示を切り替え可能です。

参考にしたサイトのソースからプロセス間通信の処理を削除して、ローカルアプリの実行のみ行っています。

if WinExist("ahk_exe chrome.exe") {
    WinActivate
    Send "^+b"
}

ローカルアプリといっても、Autohotkeyのスクリプトで上記の4行を実行してChromeに「Ctrl + Shift + B」キーを送信するだけです。

なお、アイコンは、Googleのサイトから借用しています。ちょっと小さい。

Material Symbols & Icons
https://fonts.google.com/icons

拡張機能のソースファイル

bookmarks_bar_ext_20240514.zip

インストール手順/野良拡張機能の読み込み

  1. 「bookmarks_bar_ext_20240514.zip」ファイルを展開し、C:ドライブの直下に格納します。
C:\tool\chrome
├─bookmarks_bar_ext.ahk
├─bookmarks_bar_ext.json
├─レジストリ削除.reg
├─レジストリ登録.reg
└─Extension
    ├─html
    ├─images
    └─js

※格納場所固定。

2. 以下をアドレスバーに入力してChromeの機能拡張ページを表示します。
chrome://extensions/

3. 「パッケージ化されていない拡張機能を読み込む」ボタンで上記の「Extension」フォルダを指定します。

4. 読み込んだ拡張機能のIDを確認します。

5. 以下のファイルの拡張機能のID「jmkojgalabgapeklppjcmheekpnjedgh」部分を手順4.で確認したIDに修正します。

bookmarks_bar_ext.json

{
    "name": "bookmarks_bar_ext",
    "description": "bookmarks bar extension for chrome",
    "path":"C:\\tool\\chrome\\bookmarks_bar_ext.ahk",
    "type": "stdio",
    "supports_native_initiated_connections": true,
    "allowed_origins": ["chrome-extension://jmkojgalabgapeklppjcmheekpnjedgh/"]
}

※最後のスラは必須

6. 「更新」ボタンで再読み込みします。

7. 「レジストリ登録.reg」ファイルを実行してレジストリを追加します。

アンインストール

  1. Chromeの機能拡張ページで拡張機能を削除します。

2. 「レジストリ削除.reg」ファイルを実行してレジストリを削除します。

動作確認環境

  • Windows 11
  • Chrome 最新版
  • Autohotkey V2

自分の環境では意図したとおり動作していますが、動作保証はいたしかねます…w

「新しいタブ」では、ブックマークバーの非表示が機能しないようです。(Chromeの仕様)

機能追加予定

ChromeのAPIで簡単に実装できるのかもしれませんが、拡張機能について初めて調べてまったくの知識不足のため、上記のとおりローカルアプリ実行する実装となっています。

レジストリにキーを1つ追加してあげるだけでChromeとローカルアプリが連携できることが分かったのは良かったかな。___φ(. . )メモメモ

他のショートカットキーも追加していけば機能拡張は可能です。1個できるとN個できるやつ。機能追加予定はありません。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です