Cómo deshabilitar el acceso directo Ctrl + Q en Firefox en Linux

57

Desde Firefox 57 no hay forma de deshabilitar Ctrl+ Qacceso directo por complemento en Linux (vea este error ). Todas las soluciones que he encontrado se basan en configurar el acceso directo global Ctrl+ Qpara "robarlo" de Firefox. Pero esto deshabilitará este acceso directo en todas las aplicaciones, y quiero deshabilitar este acceso directo solo en Firefox, sin afectar a ninguna otra aplicación.

¿Hay alguna forma de deshabilitar o capturar el acceso directo solo para una aplicación? Estoy usando Ubuntu con Unity.

rob006
fuente
Pregunta interesante, pero la respuesta puede depender del caso de uso. ¿Pulsaciones accidentales de teclas? Modo quiosco?
l0b0
44
@ l0b0 Pulsaciones accidentales de teclas. Esta es una PC normal, nada lujoso.
rob006
En ese caso, ¿tienes más detalles? Solo estoy verificando si hay alguna forma de que el sistema se pueda configurar para hacer lo que quieras ™, como guardar las pestañas al salir, para evitar algo que sospecho que será un truco frágil.
l0b0
66
@ l0b0 Quiero evitar que se cierre el navegador presionando teclas accidentalmente. Hay demasiadas cosas que están cambiando después de cerrar el navegador (cerrar sesiones, finalizar conexiones), preferiría evitar cerrar el navegador que corregir sus efectos.
rob006

Respuestas:

46

En las about:configpreferencias establecidas.

Firefox> = 65

browser.sessionstore.warnOnQuit true
browser.warnOnQuit true

ingrese la descripción de la imagen aquí

Fuente

Firefox anterior

browser.showQuitWarning true
browser.warnOnQuit true

Probado en todas las versiones, me he encontrado con 61.0.2-64.0.2 en Linux de 64 bits (y el canal 60esr en Win10). captura de pantalla

CrazyPyro
fuente
2
¿Alguna respuesta constructiva con ese voto negativo?
CrazyPyro
44
Y ahora, a partir de FF 63.0.3 (Ubuntu de 64 bits), ctrl-Q una vez más se cierra instantáneamente, a pesar de que ambas opciones están habilitadas. Es sorprendente lo desordenado que han hecho con esta característica simple (errónea). Ah, bueno, tal vez volverá a funcionar en v64 ...
Pont
3
No veo el browser.showQuitWarningff quantum 64.0 64bit en linux. browser.warnOnQuitestá habilitado pero no hace nada?
bool3max
44
Esto no me funciona en Firefox 66.0.5 en Manjaro Linux. Tendrá que lidiar browser.tabs.warnOnClose;trueahora. Relacionado: bugzilla.mozilla.org/show_bug.cgi?id=502908#c73
aguadopd
3
La respuesta seleccionada ya no resuelve el problema.
Paul
15

tl / dr: asigna un acceso directo global a Ctrl-Q

En Firefox Quantum, la about:configconfiguración que solía advertir contra los cierres de Firefox mediante una pulsación accidental de teclas Ctrl-Q ya no funciona.

Solución alternativa: en Arch Linux | Entorno de escritorio XFCE (otras distribuciones y / o escritorios de Linux pueden permitir un enfoque similar):

  • Menú Bigotes >> Todas las configuraciones >> Teclado >> Accesos directos a aplicaciones >> Agregar

  • Agregue una nueva "aplicación" null; asignarlo a la Ctrl-Qpulsación de tecla

    • Actualización (comentario de @justderb): "Usar 'verdadero' en lugar de 'nulo' es bueno si no desea que aparezca la ventana de error".

Firefox - 'deshabilitar' Ctrl-Q

Invocación: aquí, presioné Ctrl-Qen Firefox Quantum v. 60.0.1 (64 bits); en lugar de salir de Firefox, aparece esta ventana emergente,

Firefox - Ctrl-Q 'deshabilitado'

Advertencia: esto, por supuesto, afecta globalmente todas las pulsaciones de teclas Ctrl-Q. Sin embargo, según mi preferencia, esa deficiencia se compensa al anular los cierres accidentales de Firefox Ctrl-Q (después de lo cual debo volver a iniciar sesión en los sitios web: GitHub; reddit; ...).

Actualizar

La respuesta de @crazypyro también funciona para mí (FF Quantum 63.0 en x86_64 Linux) dando una advertencia emergente si intentas salir de Firefox. Probablemente debería considerarse como la respuesta específica, con mi solución como una solución más general.

