如何禁用Command-Q退出?


78

有什么方法可以禁用command+ Q退出应用程序吗?

我尝试将此菜单项添加到“键盘快捷键”首选项窗格中(如此处建议),并将其重新映射到command+ option+ Q(稍难点击),并且菜单项更改为显示此菜单项,但command+ Q仍然导致应用程序退出。

我正在使用OS X 10.7,但如果它可以解决此问题,我很乐意升级到10.8。

我真正想要的应用程序是Firefox,但是如果有一个针对每个应用程序禁用command+ 的解决方案Q,那也可以。


1
您是要寻找一个全球性的黑客,还是可以重新映射要覆盖的应用程序?使用普通的键盘首选项窗格并创建另一个快捷键(如命令-Shift-控件-选项-Q),使用后者非常容易。
bmike

bmike:我可以选择其中一个,但是正如我所说,我尝试将其设置为command-option-Q,但它不起作用。如果我尝试输入command-option-shift-Q,它会发出哔声,并说应用程序系统偏好已取消注销。

问题是您需要在每个应用程序的基础上退出,并包括应用程序名称,以便在特定于应用程序的快捷方式中输入完整的菜单名称。
bmike

bmike:我仅在Firefox中指定了替代项,并在menuitem替代项中包括了应用名称。
肯(Ken)

1
嗯-我没有读到这个问题,并不是说Firefox故意无视OS X定义的键盘快捷键-但这也许就是您根据评论看到的内容?我想知道他们是否实现了快捷键重新映射功能?自从我跑了狐狸已经有一段时间了。选择类似likeZ的命令可以使Command-Q对Mail和Safari不敏感-有关如何设置快捷方式的信息,请参见此图片。cl.ly/MDtE
bmike

Answers:


117

进入系统偏好设置,然后进入键盘。选择快捷方式。在左窗格中,找到“辅助功能”。现在,在右窗格中启用“ 反转颜色”,然后单击快捷方式框以将快捷方式重新分配给Cmd + Q。

而已。现在,当您按Cmd + Q时,屏幕的颜色将被反转。再按一次可恢复正常颜色。不再意外退出应用程序(例如,尝试使用Cmd + a时在Firefox上关闭200个选项卡,或者尝试使用Cmd + tab时在Preview上关闭三打pdf;最后我做了两件事,再也没有。)

PS谁认为使用Cmd + Q退出应用程序是一个好主意,则应该回到可用性学校。


还有一个好用的插件,称为Always Ask,可以在离开Firefox之前强制进行提示对话框。


12
刚刚在这里注册以支持此答案。Cmd+Q相当于@在德国PC-105键盘布局上制作符号。在PC和Mac之间切换会令我发疯,因为在某处登录时我一直关闭浏览器。感谢您提出颠倒色彩的绝妙想法。
Waqar Lim

3
我将其分配给“切换到桌面1”。由于我仍然没有使用此功能,因此它实际上什么也没做。
tiktak'2

3
使用“反转颜色”作为警告的加分点。很棒的用户体验反馈。
杰森

2
我喜欢您的想法invert color,喜欢它,它看起来很书呆子
vanduc1102'2

1
您也可以选择Launchpad and Dock > Show Launchpad并将其设置为Cmd+Q。它不像颜色反转时整个屏幕剧烈闪烁那样令人讨厌。
SiddharthaRT

7

使用KeyRemap4MacBook,可以将其添加到private.xml

<item>
  <name>disable_command_q</name>
  <identifier>disable_command_q</identifier>
  <autogen>__KeyToKey__ KeyCode::Q, VK_COMMAND | ModifierFlag::NONE, KeyCode::VK_NONE</autogen>
  <autogen>__KeyToKey__ KeyCode::Q, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::Q, ModifierFlag::COMMAND_L</autogen>
</item>

如果没有| ModifierFlag::NONE第一个autogen元素,也会禁用例如⌥⌘Q。第二个自动生成元素将⇧⌘Q更改为⌘Q。

还存在一些预定义的设置,这些设置使发送⌘Q需要按住⌘Q或按两次pressingQ:

它们在custom_shortcuts.xml中定义:

<item>
  <name>Hold Command+Q to Quit Application</name>
  <appendix>(You can adjust the threshold time of holding by</appendix>
  <appendix>"[Holding Key to Key] Holding Threshold" in Key Repeat tab.)</appendix>
  <identifier>remap.holdcommandQ</identifier>
  <autogen>__HoldingKeyToKey__ KeyCode::Q, VK_COMMAND | ModifierFlag::NONE, KeyCode::VK_NONE, KeyCode::Q, VK_COMMAND, Option::NOREPEAT</autogen>
</item>
<item>
  <name>Press Command+Q twice to Quit Application</name>
  <identifier>remap.doublepresscommandQ</identifier>
  <autogen>__DoublePressModifier__ KeyCode::Q, VK_COMMAND | ModifierFlag::NONE,
    KeyCode::VK_NONE,
    KeyCode::Q, VK_COMMAND
  </autogen>
</item>

2
在Karabiner Elements(KeyRemap4MacBook的后继产品)上,可以在线下载实现相同功能的“复杂修改”:pqrs.org/osx/karabiner/complex_modifications/#command_q将Safari选项更改为Firefox或其他浏览器是只需更改config JSON(应位于~/.config/karabiner/assets/complex_modifications)中的应用程序包正则表达式即可。
Gustavo Bezerra

5

对不起,我不愿意再挖掘这样的旧帖子,但是这个想法可能有用

在“系统偏好设置-键盘”中,为要防止退出的应用程序创建新的快捷方式。在应用程序的菜单中搜索quit命令的标题,并输入与菜单标题完全相同的快捷方式,然后输入其他快捷方式。

