GNU/Linux >> Znalost Linux >  >> Linux

Jak zakázat zkratku Ctrl+Q ve Firefoxu na Linuxu

V about:config nastavit předvolby.

Firefox>=87

browser.quitShortcut.disabled true

https://bugzilla.mozilla.org/show_bug.cgi?id=52821

Firefox>=65

browser.sessionstore.warnOnQuit true
browser.warnOnQuit true

Zdroj

Starší Firefox

browser.showQuitWarning true
browser.warnOnQuit true

Testováno ve všech verzích, narazil jsem na 61.0.2-64.0.2 na 64bit Linuxu (a na kanál 60esr na Win10).


tl/dr:přiřadit globální zkratku Ctrl-Q

Ve Firefoxu Quantum about:config nastavení, která dříve varovala před uzavřením Firefoxu náhodným stisknutím klávesy Ctrl-Q, již nefungují.

Řešení: na Arch Linux | Desktopové prostředí XFCE (jiná linuxová distribuce a/nebo desktopy mohou umožňovat podobný přístup):

  • Nabídka Whiskers>> Všechna nastavení>> Klávesnice>> Zkratky aplikací>> Přidat

  • Přidejte novou "aplikaci", null; přiřaďte jej k Ctrl-Q stisknutí klávesy

    • Aktualizace (komentář od @justderb):"Použít 'true' místo 'null' je hezké, pokud nechcete, aby se vyskakovalo chybové okno."

Vyvolání: zde jsem stiskl Ctrl-Q ve Firefoxu Quantum v. 60.0.1 (64bitová verze); místo ukončení Firefoxu se mi zobrazí toto vyskakovací okno

Upozornění: to samozřejmě globálně ovlivňuje všechny stisky kláves Ctrl-Q. Nicméně – podle mých vlastních preferencí – tento nedostatek převáží zrušením těchto náhodných uzavření Firefoxu Ctrl-Q (po kterém se musím znovu přihlásit na webové stránky:GitHub; reddit; ...).

Aktualizace 1

Odpověď @crazypyro pro mě také funguje (FF Quantum 63.0 na x86_64 Linuxu) a zobrazí vyskakovací varování, pokud se pokusíte ukončit Firefox. To by mělo být pravděpodobně považováno za konkrétní odpověď, s mým řešením jako obecnějším řešením.

about:config (obě z následujících nastaveno na true ):

  • browser.showQuitWarning
  • browser.warnOnQuit

Aktualizace 2 [2020-03-01]

Nějakou dobu jsem ve Vimu narážel na občasný a frustrující problém, kdy terminál „zamrzl“ a já ztratil kontrolu nad stiskem kláves Vim (vyžaduje, abych zabil/restartoval Vim).

Po nějakém zkoumání se ukázalo, že problém je Software Flow Control (XON/XOFF flow control). Ctrl-s zamrzne terminál, dokud Ctrl-q je stisknuto – což je podle mého výše uvedeného řešení globálně přemapováno na „fiktivní aplikaci“ true .

Řešením tohoto problému je přidání řádků

# enable Ctrl-s and Ctrl-q:
stty -ixon

v horní části vašeho ~/.bashrc , pak otevřete nový terminál a spusťte Vim.

Relevantní odkazy/diskuze:

  • https://unix.stackexchange.com/questions/72086/ctrl-s-hang-terminal-emulator
  • https://stackoverflow.com/questions/3419820/sometimes-my-file-just-freezes-in-my-vi-vim-what-happened
  • https://unix.stackexchange.com/questions/478532/why-is-vim-frozen

  • https://unix.stackexchange.com/questions/72086/ctrl-s-hang-terminal-emulator | ... Dříve existovaly klávesnice s klávesou scroll lock C-s a C-q byly staré časy "scroll lock toggle". Tuto funkci můžete zakázat přidáním stty ixany a stty ixoff -ixon do vašeho ~/.bashrc [... a restartování terminálu]


Zakažte Ctrl+q s userChrome.js ve Firefox Quantum

Toho lze dosáhnout bez externí aplikace malým kouskem javascriptu ve vašem profilu Firefoxu.

Nezbytným předpokladem je aktivace souboru userChrome.js (viz níže nebo jej získáte z původního úložiště GitHub)

Po zkopírování adresáře chrome a jeho obsahu do svého uživatelského profilu vytvořte soubor <profile-dir>/chrome/disable_ctrl_q.uc.js s následujícím obsahem:

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

Nakonec restartujte Firefox a ctrl+q již nezpůsobí ukončení aplikace.

Povolení souboru userChrome.js ve Firefoxu Quantum

Pro úplnost níže uvádíme úplný obsah upravených souborů chrome. Chcete-li povolit javascript userChrome, vytvořte tyto dva soubory v chrome adresář ve vašem profilu Firefoxu.

  1. Zadejte about:support v adresním řádku.
  2. V části Základy aplikací> Adresář profilu klikněte na Otevřít adresář otevřete adresář vašeho profilu Firefoxu.
  3. V adresáři profilu vytvořte nový adresář s názvem chrome
  4. V rámci chrome adresář, vytvořte nové soubory userChrome.css a userChrome.xml s obsahem uvedeným níže.
  5. Restartujte Firefox (pravděpodobně budete také chtít vytvořit soubor .uc.js výše, pokud pomocí těchto kroků deaktivujete 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>

Linux
  1. Jak zakázat příkazy vypnutí a restartu v Linuxu

  2. Jak zakázat automatickou konfiguraci na IPv6 v Linuxu?

  3. Zakažte ve Firefoxu Linux zkratku `ctrl+shift+w`

  1. Jak změnit, odebrat nebo zakázat uživatelské heslo v systému Linux

  2. Jak nainstalovat Firefox 10 na Ubuntu 11.10 / Linux Mint 12

  3. Jak (skutečně) zakázat NCQ v Linuxu

  1. UNIX / Linux :Jak zamknout nebo zakázat uživatelský účet

  2. Jak zakázat konkrétní příkaz pro konkrétního uživatele v Linuxu

  3. Jak zakázat ipv6 na konkrétním rozhraní v linuxu?