about:config(ambos de los siguientes conjuntos a true):

  • browser.showQuitWarning
  • browser.warnOnQuit
Victoria Stuart
fuente
77
Usar en truelugar de nulles bueno si no desea que aparezca la ventana de error.
justderb
@justderb: ¡bien! :-D
Victoria Stuart
1
para mí en archlinux / kde 5 plasma no podría hacer un acceso directo global sin elegir una aplicación primero; no podría ser cierto | nulo, pero gracias a su sugerencia pude reasignarlo para alternar el micrófono, lo que en la computadora de trabajo no tiene sentido para mí ¡gracias de todos modos!
JTC
La asignación de CTRL + q en sxhkd también secuestra el acceso directo, evitando que Firefox se cierre.
Simon Cedergren Malmqvist
Funciona en Mint 19.
Paul
7

Deshabilita Ctrl + q con userChrome.js en Firefox Quantum

Esto se puede lograr sin una aplicación externa con un poco de JavaScript en su perfil de Firefox.

Como requisito previo, debe habilitar userChrome.js (consulte a continuación u obtener de repositorio original de GitHub )

Después de copiar el directorio de Chrome y su contenido en su perfil de usuario, cree un archivo <profile-dir>/chrome/disable_ctrl_q.uc.jscon el siguiente contenido:

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

Por último, reinicie Firefox y ctrl + q ya no hará que la aplicación se cierre.


Habilitar userChrome.js en Firefox Quantum

Para completar, a continuación se muestran los contenidos completos de los archivos de Chrome modificados. Para habilitar javascript userChrome, cree estos dos archivos dentro de un chromedirectorio dentro de su perfil de Firefox.

  1. Escriba about:supporten la barra de direcciones.
  2. En Conceptos básicos de aplicaciones> Directorio de perfiles, haga clic en el botón Abrir directorio para abrir su directorio de perfiles de Firefox.
  3. Dentro del directorio de perfil, cree un nuevo directorio llamado chrome
  4. Dentro del chromedirectorio, cree archivos nuevos userChrome.cssy userChrome.xmlcon los contenidos que se enumeran a continuación.
  5. Reinicie Firefox (probablemente también desee crear el archivo .uc.js anterior si sigue estos pasos para deshabilitar 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>
pensar masivo
fuente
1
Esto no funciona en Firefox 62
Duelo
1
Funciona con la última versión estable, Firefox 61. Esperemos que 62 se repare antes de que salga de la versión beta.
thinkmassive
Ahora uso la solución de CrazyPyro superuser.com/a/1352295/308508
thinkmassive
No funciona en 69.0.2 (no beta). Además, document.getElementById('key_quitApplication')devuelve nulo. ¿Ha cambiado el nombre de este elemento?
tsbertalan
6

Una solución fea, pero simple y efectiva siempre es mantener una página abierta que tenga un onbeforeunloadcontrolador activo , es decir, activará el mensaje "Esta página le pide que confirme que desea irse; es posible que los datos que ha ingresado no se guarden". diálogo cuando intentas cerrarlo.

De esa manera, si accidentalmente intenta CTRL + Q, recibirá ese cuadro de diálogo y podrá elegir "permanecer en esta página" para cancelar la salida.

Editar: página personalizada que hice solo para este propósito

Jan Schejbal
fuente
¡Buen espíritu hacker allí!
Daniel Hitzel
¡Gracias! Agregué un enlace a mi implementación.
Jan Schejbal
Gracias por esto. Funciona para mí, y tan descarado que me encanta (: Me sorprende que FF haya estropeado esta cosa simple.
jwd
4

Pude obtener lo que necesito con AutoKey . Después de la instalación, creé un script vacío con Ctrl+ asignado Qcomo "tecla de acceso rápido" y .*Firefoxcomo "filtro de ventana".

ingrese la descripción de la imagen aquí

Luego, en las preferencias de AutoKey, lo agregué al inicio automático y deshabilité el icono de notificación, por lo que se vuelve transparente para mí.

ingrese la descripción de la imagen aquí

Lo usé durante unas horas y parece prometedor: hasta ahora no hay falsos positivos ni capturas perdidas. En este momento Ctrl+ Qno funciona para Firefox, pero funciona perfectamente bien en PhpStorm, por ejemplo.


Además, el error 1215061 da la esperanza de que esto sea más fácil en el futuro y Firefox finalmente obtendrá algunas configuraciones de atajos de teclado decentes.

rob006
fuente