如何在 Linux 上的 Firefox 中禁用 Ctrl+Q 快捷键

rob*_*006 91 linux firefox keyboard-shortcuts ubuntu-unity

从 Firefox 57 开始,无法通过 Linux 上的插件禁用Ctrl+Q快捷方式(请参阅此错误)。我发现的所有解决方法都基于将全局Ctrl+Q快捷方式设置为从 Firefox“窃取”它。但这将在每个应用程序中禁用此快捷方式,而我只想在 Firefox 中禁用此快捷方式,而不会影响任何其他应用程序。

有没有办法只为一个应用程序禁用或捕获快捷方式?我正在使用带有 Unity 的 Ubuntu。

Cra*_*yro 80

about:config设置首选项中。

火狐 >= 87

browser.quitShortcut.disabled true
Run Code Online (Sandbox Code Playgroud)

(此设置将在浏览器重新启动后生效。)

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

火狐 >= 65

browser.sessionstore.warnOnQuit true
browser.warnOnQuit true
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

来源

较旧的 Firefox

browser.showQuitWarning true
browser.warnOnQuit true
Run Code Online (Sandbox Code Playgroud)

在所有版本中进行了测试,我在 64 位 Linux(以及 Win10 上的 60esr 通道)上遇到了 61.0.2-64.0.2。 截屏

  • 现在,从 FF 63.0.3(64 位 Ubuntu)开始,尽管启用了这两个选项,但 ctrl-Q 再次为我立即退出。令人惊讶的是,他们把这个简单(错误)的功能搞得一团糟。嗯,也许它会在 v64 中再次工作...... (10认同)
  • 经过更多的挖掘,事实证明现在有必要启用“首选项>常规>启动>恢复以前的会话”以让“退出浏览器时警告你”工作。 (8认同)
  • 这在 Manjaro Linux 的 Firefox 66.0.5 中对我不起作用。现在必须处理`browser.tabs.warnOnClose;true`。相关:https://bugzilla.mozilla.org/show_bug.cgi?id=502908#c73 (6认同)
  • 我在 Linux 上的 ff 量子 64.0 64 位上看不到 `browser.showQuitWarning`。`browser.warnOnQuit` 已启用但什么都不做? (5认同)
  • 选择的答案不再解决问题。 (5认同)
  • 对那个downvote有什么建设性的反馈吗? (2认同)
  • 在 Firefox 87(撰写本文时每晚)中,我添加了首选项 `browser.quitShortcut.disabled`。https://bugzilla.mozilla.org/show_bug.cgi?id=52821 (2认同)
  • @evilpie“21 年前开业,1 天前关闭”哇!你值得一枚奖牌:) (2认同)

Vic*_*art 21

tl/dr:为 Ctrl-Q 分配全局快捷方式

在 Firefox Quantum 中,用于通过意外按下 Ctrl-Q 键来警告 Firefox 关闭的about:config设置不再有效。

解决方法:在 Arch Linux 上 | XFCE 桌面环境(其他 Linux 发行版和/或桌面可能允许类似的方法):

  • Whiskers 菜单 >> 所有设置 >> 键盘 >> 应用程序快捷方式 >> 添加

  • 添加一个新的“应用程序”,null;将其分配给Ctrl-Q按键

    • 更新(@justderb 评论):“如果您不想弹出错误窗口,使用 'true' 而不是 'null' 很好。”

Firefox - '禁用' Ctrl-Q

调用:在这里,我按下Ctrl-Q了 Firefox Quantum v. 60.0.1(64 位);我没有退出 Firefox,而是看到了这个弹出窗口,

Firefox - Ctrl-Q '禁用'

警告:这当然会全局影响所有 Ctrl-Q 按键。然而,——根据我自己的喜好——通过取消那些意外的 Firefox Ctrl-Q 关闭(之后我必须重新登录网站:GitHub;reddit;...),这个缺点被抵消了。

更新 1

@crazypyro 的答案也适用于我(x86_64 Linux 上的 FF Quantum 63.0),如果您尝试退出 Firefox,则会发出弹出警告。这可能应该被视为具体的答案,而我的解决方案是一种更通用的解决方法。

