OJF*_*ord 6 firefox keyboard-shortcuts
我使用skhd来管理系统范围的键盘快捷键,但偶尔会有一个泄漏并被 FireFox 拾取。
如何禁用 FF 中的键盘快捷键 - 特别是Command-{number}切换选项卡 - 以便即使skhd删除它或未运行,我也不会因无意触发不同的快捷键而出现意外行为?
唷,这是一场艰难而有趣的比赛!我将介绍如何在 Windows 下执行此操作,然后解释如何在 Linux 中执行此操作。这个过程对我来说适用于 Firefox 74。
免责声明:这可能会破坏您的 Firefox 安装,似乎不推荐这样做,并且每次更新 Firefox 时,您都需要重复此过程。因此,请务必备份 Firefox 安装中您关心的所有内容,尤其是omni.ja文件。
(如果有其他方法,我会推荐它,但据我所知,这是更改主密钥集的唯一方法。(这可能是 Mozilla 方面的安全考虑,以防止恶意扩展劫持某些行为。))
为了实现这一点,我首先使用Ninite 安装程序安装了最新的 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>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我删除了key的条目,并删除了条目中key_viewSource对该条目的引用。我还删除了和条目。keymenuItemkey_selectTab[1-8]key_selectLastTab key
完成此操作后,现在是时候将其压缩回来了。导航到 的顶层omni,选择其所有内容,右键单击,选择 7-zip,然后选择“添加到存档”。
将新存档的名称设置为omni.ja,将格式设置为zip,并将压缩级别设置为Store。
我对现有文件进行了备份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
Run Code Online (Sandbox Code Playgroud)
进行适当的修改,然后:
[gnubeard@mothership: ~/tmp]$ zip -qr0XD ../omni.ja *
Run Code Online (Sandbox Code Playgroud)
不要忘记运行firefox --purgecaches重新加载omni.ja。
我在这篇文章末尾包含的链接提到使用zip -qr9XD,但我相信将压缩级别设置为最大,并且为了使其工作,我相信无法启用 zip 压缩(如果您正在阅读本文并且不同意,请纠正我。)
我将其放在一起专门解决问题(Ctrl-U,Ctrl-[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) 七年前建议不要这样做。通过以某种方式覆盖omni.ja的键集条目而不是修改它,很可能可以达到预期的效果,但如果是这样,我无法找到有关它的文档。
https://developer.mozilla.org/en-US/docs/Archive/Mozilla/XUL/Tutorial/Keyboard_Shortcuts
有关 XUL 的过时文档。读起来很有趣,但并没有直接帮助我实现这一点。
| 归档时间: |
|
| 查看次数: |
2820 次 |
| 最近记录: |