配置(停用)FireFox 鍵盤快速鍵

配置(停用)FireFox 鍵盤快速鍵

我用斯赫德管理系統範圍的鍵盤快速鍵,但有時會洩漏並被 FireFox 擷取。

如何停用 FF 中的鍵盤快捷鍵 - 特別是Command-{number}切換選項卡 - 以便即使skhd刪除它或未運行,我也不會因無意觸發不同的快捷鍵而出現意外行為?

答案1

唷,這是一場艱難而有趣的比賽!我將介紹如何在 Windows 下執行此操作,然後解釋如何在 Linux 中執行此操作。這個過程對我來說適用於 Firefox 74。

免責聲明:這可能會破壞您的 Firefox 安裝,確實如此不是似乎是建議的,並且每次更新 Firefox 時,您都需要重複此過程。因此,請務必備份 Firefox 安裝中您關心的所有內容,尤其是檔案omni.ja

(如果有其他方法,我會推薦它,但據我所知,這是更改主密鑰集的唯一方法。(這可能是 Mozilla 方面的安全考慮,以防止惡意擴展)劫持某些行為。))

為了實現這一點,我首先安裝了最新的 7zip九個安裝程序。然後,我導航到browserFirefox 安裝目錄的子目錄,在我的例子中是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

完成此操作後,現在是時候將其壓縮回來了。導覽至 的頂層omni,選擇其所有內容,右鍵單擊,選擇 7-zip,然後選擇「新增至存檔」。

將新存檔的名稱設為omni.ja,將格式設為zip,並將壓縮等級設為Store

7zip 壓縮選項

我對現有文件進行了備份C:\Program Files\Mozilla Firefox\browser\omni.ja,然後替換omni.ja為我修改過的文件。

最後,打開一個cmd窗口,然後使用 開啟 Firefox --purgecaches,例如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選項的方式——谷歌搜尋比我預期的要多。

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

麥克卡普利 (Mike Kaply) 7 年前推薦沒有人這樣做。通過以某種方式覆蓋omni.ja的鍵集條目而不是修改它,很可能可以達到預期的效果,但如果是這樣,我無法找到有關它的文檔。

https://developer.mozilla.org/en-US/docs/Archive/Mozilla/XUL/Tutorial/Keyboard_Shortcuts

有關 XUL 的過時文件。讀起來很有趣,但並沒有直接幫助我實現這一目標。

相關內容