最初作ってたのとはほぼ別物なほどに変化しました

最初は名前の通りchromeの拡張機能一覧の画面へのショートカットをつくるつもりでした

拡張機能のページヘはショートカットキーでいけないし、オプション→ツール→拡張機能 っていうのが面倒です
ショートカットキーを設定できる拡張機能を使ってもchromeの固有ページや拡張機能、ローカルのファイルだと動作しないです
なのでいつでも拡張機能のページが開けるショートカットキーを作るのが今回の目的……でした

最終的にできたのは元の機能が全部の機能のごく一部ということに…


他の拡張機能で一部のページが動かない理由は、ページ内にスクリプトを埋め込めないからです
キーボード入力を受け取って、入力が設定されたキーのときにそれに応じた処理を行うようにしたスクリプトを埋め込んでショートカットキーを設定します
なのでスクリプトが埋め込めないページでは、ショートカットキーが動作しません

ということで、ページにスクリプトを埋め込まない方法を使いました
でも、それだと4つしか設定できないことが判明

拡張機能を開くだけだと問題ないですが、せっかくなのでもうちょっと機能をいれとこうとしてたのでどれを入れようか悩みました
結局、スクリプトを自分で入力できるようにして好きなものを設定できるようにすることに…
ついでにボタン設置してそこからページ内にスクリプトやCSSを埋め込めるようにしました


*使い方*

#ショートカットキーの設定
ショートカットキーを設定できます

デフォルトでは、

Ctrl-E: 拡張機能のページを新しいタブで開く
Ctrl-←: 左のタブに移動
Ctrl-→: 右のタブに移動
Ctrl-↓: 現在のタブを閉じる

になってます

場合によって、未設定になっている場合もあります
インストール後、拡張機能画面の右下の「キーボードショートカット」を選択肢して、Link to Extensionsのところのキーを設定してください
ここを変えることで好きなキーを設定できます

lte05


ショートカットキーを押したときの動作も変更できます
右上のこの拡張機能のボタンを押して、左下のoptionを押すと↓の画面が出ます
lte02

Fkeyというのがそれぞれのショートカットキーを押した時に行うスクリプトです
ここを書きかえて、「save」を押して保存すればショートカットキーで行う内容を変えれます
元の状態に戻したい場合は「default」を押してください
この場合も「save」を押さないと保存されません

わからない人にとっては全くわからないと思うのでsampleをいくつか置いてます
左側のsampleを押すと↓の画面になります
lte04
これをコピペして必要に応じて中身を書き換えればOKです


#ボタン

右上の拡張機能のボタンを押すと↓のポップアップウィンドウが出ます
lte01
左下のOptionは上記のオプション画面に行きます

広いテキストエリアにスクリプトを書いて、右下のExecを押すとスクリプトを実行出来ます
上のセレクトボックスからオプション画面と同じsampleを呼び出せます

ページ内でスクリプトを実行したい場合は、一番上のサンプルの
//* ページの中でJavaScript実行 *//
var code = "var a = 100;console.log(a)";
chrome.tabs.query({currentWindow:true,active:true}, function(tabs){
chrome.tabs.executeScript(tabs[0].id,{
code: code,
runAt: "document_idle"
});
});
のようにして、
var code="ここにスクリプトを書く";
を書くか、
#JS
//* #JSから始まるとページ内実行 *//
console.log("このメッセージはページ内のコンソールで表示されます");
一番上の行に
#JS
と書いてその下にスクリプトを書くかでできます

ポップアップウィンドウを開いた時に、「このページではページ内にJavaScriptやCSSを埋め込むことはできません」と表示されてるページではページ内にスクリプトを埋め込むことはできません

・about: から始まるページ
・chrome:// から始まるページ
・chrome-extension:// から始まるページ
拡張機能一覧のページで「ファイルの URL へのアクセスを許可する」にチェックしていない場合
・file:/// から始まるページ()

がスクリプトを埋めこないページです
ページ内に埋め込みができないページでは、「指定URLを新しいタブで開く」や「右のタブに移動」などchrome APIで操作できるものしか使い道がないです

ページ内でスクリプトを実行する場合は、グローバル変数を作ったり、DOMの要素のオブジェクトにプロパティ追加したりしても、それはスクリプトの実行が終わると保持されません
DOMの要素にデータを持たせたい場合は、setAttributeを使うとデータは保持されます

よく使うスクリプトやCSS(フォントとフォントサイズを変える など)を登録しておくことも可能です
オプション画面のsavedataというところを押します
lte03
こんな画面が出ます
ここにコード書いて保存すれば、ポップアップウィンドウのセレクトボックスで表示されるようになります

下の「+」ボタンを押すと新しいテキストエリアが作られます

コード書くようじゃなくて、単純にメモ帳代わりにもなります
保存できますし、いつでもポップアップウィンドウ出せば見れます(編集はポップアップウィンドウからはできませんけど…)


*ダウンロード*

lte.crx

crxファイルのインストはこちらを参考にしてください