Настроить (отключить) сочетания клавиш FireFox

Настроить (отключить) сочетания клавиш FireFox

я используюсхддля управления общесистемными сочетаниями клавиш, но иногда одно из них просачивается и его подхватывает 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, и удалил ссылку на эту keyзапись в menuItemзаписи. Я также удалил записи key_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-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/

Майк Капли 7 лет назад рекомендовал, чтоникто этого не делает. Вполне возможно было бы достичь желаемого эффекта, каким-то образом переопределив записи набора ключей omni.ja, а не изменяя их, но если это так, то я не смог найти документацию по этому поводу.

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

Устаревшая документация по XUL. Интересно почитать, но напрямую мне это не помогло.

Связанный контент