从Firefox 57开始,无法在Linux上通过插件禁用Ctrl+ Q快捷方式(请参见此bug)。我发现的所有解决方法都是基于将全局Ctrl+ Q快捷方式设置为从Firefox“窃取”它。但这将在每个应用程序中禁用此快捷方式,我只想在Firefox中禁用此快捷方式,而不会影响任何其他应用程序。
有没有一种方法只能为一个应用程序禁用或捕获快捷方式?我在Unity上使用Ubuntu。
从Firefox 57开始,无法在Linux上通过插件禁用Ctrl+ Q快捷方式(请参见此bug)。我发现的所有解决方法都是基于将全局Ctrl+ Q快捷方式设置为从Firefox“窃取”它。但这将在每个应用程序中禁用此快捷方式,我只想在Firefox中禁用此快捷方式,而不会影响任何其他应用程序。
有没有一种方法只能为一个应用程序禁用或捕获快捷方式?我在Unity上使用Ubuntu。
Answers:
在about:config设置首选项中。
browser.sessionstore.warnOnQuit true
browser.warnOnQuit true
browser.showQuitWarning true
browser.warnOnQuit true
browser.showQuitWarning在Linux 上看不到ff Quantum 64.0 64bit。browser.warnOnQuit已启用但什么都不做?
                    browser.tabs.warnOnClose;true现在将不得不处理。相关:bugzilla.mozilla.org/show_bug.cgi?
                    tl / dr:为Ctrl-Q分配全局快捷方式
在Firefox Quantum中,用于通过意外的Ctrl-Q按键警告Firefox关闭的about:config设置不再起作用。
解决方法:在Arch Linux上 XFCE桌面环境(其他Linux发行版和/或桌面可能允许类似的方法):
晶须菜单>>所有设置>>键盘>>应用程序快捷方式>>添加
添加一个新的“应用程序” null;分配给Ctrl-Q按键
调用:在这里,我按下Ctrl-Q了Firefox Quantum v。60.0.1(64位)。而不是退出Firefox,我得到了这个弹出窗口,
警告:当然,这会全局影响所有Ctrl-Q按键。但是,根据我自己的喜好,通过消除这些偶然的Firefox Ctrl-Q关闭来弥补缺点(在此之后,我必须重新登录网站:GitHub; reddit; ...)。
更新资料
@crazypyro的答案也对我有用(在x86_64 Linux上为FF Quantum 63.0),如果您尝试退出Firefox,则会弹出警告。应该将其视为特定的答案,而我的解决方案将是更一般的解决方法。
about:config(以下两项均设置为true):
browser.showQuitWarningbrowser.warnOnQuittrue代替代替null会很好。
                    无需外部应用程序,即可通过Firefox个人资料中的一小段JavaScript来完成此操作。
作为前提条件,您必须启用userChrome.js(请参见下文,或从原始GitHub存储库中获取)
将chrome目录及其内容复制到您的用户个人资料后,创建一个<profile-dir>/chrome/disable_ctrl_q.uc.js包含以下内容的文件:
var kqa = document.getElementById('key_quitApplication');
if (kqa) kqa.remove();
最后,重新启动Firefox,然后ctrl + q将不再导致应用程序退出。
为了完整起见,以下是修改后的chrome文件的全部内容。要启用userChrome javascript,请chrome在Firefox配置文件的目录内创建这两个文件。
about:support在地址栏中。chromechrome目录中,创建新文件,userChrome.css并userChrome.xml包含以下内容。/* 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");
}
<?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>
document.getElementById('key_quitApplication')返回null。此元素的名称是否已更改?
                    丑陋但简单有效的解决方法始终是打开具有活动onbeforeunload处理程序的页面,即会触发“此页面正在要求您确认要离开-输入的数据可能不会保存。” 对话框,当您尝试将其关闭时。
这样,如果您不小心尝试按CTRL + Q,将收到该对话框,然后可以选择“停留在此页面上”以取消退出。
我可以通过AutoKey获得所需的东西。安装后,我创建了一个空脚本,将Ctrl+ 分配Q为“ Hotkey”和.*Firefox“ Window filter”。
然后在“自动按键”首选项中,我将其添加到了自动启动和禁用的通知图标中,因此它对我来说是透明的。
我使用了几个小时,它看起来很有前途-到目前为止,还没有错误的阳性结果或没有错过的收获。现在Ctrl+ Q不适用于Firefox,但例如在PhpStorm中就可以正常工作。
此外,错误1215061还给我们带来了希望,它将来会变得更容易,并且Firefox最终将获得一些不错的键盘快捷键设置。