FireFoxのキーボードショートカットを設定(無効化)する

FireFoxのキーボードショートカットを設定(無効化)する

私が使うskhdシステム全体のキーボード ショートカットを管理しようとしましたが、たまに漏れてしまい、代わりに Firefox に取得されてしまいます。

FF のキーボード ショートカット (具体的にはタブを切り替えるショートカット) を無効にしてCommand{number}それskhdをドロップしたり実行していない場合でも、意図せずに別のショートカットをトリガーして予期しない動作が発生しないようにするにはどうすればよいですか?

答え1

ふう、これは難しくて興味深いものでした。まず Windows でこれをどうやって実行したかを説明し、次に Linux で実行する方法を説明します。この手順は Firefox 74 でうまくいきました。

免責事項:これによりFirefoxのインストールが壊れる可能性がありますが、ない推奨されているようですが、Firefox を更新するたびにこのプロセスを繰り返す必要があります。そのため、Firefox のインストールから、特にファイルなど、重要なものはすべて必ずバックアップしてくださいomni.ja

(他の方法があればそれをお勧めしますが、私の知る限り、これがメインのキーセットを変更する唯一の方法です。(これは、悪意のある拡張機能が特定の動作を乗っ取るのを防ぐための、Mozilla 側のセキュリティ上の考慮事項である可能性があります。))

これを実現するために、まず最新の7zipをインストールしました。Niniteインストーラーbrowser次に、 Firefox インストール ディレクトリのサブディレクトリ (私の場合は )に移動しましたC:\Program Files\Mozilla Firefox\browser。その後、7zip を使用してomni.ja別の場所に解凍しました。

次に、新しく解凍したomniディレクトリで、ファイルを変更しますchrome\browser\content\browser\browser.xhtml。変更内容の差分は次のとおりです。

--- browser.xhtml.orig  2020-03-27 16:42:54.377242187 +0000
+++ browser.xhtml       2020-03-27 16:43:01.865242187 +0000
@@ -333,7 +333,6 @@

     <key data-l10n-id="nav-reload-shortcut" command="Browser:Reload" modifiers="accel" id="key_reload"/>
     <key data-l10n-id="nav-reload-shortcut" command="Browser:ReloadSkipCache" modifiers="accel,shift" id="key_reload_skip_cache"/>
-    <key id="key_viewSource" data-l10n-id="page-source-shortcut" command="View:PageSource" modifiers="accel"/>
     <key id="key_viewInfo" data-l10n-id="page-info-shortcut" command="View:PageInfo"   modifiers="accel"/>
     <key id="key_find" data-l10n-id="find-shortcut" command="cmd_find" modifiers="accel"/>
     <key id="key_findAgain" data-l10n-id="search-find-again-shortcut" command="cmd_findAgain" modifiers="accel"/>
@@ -380,17 +379,6 @@
     <key id="key_undoCloseTab" command="History:UndoCloseTab" data-l10n-id="tab-new-shortcut" modifiers="accel,shift"/>
     <key id="key_undoCloseWindow" command="History:UndoCloseWindow" data-l10n-id="window-new-shortcut" modifiers="accel,shift"/>

-
-<key id="key_selectTab1" oncommand="gBrowser.selectTabAtIndex(0, event);" key="1" modifiers="accel"/>
-<key id="key_selectTab2" oncommand="gBrowser.selectTabAtIndex(1, event);" key="2" modifiers="accel"/>
-<key id="key_selectTab3" oncommand="gBrowser.selectTabAtIndex(2, event);" key="3" modifiers="accel"/>
-<key id="key_selectTab4" oncommand="gBrowser.selectTabAtIndex(3, event);" key="4" modifiers="accel"/>
-<key id="key_selectTab5" oncommand="gBrowser.selectTabAtIndex(4, event);" key="5" modifiers="accel"/>
-<key id="key_selectTab6" oncommand="gBrowser.selectTabAtIndex(5, event);" key="6" modifiers="accel"/>
-<key id="key_selectTab7" oncommand="gBrowser.selectTabAtIndex(6, event);" key="7" modifiers="accel"/>
-<key id="key_selectTab8" oncommand="gBrowser.selectTabAtIndex(7, event);" key="8" modifiers="accel"/>
-<key id="key_selectLastTab" oncommand="gBrowser.selectTabAtIndex(-1, event);" key="9" modifiers="accel"/>
-
     <key id="key_wrCaptureCmd"
     key="#" modifiers="control"
     command="wrCaptureCmd"/>