about:config(以下两个都设置为true):

  • browser.showQuitWarning
  • browser.warnOnQuit

更新2 [2020-03-01]

在 Vim 中的一段时间里,我偶尔遇到了令人沮丧的问题,即终端“冻结”并且我失去了对Vim 的击键控制(需要我杀死/重新启动 Vim)。

经过一番调查,发现问题是软件流控制(XON/XOFF 流控制)。Ctrl-s冻结终端直到Ctrl-q被按下——根据我上面提出的解决方案,它被全局重新映射到“虚拟应用程序” true

此问题的解决方法是添加行

# enable Ctrl-s and Ctrl-q:
stty -ixon
Run Code Online (Sandbox Code Playgroud)

靠近 顶部~/.bashrc,然后打开一个新终端并启动 Vim。

相关链接/讨论:

  • 如果您不想弹出错误窗口,则使用 `true` 而不是 `null` 会很好。 (11认同)

thi*_*ive 9

在 Firefox Quantum 中使用 userChrome.js 禁用 Ctrl+q

这可以在没有外部应用程序的情况下通过 Firefox 配置文件中的一点点 javascript 来完成。

作为先决条件,您必须启用 userChrome.js(见下文,或从原始 GitHub repo获取)

将 chrome 目录及其内容复制到您的用户配置文件中后,创建一个<profile-dir>/chrome/disable_ctrl_q.uc.js包含以下内容的文件:

var kqa = document.getElementById('key_quitApplication');
if (kqa) kqa.remove();
Run Code Online (Sandbox Code Playgroud)

最后,重启 Firefox,ctrl+q 将不再导致应用程序退出。


在 Firefox Quantum 中启用 userChrome.js

为完整起见,以下是修改后的 chrome 文件的完整内容。要启用 userChrome javascript,请chrome在 Firefox 配置文件的目录中创建这两个文件。

  1. 输入about:support在地址栏中。
  2. 应用程序基础 > 配置文件目录下,单击打开目录按钮打开您的 Firefox 配置文件目录。
  3. 在配置文件目录中,创建一个名为的新目录 chrome
  4. 在该chrome目录中,创建新文件userChrome.cssuserChrome.xml包含下面列出的内容。
  5. 重新启动 Firefox(如果您按照以下步骤禁用 ctrl+q,您可能还想创建上面的 .uc.js 文件)

用户Chrome.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");
}
Run Code Online (Sandbox Code Playgroud)

用户Chrome.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>
Run Code Online (Sandbox Code Playgroud)

  • 这在 Firefox 62 中不起作用 (2认同)

Jan*_*bal 8

一个丑陋但简单而有效的解决方法是始终保持一个具有活动onbeforeunload处理程序的页面打开,即会触发“此页面要求您确认您要离开 - 您输入的数据可能不会被保存”。当您尝试关闭对话框时。

这样,如果您不小心尝试按 CTRL+Q,您将收到该对话框,并且可以选择“停留在此页面”以取消退出。

编辑:我为此目的制作的自定义页面

编辑:截至 2020 年 5 月 10 日 / Firefox 76(可能在那之前的很长时间),内置警告对话框适用于以下设置:

恢复以前的会话已选中,退出浏览器时警告您已选中

由于该错误仍未触及,我不知道这是否真的已修复,或者它是否只是由于某些列表随机按正确顺序或其他原因而开始工作。如果您在此编辑日期后仍然遇到此问题,您是否介意留下评论以确认设置的设置方式、您使用的 Firefox 版本和操作系统相同?


rob*_*006 6

我能够通过AutoKey获得我需要的东西。安装后,我创建了空脚本,分配了Ctrl+Q作为“热键”和.*Firefox“窗口过滤器”。

在此处输入图片说明

然后在 AutoKey 首选项中,我将它添加到自动启动和禁用通知图标,因此它对我来说变得透明。

在此处输入图片说明

我用了几个小时,它看起来很有希望 - 到目前为止没有误报或漏捕。现在Ctrl+Q不适用于 Firefox,但它在 PhpStorm 中运行良好,例如。


此外,bug 1215061给了一些希望,这在未来会更容易,Firefox 最终将获得一些不错的键盘快捷键设置。