Jak wyłączyć skrót Ctrl + Q w przeglądarce Firefox w systemie Linux

56

Ponieważ Firefox 57 nie ma możliwości wyłączenia Ctrl+ Qskrótu przez wtyczkę w systemie Linux (zobacz ten błąd ). Wszystkie obejścia, które znalazłem, polegają na ustawieniu skrótu globalnego Ctrl+ Qna „kradzież” go z przeglądarki Firefox. Spowoduje to jednak wyłączenie tego skrótu w każdej aplikacji i chcę wyłączyć ten skrót tylko w przeglądarce Firefox, bez wpływu na żadną inną aplikację.

Czy istnieje sposób, aby wyłączyć lub złapać skrót tylko dla jednej aplikacji? Używam Ubuntu z Unity.

rob006
źródło
Ciekawe pytanie, ale odpowiedź może zależeć od przypadku użycia. Przypadkowe naciśnięcia klawiszy? Tryb kiosku?
l0b0
4
@ l0b0 Przypadkowe naciśnięcia klawiszy. To jest zwykły komputer, nic szczególnego.
rob006
Czy w takim przypadku masz więcej szczegółów? Właśnie sprawdzam, czy istnieje sposób, aby system można skonfigurować do robienia tego, co chcesz, na przykład zapisywania kart po wyjściu, aby uniknąć czegoś, co, jak podejrzewam, będzie kruchym włamaniem.
l0b0
6
@ l0b0 Chcę zapobiec zamknięciu przeglądarki przez przypadkowe naciśnięcie klawisza. Po zamknięciu przeglądarki zmienia się zbyt wiele rzeczy (zamykanie sesji, kończenie połączeń), wolę zapobiegać zamykaniu przeglądarki niż naprawiać jej efekty.
rob006,

Odpowiedzi:

46

W about:configustawionych preferencjach.

Firefox> = 65

browser.sessionstore.warnOnQuit true
browser.warnOnQuit true

wprowadź opis zdjęcia tutaj

Źródło

Starszy Firefox

browser.showQuitWarning true
browser.warnOnQuit true

Przetestowany we wszystkich wersjach Natknąłem się na 61.0.2-64.0.2 na 64-bitowym Linuksie (i na kanale 60esr na Win10). zrzut ekranu

CrazyPyro
źródło
2
Jakieś konstruktywne informacje zwrotne z tego zdania?
CrazyPyro,
4
A teraz, począwszy od FF 63.0.3 (64-bitowy Ubuntu), ctrl-Q ponownie dla mnie natychmiast wychodzi, pomimo włączenia obu tych opcji. To zadziwiające, jaki bałagan zrobili z tej prostej (błędnej) funkcji. Ach cóż, może znowu zadziała w v64 ...
Pont
3
Nie widzę browser.showQuitWarningna ff kwantowej 64.0 64bit na Linuksie. browser.warnOnQuitjest włączony, ale nic nie robi?
bool3max
4
To nie działa dla mnie w przeglądarce Firefox 66.0.5 w systemie Manjaro Linux. Będę musiał sobie browser.tabs.warnOnClose;trueteraz poradzić . Powiązane: bugzilla.mozilla.org/show_bug.cgi?id=502908#c73
aguadopd
2
Wybrana odpowiedź nie rozwiązuje już problemu.
Paul
15

tl / dr: przypisz globalny skrót do Ctrl-Q

W Firefox Quantum about:configustawienia, które ostrzegały przed zamknięciem Firefoksa przez przypadkowe naciśnięcie klawisza Ctrl-Q, już nie działają.

Obejście: w Arch Linux | Środowisko pulpitu XFCE (inne dystrybucje i / lub komputery stacjonarne z systemem Linux mogą umożliwiać podobne podejście):

  • Menu Whiskers >> Wszystkie ustawienia >> Klawiatura >> Skróty aplikacji >> Dodaj

  • Dodaj nową „aplikację” null,; przypisz to do Ctrl-Qnaciśnięcia klawisza

    • Aktualizacja (komentarz @ justderb): „Używanie„ true ”zamiast„ null ”jest miłe, jeśli nie chcesz, aby okno błędu wyskakiwało.”

Firefox - „wyłącz” Ctrl-Q

Wywołanie: tutaj nacisnąłem Ctrl-Qw Firefox Quantum v. 60.0.1 (64-bit); zamiast wychodzić z Firefoksa, pojawia się to okienko wyskakujące,

Firefox - Ctrl-Q „wyłączony”

Zastrzeżenie: to oczywiście wpływa globalnie na wszystkie naciśnięcia klawiszy Ctrl-Q. Jednak - zgodnie z moimi własnymi preferencjami - tę niedogodność przeważa anulowanie przypadkowych zamknięć przeglądarki Firefox Ctrl-Q (po czym muszę ponownie zalogować się na stronach internetowych: GitHub; reddit; ...).

Aktualizacja

Odpowiedź @crazypyro również działa dla mnie (FF Quantum 63.0 na Linuksie x86_64), dając ostrzeżenie wyskakujące, jeśli spróbujesz zamknąć Firefoksa. Prawdopodobnie należy to uznać za konkretną odpowiedź, a moje rozwiązanie jest bardziej ogólne.

