92 votes

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

Depuis Firefox 57, il n'y a pas de moyen de désactiver Ctrl + Q par plugin sous Linux (voir ce bug ). Toutes les solutions de contournement que j'ai trouvées sont basées sur le réglage de l'option globale Ctrl + Q pour le "voler" à 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'attraper un raccourci uniquement pour une application ? J'utilise Ubuntu avec Unity.

0 votes

Question intéressante, mais la réponse peut dépendre du cas d'utilisation. Appuis accidentels sur les touches ? Mode kiosque ?

5 votes

@l0b0 Appuis accidentels sur les touches. C'est un PC normal, rien d'extraordinaire.

0 votes

Dans ce cas, avez-vous plus de détails ? Je vérifie juste s'il existe un moyen de configurer le système pour qu'il fasse ce que vous voulez™, comme sauvegarder les onglets lorsque vous quittez, pour éviter quelque chose qui, je le soupçonne, sera un hack fragile.

86voto

Drew Anderson Points 109

En about:config définir les préférences.

Firefox >= 87

browser.quitShortcut.disabled true

(ce paramètre prendra effet avec un redémarrage du navigateur).

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

Firefox >= 65

browser.sessionstore.warnOnQuit true
browser.warnOnQuit true

enter image description here

Source :

Older Firefox

browser.showQuitWarning true
browser.warnOnQuit true

Testé dans toutes les versions que j'ai rencontrées 61.0.2-64.0.2 sur Linux 64bit (et le canal 60esr sur Win10). screenshot

2 votes

Un retour constructif avec ce downvote ?

1 votes

Merci, cela fonctionne pour moi au moins sur FF 62.0.3 (Ubuntu 64-Bit).

0 votes

Merci. C'est une solution intelligente, sans toucher à rien.

9voto

thinkmassive Points 324

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

Ceci peut être réalisé sans application externe par un petit bout de javascript dans votre profil Firefox.

Comme condition préalable, vous devez activer userChrome.js (voir ci-dessous, ou l'obtenir à partir du site Web de la Commission européenne). repo GitHub original )

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.js avec le contenu suivant :

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

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


Activer userChrome.js dans Firefox Quantum

Pour être complet, voici le contenu complet des fichiers chrome modifiés. Pour activer le javascript userChrome, créez ces deux fichiers à l'intérieur d'un fichier chrome dans votre profil Firefox.

  1. Type about:support dans la barre d'adresse.
  2. Sous Principes de base des applications > Répertoire des profils cliquez sur le Open Directory pour ouvrir le répertoire de votre profil Firefox.
  3. Dans le répertoire du profil, créez un nouveau répertoire appelé chrome
  4. Au sein de la chrome créer de nouveaux fichiers userChrome.css y userChrome.xml avec les contenus énumérés ci-dessous.
  5. Redémarrez Firefox (vous voudrez probablement aussi 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>

2 votes

Cela ne fonctionne pas dans Firefox 62

1 votes

Il fonctionne avec la dernière version stable, Firefox 61. Espérons que le 62 sera corrigé avant qu'il ne quitte la version bêta.

0 votes

J'utilise maintenant la solution de CrazyPyro superuser.com/a/1352295/308508

9voto

Jan Schejbal Points 1104

Une solution de contournement peu élégante, mais simple et efficace, consiste à toujours garder ouverte une page sur laquelle est activée la fonction onbeforeunload c'est-à-dire qu'il déclenchera la boîte de dialogue "Cette page vous demande de confirmer que vous voulez quitter - les données que vous avez saisies ne seront peut-être pas enregistrées" lorsque vous tenterez de la fermer.

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

編集する。 Page personnalisée que j'ai créée à cet effet

Modification : à partir du 2020-05-10 / Firefox 76 (et probablement bien avant cela), la boîte de dialogue d'avertissement intégrée fonctionne pour moi avec ces paramètres :

restore previous session checked, warn you when quitting the browser checked

Comme le bogue n'est toujours pas corrigé, je n'ai aucune idée si c'est vraiment corrigé ou si cela a juste commencé à fonctionner à cause d'une liste qui s'est retrouvée dans le bon ordre par hasard ou autre. Si vous rencontrez toujours ce problème après la date de cette édition, pourriez-vous laisser un commentaire confirmant que les paramètres sont définis de la même manière, la version de Firefox que vous utilisez et le système d'exploitation ?

0 votes

Bel esprit hacker !

0 votes

Merci ! J'ai ajouté un lien vers ma mise en œuvre.

0 votes

Merci pour cela. Ça marche pour moi, et c'est tellement cheezy que je l'adore ( : C'est stupéfiant que FF ait gâché cette chose simple.

6voto

rob006 Points 1101

J'ai pu obtenir ce dont j'avais besoin avec AutoKey . Après l'installation, j'ai créé un script vide avec des assignations. Ctrl + Q comme "Hotkey" et .*Firefox comme "filtre de fenêtre".

enter image description here

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

enter image description here

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 + Q ne fonctionne pas pour Firefox, mais il fonctionne parfaitement bien dans PhpStorm par exemple.


En outre bug 1215061 donne un peu d'espoir que cela sera plus facile à l'avenir et que Firefox aura enfin des paramètres de raccourcis clavier décents.

1voto

jwd Points 3222

J'ai aussi été victime de ce problème à plusieurs reprises dans différentes versions de Firefox.

Voici une solution qui fonctionne toujours, et qui fonctionne aussi pour les autres navigateurs :

Gardez un onglet ouvert avec cette page (vous pouvez l'enregistrer localement) : https://janschejbal.github.io/disable-ctrl-q/

Vous devez cliquer une fois sur le bouton de cette page pour que Firefox pense que quelque chose d'important s'y passe, mais ensuite vous pouvez l'oublier complètement.

Lisez la page pour une explication.

Il m'a sauvé une bonne poignée de fois ( :

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X