@@ -3748,7 +3736,6 @@
               <menu id="webDeveloperMenu" data-l10n-id="menu-tools-web-developer">
                 <menupopup id="menuWebDeveloperPopup">
                   <menuitem id="menu_pageSource"
-                            key="key_viewSource"
                             command="View:PageSource" data-l10n-id="menu-tools-page-source"/>
                 </menupopup>
               </menu>

ご覧のとおり、keyのエントリを削除し、エントリ内のそのエントリkey_viewSourceへの参照を削除しました。また、およびエントリも削除しました。keymenuItemkey_selectTab[1-8]key_selectLastTab key

これを実行したら、今度はそれを再び zip で圧縮します。 の最上位レベルに移動しomni、そのすべてのコンテンツを選択して右クリックし、7-zip を選択して、「アーカイブに追加」します。

新しいアーカイブの名前をomni.ja、形式をzip、圧縮レベルを に設定しますStore

7zip 圧縮オプション

既存のファイルのバックアップを作成しC:\Program Files\Mozilla Firefox\browser\omni.jaomni.ja変更したファイルに置き換えました。

最後に、cmdウィンドウを開き、--purgecaches(例: )で Firefox を開きますC:\Program Files\Mozilla Firefox\firefox.exe --purgecaches

この時点で、Firefox が開き、Ctrl-Uソースが表示されなくなり、Ctrl-[1-9]タブも選択されなくなりました。成功です!

Linux ユーザーの場合は、7zip の代わりに、次の操作を実行できます。

[gnubeard@mothership: ~]$ mkdir tmp
[gnubeard@mothership: ~]$ cd tmp
[gnubeard@mothership: ~/tmp]$ unzip ../omni.ja

適切な変更を加えてから、次の操作を実行します。

[gnubeard@mothership: ~/tmp]$ zip -qr0XD ../omni.ja *

firefox --purgecaches実行してリロードすることを忘れないでくださいomni.ja

この投稿の最後に記載されているリンクでは を使用するように記載されzip -qr9XDていますが、これにより圧縮レベルが最大に設定され、これが機能するには zip 圧縮を有効にすることはできないと思います (これを読んでいて同意しない場合は、訂正してください)。

私は質問(Ctrl-UCtrl-[1-9])に挙げられている懸念に具体的に対処するためにこれをまとめましたが、これはすべきメインキーセットのショートカットをすべて削除する作業を行います。これらはすべて にありますbrowser.xhtml

(編集: 調査の過程で、元の質問と、無効にしたいという別の質問を混同してしまったようですCtrl-U。そのショートカットを無効にしたくない場合は、viewSource私が行った削除をそのままにしておいてください。)

リンク:

http://shallowsky.com/blog/tech/web/modifying-omni.ja.html

これは以前に書かれたものですbrowser.xulに改名されましたbrowser.xhtml、残念ながら、推奨されるコマンドは、形式の変更によりsed機能しなくなりました。browser.xhtml

http://forums.mozillazine.org/viewtopic.php?f=27&t=3025663

これが私がこのオプションを発見した方法です。--purgecaches予想以上に Google 検索が必要でした。

https://mike.kaply.com/2013/05/06/dont-unpack-and-repack-omni-jar/

マイク・カプリーは7年前に次のように推奨した。誰もそんなことしないomn​​i.ja のキーセット エントリを変更するのではなく、何らかの方法で上書きすることで、目的の効果を実現できる可能性がありますが、その場合、それに関するドキュメントを見つけることができませんでした。

https://developer.mozilla.org/en-US/docs/Archive/Mozilla/XUL/Tutorial/キーボードショートカット

XUL に関する古いドキュメント。読むのは興味深いですが、これを実現するのに直接役立ちませんでした。

関連情報