TransWikia.com

How to disable Ctrl+Q shortcut in Firefox on Linux

Super User Asked by rob006 on January 22, 2021

Since Firefox 57 there is no way to disable Ctrl+Q shortcut by plugin on Linux (see this bug). All workarounds I’ve found are based on setting the global Ctrl+Q shortcut to “steal” it from Firefox. But this will disable this shortcut in every application, and I want to disable this shortcut only in Firefox, without affecting any other app.

Is there a way to disable or catch shortcut only for one application? I’m using Ubuntu with Unity.

6 Answers

In about:config set preferences.

Firefox >= 65

browser.sessionstore.warnOnQuit true
browser.warnOnQuit true

enter image description here

Source

Older Firefox

browser.showQuitWarning true
browser.warnOnQuit true

Tested in all version I've come across 61.0.2-64.0.2 on 64bit Linux (and the 60esr channel on Win10). screenshot

Correct answer by CrazyPyro on January 22, 2021

I have been plagued by this on and off through varoius firefox versions, too.

Here is one solution that always works, and works for other browsers too:

Keep a tab open with this page (you can save it locally): https://janschejbal.github.io/disable-ctrl-q/

You have to click the button on that page once so firefox thinks something important is going on there, but then you can completely forget about it.

Read the page for an explanation.

It has saved me a good handful of times (:

Answered by jwd on January 22, 2021

An ugly, but simple and effective workaround is always keeping a page open that has an active onbeforeunload handler, i.e. will trigger the "This page is asking you to confirm that you want to leave - data you have entered may not be saved." dialog when you attempt to close it.

That way, if you accidentally try to CTRL+Q, you will receive that dialog, and can choose "stay on this page" to cancel the exit.

Edit: Custom page I made just for this purpose

Edit: as of 2020-05-10 / Firefox 76 (and likely quite some time before that), the built-in warning dialog works for me with these settings:

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

Since the bug is still untouched, I have no idea if this is actually fixed or if it just happened to start working due to some list randomly being in the right order or something. If you're still experiencing this issue after the date of this edit, would you mind leaving a comment confirming that the settings are set the same way, the Firefox version you're using, and the OS?

Answered by Jan Schejbal on January 22, 2021

Disable Ctrl+q with userChrome.js in Firefox Quantum

This can be accomplished without an external application by a tiny bit of javascript in your Firefox profile.

As a prerequisite, you must enable userChrome.js (see below, or obtain from the original GitHub repo)

After copying the chrome directory and its contents into your user profile, create a file <profile-dir>/chrome/disable_ctrl_q.uc.js with the following content:

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

Lastly, restart Firefox, and ctrl+q will no longer cause the application to exit.


Enabling userChrome.js in Firefox Quantum

For completeness, below are the full contents of the modified chrome files. To enable userChrome javascript, create these two files inside a chrome directory within your Firefox profile.

  1. Type about:support in the address bar.
  2. Under Application Basics > Profile Directory click the Open Directory button to open your Firefox profile directory.
  3. Within the profile directory, make a new directory called chrome
  4. Within the chrome directory, create new files userChrome.css and userChrome.xml with the contents listed below.
  5. Restart Firefox (you probably also want to create the .uc.js file above if you're following these steps to disable 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>

Answered by thinkmassive on January 22, 2021

tl/dr: assign a global shortcut to Ctrl-Q

In Firefox Quantum, the about:config settings that used to warn against Firefox closures via an accidental Ctrl-Q keypress no longer work.

Workaround: on Arch Linux | XFCE desktop environment (other Linux distros &/or desktops may allow a similar approach):

  • Whiskers menu >> All Settings >> Keyboard >> Application Shortcuts >> Add

  • Add a new "application", null; assign it to the Ctrl-Q keypress

    • Update (comment by @justderb): "Using 'true' instead of 'null' is nice if you don't want the error window to pop up."

Firefox - 'disable' Ctrl-Q

Invocation: here, I pressed Ctrl-Q in Firefox Quantum v. 60.0.1 (64-bit); instead of quitting Firefox, I get this popup,

Firefox - Ctrl-Q 'disabled'

Caveat: this, of course, globally affects all Ctrl-Q keypresses. However, -- per my own preference -- that shortcoming is outweighed by nullifying those accidental Firefox Ctrl-Q closures (after which I must re-login into websites: GitHub; reddit; ...).

Update 1

@crazypyro 's answer also works for me (FF Quantum 63.0 on x86_64 Linux) giving a popup warning if you try to Quit Firefox. That should be probably regarded as the specific answer, with my solution as a more general workaround.

about:config (both of the following set to true):

  • browser.showQuitWarning
  • browser.warnOnQuit

Update 2 [2020-03-01]

For some time in Vim I've encountered the occasional and frustrating issue where the terminal "freezes" and I lose keystroke control of Vim (requiring me to kill/restart Vim).

After some investigating, it turns out the issue is Software Flow Control (XON/XOFF flow control). Ctrl-s freezes the terminal until Ctrl-q is pressed -- which, per my solution presented above, is globally remapped to "dummy application" true.

The workaround to this issue is to add the lines

# enable Ctrl-s and Ctrl-q:
stty -ixon

near the top of your ~/.bashrc, then open a new terminal and start Vim.

Relevant links/discussion:

Answered by Victoria Stuart on January 22, 2021

I was able get what I need with AutoKey. After installation I created empty script with assigned Ctrl+Q as "Hotkey" and .*Firefox as "Window filter".

enter image description here

Then in AutoKey preferences I added it to autostart and disabled notification icon, so it becomes transparent for me.

enter image description here

I used it for a few hours and it looks promising - no false-positives or missed catches so far. Right now Ctrl+Q does not working for Firefox, but it works perfectly fine in PhpStorm for example.


In addition bug 1215061 gives some hope that this will be easier in future and Firefox will finally get some decent keyboard shortcuts settings.

Answered by rob006 on January 22, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP