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
设置首选项中。
browser.quitShortcut.disabled true
Run Code Online (Sandbox Code Playgroud)
(此设置将在浏览器重新启动后生效。)
https://bugzilla.mozilla.org/show_bug.cgi?id=52821
browser.sessionstore.warnOnQuit true
browser.warnOnQuit true
Run Code Online (Sandbox Code Playgroud)
browser.showQuitWarning true
browser.warnOnQuit true
Run Code Online (Sandbox Code Playgroud)
在所有版本中进行了测试,我在 64 位 Linux(以及 Win10 上的 60esr 通道)上遇到了 61.0.2-64.0.2。
Vic*_*art 21
tl/dr:为 Ctrl-Q 分配全局快捷方式
在 Firefox Quantum 中,用于通过意外按下 Ctrl-Q 键来警告 Firefox 关闭的about:config
设置不再有效。
解决方法:在 Arch Linux 上 | XFCE 桌面环境(其他 Linux 发行版和/或桌面可能允许类似的方法):
Whiskers 菜单 >> 所有设置 >> 键盘 >> 应用程序快捷方式 >> 添加
添加一个新的“应用程序”,null
;将其分配给Ctrl-Q
按键
调用:在这里,我按下Ctrl-Q
了 Firefox Quantum v. 60.0.1(64 位);我没有退出 Firefox,而是看到了这个弹出窗口,
警告:这当然会全局影响所有 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。
相关链接/讨论:
https://unix.stackexchange.com/questions/478532/why-is-vim-frozen
https://unix.stackexchange.com/questions/72086/ctrl-s-hang-terminal-emulator | ......之前有与Scroll Lock键键盘C-s
和C-q
是旧时代“滚动锁定切换”。您可以通过将stty ixany
和添加stty ixoff -ixon
到您的 ~/.bashrc [... 并重新启动终端]来禁用此功能
这可以在没有外部应用程序的情况下通过 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 将不再导致应用程序退出。
为完整起见,以下是修改后的 chrome 文件的完整内容。要启用 userChrome javascript,请chrome
在 Firefox 配置文件的目录中创建这两个文件。
about:support
在地址栏中。chrome
chrome
目录中,创建新文件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");
}
Run Code Online (Sandbox Code Playgroud)
<?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)
一个丑陋但简单而有效的解决方法是始终保持一个具有活动onbeforeunload
处理程序的页面打开,即会触发“此页面要求您确认您要离开 - 您输入的数据可能不会被保存”。当您尝试关闭对话框时。
这样,如果您不小心尝试按 CTRL+Q,您将收到该对话框,并且可以选择“停留在此页面”以取消退出。
编辑:截至 2020 年 5 月 10 日 / Firefox 76(可能在那之前的很长时间),内置警告对话框适用于以下设置:
由于该错误仍未触及,我不知道这是否真的已修复,或者它是否只是由于某些列表随机按正确顺序或其他原因而开始工作。如果您在此编辑日期后仍然遇到此问题,您是否介意留下评论以确认设置的设置方式、您使用的 Firefox 版本和操作系统相同?
我能够通过AutoKey获得我需要的东西。安装后,我创建了空脚本,分配了Ctrl+Q作为“热键”和.*Firefox
“窗口过滤器”。
然后在 AutoKey 首选项中,我将它添加到自动启动和禁用通知图标,因此它对我来说变得透明。
我用了几个小时,它看起来很有希望 - 到目前为止没有误报或漏捕。现在Ctrl+Q不适用于 Firefox,但它在 PhpStorm 中运行良好,例如。
此外,bug 1215061给了一些希望,这在未来会更容易,Firefox 最终将获得一些不错的键盘快捷键设置。