确实,并非所有应用程序都存在此问题,只有浏览器,也许还有一个或两个其他应用程序都没有。


1
欢迎询问不同!尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。
grg

2
此解决方案不适用于Firefox。Firefox在其菜单中显示新的快捷方式。但这是行不通的。cmd-q仍然关闭浏览器...
JerryWho 2014年

点击此链接该链接描述了相同的解决方案,并且对我来说效果很好。
totymedli 2015年

我刚刚为“退出Firefox”添加了“选项Q”快捷方式,将其作为Firefox的应用程序特定(Firefox)快捷方式。在Firefox中,我的“退出Firefox”菜单项现在显示opt Q,cmd Q不再退出应用程序,但是opt Q退出。您必须正确获得菜单项的文本。哦,我知道,我们距离这里还有几年的路程。使用OS X 10.12.3。和Firefox 51.0。
Wayfaring Stranger

非常适合Safari(Safari尊重快捷方式),对于那些经常使用CMD + Q而不是CMD + W的人来说,可以节省很多精力。
AncientToaster

5

我找到了一种方法,而无需在按command+ 时更改音量或类似的东西Q

转到系统偏好设置->键盘->任务控制->“请勿打扰”。

然后只需单击该框并将其更改为:command+ Q


好招 只是想添加-如果仍然想保留使用快捷方式退出应用的功能,但是没有此类首选项,则可以转到Settings-> Keyboard->选项卡Shortcuts->从左侧的项目列表中选择App Shortcuts->按+按钮,添加您的应用->重要!准确键入Quit并分配您的快捷方式。请享用!i.ibb.co/PzHvfRh/Screen-Shot-2019-09-04-at-10-38-12-AM.png
Stanislau Baranouski

4

使用键盘重新映射器。OSX有一个很棒的GPL(我使用Keyremap4MacBook),只需将命令Q键组合映射到什么都不做的东西即可。


1
现在称为Karabiner:pqrs.org/osx/karabiner在10.12下不起作用,将处理较早的OS。这里有一个预先编写的快捷方式,可用于将cmd Q全局更改为其他内容:“ 自定义快捷方式”下的pqrs.org/osx/karabiner/list.html.en
Wayfaring Stranger

3

不是您问题的直接答案,但是您可以使用首选项窗格When Firefox starts下的General选项,告诉Firefox在启动旧窗口时自动打开您的旧窗口。

如果您不想只是为了偶尔的意外退出而更改开始屏幕,那么还有一个命令可以执行此操作:Historymenu-> Restore Previous Session


10
是的,但是如果有许多打开的窗口/选项卡,则可能需要花费相当长的时间,有些窗口/选项卡将无法完全恢复其会话/状态。它还烦人地将所有窗口还原到当前空间,而不是它们先前所在的空间。
2013年


1

进入系统偏好设置>键盘>快捷方式,然后点击左侧栏中应用程序按钮。按+按钮,然后选择您的应用程序。在菜单标题栏中输入“退出(应用程序名称)”。添加您的命令以替换cmd-q就是这样。


这没有增加其他答案尚未涵盖的内容。
Tetsujin

1

QBlocker

QBlocker是一个免费且开源的应用程序,它通过要求用户按住CMD + Q退出所有应用程序或仅退出某些应用程序来解决此问题。


0

如您所见,仅在System Prefs中设置新的键盘快捷方式并不总是有效。它将更改菜单中显示的快捷方式,但应用程序仍可能在监听Commmand + Q按键。我看过一些应用程序可以做到这一点。甚至有些人也会收听菜单中未列为快捷方式的按键(例如,Photoshop)。

第三方的选择是使用类似ControllerMate的东西。它具有重新映射任何控制器输入(键盘,鼠标,触控板,操纵杆等)并更改其功能的能力。我用它来做许多重新映射并运行宏脚本。可以在每个应用程序或全局系统范围内设置它们。

使用ControllerMate,您可以将Command + Q映射为不执行任何操作,然后让Command + Option + Q调用“退出”菜单项。否则您可能会幻想并让Command + Q不执行任何操作,除非您在1/2秒内再次按Command + Q,然后它将调用“退出”菜单。

ControllerMate是一个了不起的应用程序。我已经完成了许多自定义设置,例如“老板/配偶模式”,它是一个按键,可以执行以下操作

  • 使计算机音频静音
  • 如果正在播放,则暂停iTunes
  • 退出QuickTime和/或VLC(如果正在运行)
  • 最小化当前的Firefox窗口,并为Google.com打开一个新窗口

另一个建议(以及Henry的建议)是使用会话管理器,因此,如果Firefox意外退出,则可以轻松还原。内置的会话管理器还可以,但是您还应该查看Tab Mix Plus。它不仅为您提供了令人惊叹的选项卡管理选项,而且其会话管理器也很棒。我保存了许多会话,可以随时在新窗口中将其快速拉起。


5
输入重新映射器需要24.95美元吗?那真好笑。
纳文

0

我只是用新命令替换了现有命令,

例如 我为Mac的Sublime Text替换了Quit命令,

我曾经添加新的快捷方式并添加了新命令 alt+command+c


0

您可以使用Mac OS上的BetterTouchTool(一个很棒的应用程序)来禁用Cmd + Q:

转到键盘->添加新的快捷方式或按键顺序->将Cmd + Q映射到“无操作”

在此处输入图片说明


0

我认为应该考虑一下此处未发布的解决方案。如果您不介意从计算机上完全删除Command + Q,则可以在Ukulele中有效地重新映射,以便Command + Q执行另一个键盘快捷键。

您可以让它执行command + space或command + 1,只需将其分配给其他对象即可。

这种方法有很多优点,也有很多缺点,但它应该起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.