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 kCtrl-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
aC-q
byly staré časy "scroll lock toggle". Tuto funkci můžete zakázat přidánímstty ixany
astty 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.
- Zadejte
about:support
v adresním řádku. - V části Základy aplikací> Adresář profilu klikněte na Otevřít adresář otevřete adresář vašeho profilu Firefoxu.
- V adresáři profilu vytvořte nový adresář s názvem
chrome
- V rámci
chrome
adresář, vytvořte nové souboryuserChrome.css
auserChrome.xml
s obsahem uvedeným níže. - 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>