about:config(oba następujące ustawione na true):

  • browser.showQuitWarning
  • browser.warnOnQuit
Victoria Stuart
źródło
7
Używanie truezamiast nulljest przyjemne, jeśli nie chcesz, aby wyskoczyło okno błędu.
justderb
@justderb: nice! :-D
Victoria Stuart
1
dla mnie w plazmie archlinux / kde 5 nie mogłem zrobić globalnego skrótu bez uprzedniego wybrania aplikacji - to nie może być prawda | zero, ale dzięki twojej sugestii udało mi się zmienić mapowanie, aby przełączyć mikrofon - co na komputerze w pracy jest dla mnie bezcelowe w każdym razie .. dzięki!
JTC
Mapowanie CTRL + q w sxhkd również przejmuje kontrolę nad skrótem, uniemożliwiając Firefoxowi zamknięcie.
Simon Cedergren Malmqvist
Działa w mennicy 19.
Paul
7

Wyłącz Ctrl + q za pomocą userChrome.js w Firefox Quantum

Można tego dokonać bez zewnętrznej aplikacji przez odrobinę javascript w twoim profilu Firefox.

Jako warunek wstępny musisz włączyć userChrome.js (patrz poniżej lub uzyskać z oryginalnego repozytorium GitHub )

Po skopiowaniu katalogu chrome i jego zawartości do profilu użytkownika utwórz plik <profile-dir>/chrome/disable_ctrl_q.uc.jso następującej treści:

var kqa = document.getElementById('key_quitApplication');
if (kqa) kqa.remove();

Na koniec zrestartuj Firefoksa, a kombinacja klawiszy ctrl + q nie spowoduje już zamknięcia aplikacji.


Włączanie userChrome.js w Firefox Quantum

Dla kompletności, poniżej znajduje się pełna zawartość zmodyfikowanych plików chrome. Aby włączyć javascript userChrome, utwórz te dwa pliki w chromekatalogu w swoim profilu Firefox.

  1. Wpisz about:supportw pasek adresu.
  2. W obszarze Podstawy aplikacji> Katalog profili kliknij przycisk Otwórz katalog , aby otworzyć katalog profili Firefox.
  3. W katalogu profilu utwórz nowy katalog o nazwie chrome
  4. Wewnątrz chromekatalogu, tworzyć nowe pliki userChrome.cssi userChrome.xmlzawartością wymienione poniżej.
  5. Uruchom ponownie Firefox (prawdopodobnie chcesz również utworzyć plik .uc.js powyżej, jeśli wykonujesz te kroki, aby wyłączyć 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>
myślący
źródło
1
To nie działa w przeglądarce Firefox 62
Grief
1
Działa z najnowszą stabilną przeglądarką Firefox 61. Mam nadzieję, że 62 zostanie naprawiona, zanim opuści wersję beta.
thinkmassive
Teraz korzystam z rozwiązania CrazyPyro superuser.com/a/1352295/308508
thinkmassive
Nie działa w wersji 69.0.2 (nie w wersji beta). Ponadto, document.getElementById('key_quitApplication')zwraca null. Czy nazwa tego elementu uległa zmianie?
tsbertalan
6

Brzydkie, ale proste i skuteczne obejście problemu polega na utrzymywaniu otwartej strony z aktywnym onbeforeunloadmodułem obsługi, tzn. Powoduje wyświetlenie komunikatu „Ta strona prosi o potwierdzenie zamiaru opuszczenia - wprowadzone dane mogą nie zostać zapisane”. okno dialogowe podczas próby zamknięcia.

W ten sposób, jeśli przypadkowo spróbujesz CTRL + Q, otrzymasz to okno dialogowe i możesz wybrać opcję „zostań na tej stronie”, aby anulować wyjście.

Edycja: strona niestandardowa, którą wykonałem właśnie w tym celu

Jan Schejbal
źródło
miły duch hakera!
Daniel Hitzel
Dzięki! Dodano link do mojej implementacji.
Jan Schejbal
Dzięki za to. Pracuje dla mnie, a więc tak serowy, że to uwielbiam (: Zdumiewa mnie to, że FF pomieszała tę prostą rzecz
jwd
4

Dzięki AutoKey udało mi się zdobyć to, czego potrzebuję . Po instalacji stworzyłem pusty skrypt z przypisanym Ctrl+ Qjako „Hotkey” i .*Firefoxjako „Window filter”.

wprowadź opis zdjęcia tutaj

Następnie w ustawieniach AutoKey dodałem go do ikony autostartu i wyłączyłem powiadomienie, więc staje się dla mnie przezroczysty.

wprowadź opis zdjęcia tutaj

Używałem go przez kilka godzin i wygląda obiecująco - jak dotąd brak fałszywych trafień lub pominiętych połowów. W tej chwili Ctrl+ Qnie działa w Firefoksie, ale działa doskonale doskonale na przykład w PhpStorm.


Ponadto błąd 1215061 daje nadzieję, że będzie to łatwiejsze w przyszłości, a Firefox wreszcie uzyska przyzwoite ustawienia skrótów klawiaturowych.

rob006
źródło