Как отключить сочетание клавиш Ctrl+Q в Firefox в Linux
Начиная с Firefox 57, нет способа отключить сочетание клавиш Ctrl + Q с помощью плагина в Linux (см. Эту ошибку). Все обходные пути, которые я нашел, основаны на установке глобального сочетания клавиш Ctrl + Q для "кражи" его из Firefox. Но это отключит этот ярлык в каждом приложении, и я хочу отключить этот ярлык только в Firefox, не затрагивая любое другое приложение.
Есть ли способ отключить или перехватить ярлык только для одного приложения? Я использую Ubuntu с Unity.
6 ответов
В about:config
установить предпочтения.
Firefox> = 65
browser.sessionstore.warnOnQuit true
browser.warnOnQuit true
Старый Firefox
browser.showQuitWarning true
browser.warnOnQuit true
Протестировано во всех версиях, с которыми я столкнулся на 61.0.2-64.0.2 на 64-битной Linux (и 60esr-канале на Win10).
tl/dr: назначить глобальный ярлык для Ctrl-Q
В Firefox Quantum about:config
настройки, используемые для предупреждения о закрытии Firefox при случайном нажатии клавиши Ctrl-Q, больше не работают.
Обходной путь: на Arch Linux | Среда рабочего стола XFCE (другие дистрибутивы и / или рабочие столы Linux могут использовать аналогичный подход):
Меню Whiskers >> Все настройки >> Клавиатура >> Сочетания клавиш приложения >> Добавить
Добавить новое "приложение",
null
; назначить егоCtrl-Q
нажатие клавиши- Обновление (комментарий @justderb): "Использование" true "вместо" null "хорошо, если вы не хотите, чтобы всплыло окно с ошибкой".
Invocation: здесь, я нажал Ctrl-Q
в Firefox Quantum v. 60.0.1 (64-разрядная версия); вместо того, чтобы выйти из Firefox, я получаю это всплывающее окно,
Предостережение: это, конечно, глобально влияет на все нажатия клавиш Ctrl-Q. Однако, согласно моим собственным предпочтениям, этот недостаток перевешивается из-за аннулирования тех случайных закрытий Firefox Ctrl-Q (после чего я должен повторно войти на веб-сайты: GitHub; reddit; ...).
Обновить
Ответ @crazypyro также работает для меня (FF Quantum 63.0 на x86_64 Linux), выдающего всплывающее предупреждение, если вы пытаетесь выйти из Firefox. Это, вероятно, следует рассматривать как конкретный ответ, с моим решением в качестве более общего обходного пути.
about:config
(оба следующих набора true
):
browser.showQuitWarning
browser.warnOnQuit
Уродливый, но простой и эффективный способ всегда держать открытую страницу с активным onbeforeunload
обработчик, то есть вызовет "Эта страница просит вас подтвердить, что вы хотите выйти - введенные вами данные могут быть не сохранены". диалоговое окно, когда вы пытаетесь закрыть его.
Таким образом, если вы случайно попытаетесь нажать CTRL+Q, вы получите это диалоговое окно и можете выбрать "остаться на этой странице", чтобы отменить выход.
Редактировать: Пользовательская страница, которую я сделал только для этой цели
Отключите Ctrl + q с userChrome.js в Firefox Quantum
Это может быть достигнуто без внешнего приложения с помощью небольшого кусочка JavaScript в вашем профиле Firefox.
В качестве предварительного условия необходимо включить userChrome.js (см. Ниже или получить из исходного репозитория GitHub )
После копирования каталога chrome и его содержимого в профиль пользователя создайте файл <profile-dir>/chrome/disable_ctrl_q.uc.js
со следующим содержанием:
var kqa = document.getElementById('key_quitApplication');
if (kqa) kqa.remove();
Наконец, перезапустите Firefox, и ctrl + q больше не приведет к закрытию приложения.
Включение userChrome.js в Firefox Quantum
Для полноты ниже приведено полное содержание измененных файлов Chrome. Чтобы включить javascript userChrome, создайте эти два файла внутри chrome
каталог в вашем профиле Firefox.
- Тип
about:support
в адресной строке. - В разделе " Основные сведения о приложении"> "Каталог профиля" нажмите кнопку " Открыть каталог" , чтобы открыть каталог профиля Firefox.
- В каталоге профиля создайте новый каталог с именем
chrome
- В пределах
chrome
каталог, создавать новые файлыuserChrome.css
а такжеuserChrome.xml
с содержанием, перечисленным ниже. - Перезапустите Firefox (вы, вероятно, также захотите создать файл .uc.js выше, если вы выполняете эти шаги, чтобы отключить ctrl + q)
userChrome.css
/* Copyright (c) 2017 Haggai Nuchi
Available for use under the MIT License:
https://opensource.org/licenses/MIT
*/
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
toolbarbutton#alltabs-button {
-moz-binding: url("userChrome.xml#js");
}
userChrome.xml
<?xml version="1.0"?>
<!-- Copyright (c) 2017 Haggai Nuchi
Available for use under the MIT License:
https://opensource.org/licenses/MIT
-->
<bindings id="generalBindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xbl="http://www.mozilla.org/xbl">
<binding id="js" extends="chrome://global/content/bindings/toolbarbutton.xml#menu">
<implementation>
<constructor><![CDATA[
function makeRelativePathURI(name) {
let absolutePath = Components.stack.filename;
return absolutePath.substring(0, absolutePath.lastIndexOf("/") + 1) + name;
}
// The following code executes in the browser context,
// i.e. chrome://browser/content/browser.xul
Services.scriptloader.loadSubScript(makeRelativePathURI("userChrome.js"), window);
]]></constructor>
</implementation>
</binding>
</bindings>
Я смог получить то, что мне нужно с AutoKey. После установки я создал пустой скрипт с назначенными Ctrl + Q как "Горячая клавиша" и .*Firefox
как "оконный фильтр".
Затем в настройках AutoKey я добавил его в автозапуск и отключил значок уведомления, чтобы он стал прозрачным для меня.
Я использовал это в течение нескольких часов, и это выглядит многообещающим - никаких ложных срабатываний или пропущенных уловов до сих пор. Прямо сейчас Ctrl + Q не работает для Firefox, но он прекрасно работает в PhpStorm, например.
Кроме того, ошибка 1215061 дает некоторую надежду, что в будущем это будет легче, и Firefox наконец-то получит несколько приличных настроек сочетаний клавиш.
Меня это то и дело мучило в различных версиях Firefox.
Вот одно решение, которое всегда работает и работает и для других браузеров:
Держите вкладку открытой на этой странице (вы можете сохранить ее локально): https://janschejbal.github.io/disable-ctrl-q/
Вам нужно один раз нажать кнопку на этой странице, чтобы Firefox подумал, что там происходит что-то важное, но затем вы можете полностью забыть об этом.
Прочтите страницу для объяснения.
Меня это несколько раз спасало (: