Comment désactiver le raccourci Ctrl + Q dans Firefox sur Linux

57

Depuis Firefox 57 il n'y a aucun moyen de désactiver Ctrl+ Qraccourci par plugin sous Linux (voir ce bug ). Toutes les solutions de contournement que j'ai trouvées sont basées sur la définition du raccourci global Ctrl+ Qpour le "voler" dans Firefox. Mais cela désactivera ce raccourci dans chaque application, et je veux désactiver ce raccourci uniquement dans Firefox, sans affecter aucune autre application.

Existe-t-il un moyen de désactiver ou d'intercepter un raccourci pour une seule application? J'utilise Ubuntu avec Unity.

rob006
la source
Question intéressante, mais la réponse peut dépendre du cas d'utilisation. Appui accidentel sur une touche? Mode kiosque?
l0b0
4
@ l0b0 Appui accidentel sur une touche. C'est un PC ordinaire, rien d'extraordinaire.
rob006
Dans ce cas, avez-vous plus de détails? Je vérifie simplement s'il existe un moyen de configurer le système pour faire ce que vous voulez ™, comme enregistrer les onglets lorsque vous quittez, pour éviter quelque chose que je soupçonne d'être un hack fragile.
l0b0
6
@ l0b0 Je veux empêcher la fermeture du navigateur en appuyant sur des touches accidentelles. Il y a trop de choses qui changent après la fermeture du navigateur (fermeture des sessions, fin des connexions), je préférerais empêcher la fermeture du navigateur plutôt que de corriger ses effets.
rob006

Réponses:

46

Dans les about:configpréférences définies.

Firefox> = 65

browser.sessionstore.warnOnQuit true
browser.warnOnQuit true

entrez la description de l'image ici

La source

Firefox plus ancien

browser.showQuitWarning true
browser.warnOnQuit true

Testé dans toutes les versions, je suis tombé sur 61.0.2-64.0.2 sur Linux 64 bits (et le canal 60esr sur Win10). capture d'écran

CrazyPyro
la source
2
Des commentaires constructifs avec ce downvote?
CrazyPyro
4
Et maintenant, à partir de FF 63.0.3 (Ubuntu 64 bits), ctrl-Q se ferme à nouveau instantanément pour moi, malgré l'activation de ces deux options. Il est étonnant de voir quel gâchis ils ont fait de cette simple (mauvaise) fonctionnalité. Eh bien, peut-être que cela fonctionnera à nouveau en v64 ...
Pont
3
Je ne vois pas le browser.showQuitWarningsur ff quantum 64.0 64bit sur linux. browser.warnOnQuitest activé mais ne fait rien?
bool3max
4
Cela ne fonctionne pas pour moi dans Firefox 66.0.5 dans Manjaro Linux. Devra faire face browser.tabs.warnOnClose;truemaintenant. Connexe: bugzilla.mozilla.org/show_bug.cgi?id=502908#c73
aguadopd
3
La réponse sélectionnée ne résout plus le problème.
Paul
15

tl / dr: attribuer un raccourci global à Ctrl-Q

Dans Firefox Quantum, les about:configparamètres qui mettaient en garde contre les fermetures de Firefox via une pression de touche Ctrl-Q accidentelle ne fonctionnent plus.

Solution: sur Arch Linux | Environnement de bureau XFCE (d'autres distributions et / ou bureaux Linux peuvent permettre une approche similaire):

  • Menu moustaches >> Tous les paramètres >> Clavier >> Raccourcis d'application >> Ajouter

  • Ajoutez une nouvelle "application" null,; l'assigner à la Ctrl-Qtouche

    • Mise à jour (commentaire de @justderb): "Utiliser 'true' au lieu de 'null' est bien si vous ne voulez pas que la fenêtre d'erreur apparaisse."

Firefox - «désactiver» Ctrl-Q

Invocation: ici, j'ai appuyé Ctrl-Qsur Firefox Quantum v. 60.0.1 (64 bits); au lieu de quitter Firefox, j'obtiens ce popup,

Firefox - Ctrl-Q 'désactivé'

Mise en garde: cela, bien sûr, affecte globalement toutes les touches Ctrl-Q. Cependant, - selon ma préférence - cette lacune est compensée par l'annulation de ces fermetures accidentelles de Firefox Ctrl-Q (après quoi je dois me reconnecter aux sites Web: GitHub; reddit; ...).

Mise à jour

La réponse de @crazypyro fonctionne également pour moi (FF Quantum 63.0 sur x86_64 Linux), donnant un avertissement contextuel si vous essayez de quitter Firefox. Cela devrait probablement être considéré comme la réponse spécifique, ma solution étant une solution de contournement plus générale.

about:config(les deux valeurs suivantes sont définies sur true):

  • browser.showQuitWarning
  • browser.warnOnQuit
Victoria Stuart
la source
7
Utiliser trueau lieu de nullest bien si vous ne voulez pas que la fenêtre d'erreur apparaisse.
justderb
@justderb: sympa! :-D
Victoria Stuart
1
pour moi dans le plasma archlinux / kde 5, je ne pouvais pas faire de raccourci global sans avoir d'abord choisi une application - ne pouvait pas être vrai | null, mais grâce à votre suggestion j'ai pu le remapper pour basculer le microphone - ce qui sur l'ordinateur de travail est inutile pour moi de toute façon .. merci!
JTC
Le mappage de CTRL + q dans sxhkd détourne également le raccourci, empêchant Firefox de se fermer.
Simon Cedergren Malmqvist
Works in Mint 19.
Paul
7

Désactivez Ctrl + q avec userChrome.js dans Firefox Quantum

Cela peut être accompli sans application externe par un tout petit peu de javascript dans votre profil Firefox.

Comme condition préalable, vous devez activer userChrome.js (voir ci-dessous, ou obtenir à partir du dépôt GitHub d'origine )

Après avoir copié le répertoire chrome et son contenu dans votre profil utilisateur, créez un fichier <profile-dir>/chrome/disable_ctrl_q.uc.jsavec le contenu suivant:

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

Enfin, redémarrez Firefox et ctrl + q ne provoquera plus la fermeture de l'application.


Activation de userChrome.js dans Firefox Quantum

Pour être complet, voici le contenu complet des fichiers Chrome modifiés. Pour activer javascript userChrome, créez ces deux fichiers dans un chromerépertoire de votre profil Firefox.

  1. Tapez about:supportdans la barre d'adresse.
  2. Sous Application Basics> Profile Directory, cliquez sur le bouton Open Directory pour ouvrir votre répertoire de profil Firefox.
  3. Dans le répertoire de profil, créez un nouveau répertoire appelé chrome
  4. Dans le chromerépertoire, créez de nouveaux fichiers userChrome.csset userChrome.xmlavec le contenu répertorié ci-dessous.
  5. Redémarrez Firefox (vous souhaiterez probablement également créer le fichier .uc.js ci-dessus si vous suivez ces étapes pour désactiver 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>
pensif
la source
1
Cela ne fonctionne pas dans Firefox 62
Grief
1
Il fonctionne avec la dernière version stable, Firefox 61. Espérons que 62 soit corrigé avant de quitter la version bêta.
thinkmassive
J'utilise maintenant la solution de CrazyPyro superuser.com/a/1352295/308508
thinkmassive
Ne fonctionne pas dans 69.0.2 (pas bêta). Renvoie également document.getElementById('key_quitApplication')null. Le nom de cet élément a-t-il changé?
tsbertalan
6

Une solution de contournement laide, mais simple et efficace, maintient toujours une page ouverte avec un onbeforeunloadgestionnaire actif , c.-à-d. Déclenchera le message "Cette page vous demande de confirmer que vous souhaitez quitter - les données que vous avez entrées peuvent ne pas être enregistrées." lorsque vous essayez de le fermer.

De cette façon, si vous essayez accidentellement de CTRL + Q, vous recevrez cette boîte de dialogue et pourrez choisir "rester sur cette page" pour annuler la sortie.

Edit: page personnalisée que j'ai créée juste à cet effet

Jan Schejbal
la source
bel esprit de hacker là-bas!
Daniel Hitzel
Merci! Ajout d'un lien vers mon implémentation.
Jan Schejbal
Merci pour cela. Fonctionne pour moi, et si effronté que j'aime ça (: C'est étonnant pour moi que FF ait foiré cette chose simple.
JWD
4

J'ai pu obtenir ce dont j'avais besoin avec AutoKey . Après l'installation, j'ai créé un script vide avec Ctrl+ affecté Qcomme "Hotkey" et .*Firefoxcomme "Filtre de fenêtre".

entrez la description de l'image ici

Ensuite, dans les préférences d'AutoKey, je l'ai ajouté à l'icône de notification de démarrage automatique et désactivé, afin qu'il devienne transparent pour moi.

entrez la description de l'image ici

Je l'ai utilisé pendant quelques heures et il semble prometteur - pas de faux positifs ou de captures manquées jusqu'à présent. Pour l'instant Ctrl+ Qne fonctionne pas pour Firefox, mais cela fonctionne parfaitement bien dans PhpStorm par exemple.


De plus, le bug 1215061 donne l'espoir que cela sera plus facile à l'avenir et Firefox obtiendra enfin des paramètres de raccourcis clavier décents.

rob006
la source