Como desativar o atalho Ctrl + Q no Firefox no Linux

26

Desde o Firefox 57 não há como desativar Ctrl + Q atalho por plugin no Linux (veja esse bug ). Todas as soluções alternativas que encontrei são baseadas na configuração do global Ctrl + Q atalho para "roubá-lo" do Firefox. Mas isso desativará esse atalho em todos os aplicativos e eu quero desabilitar esse atalho somente no Firefox, sem afetar nenhum outro aplicativo.

Existe uma maneira de desabilitar ou capturar atalho apenas para um aplicativo? Estou usando o Ubuntu com o Unity.

rob006
fonte
Pergunta interessante, mas a resposta pode depender do caso de uso. Tecla acidental pressiona? Modo de quiosque?
l0b0
2
@ l0b0 Tecla acidental pressiona. Este é um PC normal, nada extravagante.
rob006
Nesse caso, você tem mais detalhes? Estou apenas checando se existe alguma forma de o sistema ser configurado para fazer o que você quer, como salvar as guias quando sair, para evitar algo que eu suspeito que seja um hacker frágil.
l0b0
4
@ l0b0 Eu quero impedir o fechamento do navegador por pressionamentos de teclas acidentais. Há muitas coisas que estão mudando depois de fechar o navegador (fechando sessões, encerrando conexões), eu preferiria impedir o fechamento do navegador do que corrigir seus efeitos.
rob006
1
Desativar Ctrl + Q para o Firefox no Linux terá que ser um truque frágil a menos que a Mozilla faça algo a respeito.
dsstorefile1

Respostas:

11

tl / dr: atribui um atalho global ao Ctrl-Q

No Firefox Quantum, o about:config definições que costumava avisar contra fechamentos do Firefox por meio de uma tecla Ctrl-Q acidental não funcionam mais.

Solução alternativa: no Arch Linux | Ambiente de desktop XFCE (outras distribuições e / ou desktops do Linux podem permitir uma abordagem semelhante):

  • Menu de bigodes & gt; & gt; Todas as configurações & gt; & gt; Teclado & gt; & gt; Atalhos de aplicativos & gt; & gt; Adicionar

  • Adicione um novo "aplicativo", null; atribuí-lo ao Ctrl-Q pressione o botão

    • Atualização (comentário por @justderb): "Usar 'true' em vez de 'null' é bom se você não quiser que a janela de erro apareça."

Firefox - 'disable' Ctrl-Q

Invocação: aqui, eu pressionei Ctrl-Q no Firefox Quantum v. 60.0.1 (64 bits); em vez de sair do Firefox, eu recebo este pop-up,

Firefox - Ctrl-Q 'disabled'

Embargo: isso, obviamente, afeta globalmente todas as teclas Ctrl-Q. No entanto, - por minha própria preferência - essa deficiência é superada anulando os encerramentos acidentais do Firefox Ctrl-Q (depois disso, preciso fazer o login novamente em sites: GitHub; reddit; ...).

Atualizar

A resposta do @crazypyro também funciona para mim (FF Quantum 63.0 no x86_64 Linux) dando um aviso popup se você tentar sair do Firefox. Isso deve ser provavelmente considerado como a resposta específica, com minha solução como uma solução geral mais geral.

about:config (ambos os seguintes são definidos como true ):

  • browser.showQuitWarning
  • browser.warnOnQuit
Victoria Stuart
fonte
6
Usando true ao invés de null É legal se você não quer que a janela de erro apareça.
justderb
@justderb: legal! :-D
Victoria Stuart
1
para mim em archlinux / kde 5 plasma eu não poderia fazer atalho global sem escolher um aplicativo em primeiro lugar - não poderia ser verdade | nulo, mas graças à sua sugestão eu era capaz de remapear-lo para alternar microfone - que no computador de trabalho é inútil para mim de qualquer maneira .. obrigado!
JTC
9

Em about:config definir preferências.

Firefox & gt; = 65

browser.sessionstore.warnOnQuit true
browser.warnOnQuit true

enter image description here

Fonte

Firefox mais antigo

browser.showQuitWarning true
browser.warnOnQuit true

Testado em todas as versões, encontrei o 61.0.2-64.0.2 no Linux 64bit (e o canal 60esr no Win10). screenshot

CrazyPyro
fonte
1
Qualquer feedback construtivo com esse downvote?
CrazyPyro
1
Obrigado, funciona para mim pelo menos em FF 62.0.3 (64-Bit Ubuntu).
Pont
1
Isso não funciona junto com "Restaurar sessão anterior" ou "Mostrar minhas janelas e guias da última vez", o que é ainda pior.
chefarov
1
E agora, a partir do FF 63.0.3 (64-Bit Ubuntu), o ctrl-Q mais uma vez sai instantaneamente para mim, apesar de ambas as opções terem sido ativadas. É impressionante a bagunça que eles fizeram desse recurso simples (mis). Ah bem, talvez funcione novamente em v64 ...
Pont
1
Não vejo o browser.showQuitWarning no ff quantum 64,0 64bit no linux. browser.warnOnQuit está habilitado mas não faz nada?
bool3max
2

Eu consegui o que preciso com AutoKey . Após a instalação, criei um script vazio com o nome atribuído Ctrl + Q como "Hotkey" e .*Firefox como "Filtro de janelas".

enter image description here

Em seguida, nas preferências de AutoKey, adicionei-o ao ícone de notificação de início automático e desativado, para que se torne transparente para mim.

enter image description here

Eu usei por algumas horas e parece promissor - sem falsos positivos ou capturas perdidas até agora. Agora mesmo Ctrl + Q não funciona para o Firefox, mas funciona perfeitamente bem no PhpStorm, por exemplo.


além do que, além do mais bug 1215061 dá alguma esperança de que isso será mais fácil no futuro e o Firefox finalmente terá algumas configurações decentes de atalhos de teclado.

rob006
fonte
2

Desativar Ctrl + q com userChrome.js no Firefox Quantum

Isso pode ser feito sem um aplicativo externo por um pequeno bit de javascript no seu perfil do Firefox.

Como um pré-requisito, você deve ativar o userChrome.js (veja abaixo, ou obtenha a partir do repositório original do GitHub )

Depois de copiar o diretório chrome e seu conteúdo em seu perfil de usuário, crie um arquivo <profile-dir>/chrome/disable_ctrl_q.uc.js com o seguinte conteúdo:

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

Por fim, reinicie o Firefox e ctrl + q não fará mais com que o aplicativo saia.


Ativando o userChrome.js no Firefox Quantum

Para completar, abaixo estão os conteúdos completos dos arquivos chrome modificados. Para habilitar o javascript userChrome, crie esses dois arquivos dentro de um chrome diretório dentro do seu perfil do Firefox.

  1. Tipo about:support na barra de endereço.
  2. Debaixo Noções básicas de aplicativos & gt; Diretório de perfis Clique no Diretório aberto botão para abrir o seu diretório de perfil do Firefox.
  3. Dentro do diretório profile, faça um novo diretório chamado chrome
  4. Dentro do chrome diretório, crie novos arquivos userChrome.css e userChrome.xml com o conteúdo listado abaixo.
  5. Reinicie o Firefox (você provavelmente também deseja criar o arquivo .uc.js acima se estiver seguindo estas etapas para desativar 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>
thinkmassive
fonte
Isso não funciona no Firefox 62
Grief
1
Ele funciona com o mais recente estável, o Firefox 61. Espero que 62 seja consertado antes de sair do beta.
thinkmassive
2

Uma solução feia, mas simples e eficaz, é sempre manter uma página aberta que tenha uma onbeforeunload manipulador, ou seja, irá disparar o "Esta página está pedindo para você confirmar que você quer sair - dados que você digitou podem não ser salvos." diálogo quando você tenta fechá-lo.

Dessa forma, se você acidentalmente tentar CTRL + Q, receberá essa caixa de diálogo e poderá escolher "ficar nessa página" para cancelar a saída.

Jan Schejbal
fonte
bom espírito hacker lá!
Daniel Hitzel