我可以创建快捷方式在OS X上打开特定的应用程序吗?


51

我想创建一个快捷键,即打开Firefox,我在另一个应用程序正在工作。我知道我在Firefox中可以使用⌘ CMD+ T打开一个新标签页。

我还没有在“系统偏好设置”中找到创建这种快捷方式的方法。

有任何想法吗?


1
您是说键盘快捷键吗?
Rabarberski

在“应用程序”菜单上查看“服务”,任何合理编写的Cocoa应用程序都将拥有这些服务,并且可以为它们分配密钥。不幸的是,我认为Firefox不是编写使用这些功能的。可以在此处使用Safari
2013年

在2011年首次提出问题时,这可能不是一个选择,但现在使用Automator可以很容易地做到这一点。参见howtogeek.com/209725/…以获得教程。
爱德华·福克

令我惊讶的是,苹果公司凭借其自负的可用性,还不认为它适合为分配启动应用程序的快捷键的直接方法内置到MacOS中。
Teemu Leisti

Answers:


44

Karabiner-Elements(10.12及更高版本)

Karabiner由于内核体系结构的更改而在10.12中停止工作,并且Karabiner被重写为Karabiner-Elements,它对配置文件使用新的JSON格式。

您现在可以向karabiner.jsonhttps://pqrs.org/osx/karabiner/json.html)添加这样的规则:

{
  "from": {
    "key_code": "t",
    "modifiers": {
      "mandatory": [
        "right_option"
      ]
    }
  },
  "to": [
    {
      "shell_command": "open -aterminal"
    }
  ],
  "type": "basic"
}

这将使右键按下打开Emacs的命令:

{
  "from": {
    "key_code": "right_command",
    "modifiers": {
      "optional": [
        "any"
      ]
    }
  },
  "to": [
    {
      "key_code": "right_command",
      "lazy": true
    }
  ],
  "to_if_alone": [
    {
      "shell_command": "open -aemacs"
    }
  ],
  "type": "basic"
}

Karabiner(10.11及更早版本)

将这样的文件另存为private.xml

<?xml version="1.0"?>
<root>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_Safari</name>
    <url>file:///Applications/Safari.app</url>
  </vkopenurldef>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_iTunes</name>
    <url>file:///Applications/iTunes.app</url>
  </vkopenurldef>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_EMACS</name>
    <url>file:///Applications/Emacs.app</url>
  </vkopenurldef>
  <item>
    <name>custom</name>
    <identifier>custom</identifier>
    <autogen>__KeyToKey__ KeyCode::F11, KeyCode::VK_OPEN_URL_Safari</autogen>

    <!-- change the right option key into an extra modifier key -->
    <autogen>__KeyToKey__ KeyCode::OPTION_R, KeyCode::VK_MODIFIER_EXTRA1</autogen>

    <autogen>__KeyToKey__ KeyCode::I, ModifierFlag::EXTRA1, KeyCode::VK_OPEN_URL_iTunes</autogen>

    <!-- make a short press of the right command open Emacs -->
    <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_R, KeyCode::COMMAND_R, KeyCode::VK_OPEN_URL_EMACS</autogen>
  </item>
</root>

阿尔弗雷德2

如果您购买了Powerpack for Alfred 2,则可以创建如下工作流程:

默认情况下,热键的延迟很短,但是您可以通过将“触发行为”选项从“模拟释放的修改键”更改为“通过修改键(最快)”来减少延迟:

自动化服务

打开Automator,选择“服务”作为文档类型,将“服务接收”从“文本”更改为“无输入”,添加“启动应用程序”操作,然后保存服务。然后从“系统偏好设置>键盘>快捷方式>服务”为该服务分配键盘快捷键。

我不建议使用此选项,因为至少在我的系统上,使用此方法创建的键盘快捷键将应用程序聚焦之前,最多会有大约半秒的延迟,并且延迟通常会更长。从10.7开始,还存在一个错误,在该错误中,直到您将鼠标悬停在菜单栏中的服务菜单上时,Automator服务的键盘快捷键才会始终起作用。(编辑:我写了这个答案已经有8年了,但该错误仍未得到解决。)此外,服务的键盘快捷键在某些应用程序(如Emacs)中不可用。


3
private.xml在哪里?在哪里 它已经存在吗?我找不到 去哪儿了?
boulder_ruby 2014年

@boulder_ruby ,/Library/Application Support/Karabiner/private.xml。或打开Karabiner GUI>其他和卸载选项卡>“打开private.xml”选项卡。我有完全相同的困难。
亚历山大·伯德

Karabiner-Elements非常棒,现在我知道可以直接在json文件中修改其设置。谢谢!😃
奎因Comendant

2
对大多数人来说
哈里(Harry)


5

如果您不想使用第三方应用程序。
然后,您可以使用Automator(服务)和内置键盘快捷键。

下面是如何在回答类似的问题。

很简单。

在步骤3中,创建服务。
将其设置为“任何应用程序”。

例如,
将Service设置为:“任何应用程序”中为“无输入”(通过使用顶部的下拉菜单来完成此操作。)


很高兴知道为什么对此有否决权。不对否决票发表评论对任何人都
无济于事


5

获取Quicksilver,http://www.blacktree.com/,它将允许您设置键盘快捷键来打开应用程序。实际上,有更多的应用程序可以执行此操作(Alfred,Keyboard Maestro等)。

Mac OS X实际上具有一种内置的方法,但是不适用于Firefox,因为它不支持服务!http://hints.macworld.com/article.php?story=20090903085255430

2012年1月更新:Blacktree不再更新Quicksilver,开发人员前往Google并发布了Google Quick Search Box。Quicksilver继续存在,但在qsapp.com上有新家


谢谢。对我很有帮助。使用过Google,但找不到您的链接。
politicus 2011年

太酷了,您来对了吗?
Paul Eccles

1
“是”。安装了Quicksilver(功能非常强大,肯定比仅提供快捷方式还好)。尝试过键盘大师。现在要休息一下,然后再学习所有这些快捷方式;-)
politicus 2011年

Quicksilver很棒。非常感谢您的建议。我创建了一个bash脚本来打开gmail,另一个来打开mysms在浏览器中。然后,我使用appify脚本使它们成为OS X应用程序。从那里,我可以使用Quicksilver来启动键盘快捷键。非常高兴。mathiasbynens.be/notes/shell-script-mac-apps
jbrock 2015年

2

这里有很多不错的选择,但是我想添加我自10.5以来一直在使用的个人收藏,并且仍然适用于10.11.2:Spark 3

http://www.shadowlab.org/Software/spark.php

它是免费软件,非常容易设置。这是开发者的描述:

Spark是一个功能强大且简单的快捷方式管理器。使用Spark,您可以创建热键来启动应用程序和文档,执行AppleScript,控制iTunes等。您还可以导出和导入热键库,或将其保存为HTML格式以进行打印。Spark是免费的,因此请适度使用!

这是界面的屏幕截图:

Spark用户界面


2

我发现Apptivate最容易使用。您只需选择一个应用程序,然后分配一个全局快捷方式。而已。


1

我知道已经提到了阿尔弗雷德(Alfred),但我想我会说一些选择快捷键的问题。起初对我来说,显而易见的是,有一组好的快捷方式是(a)易于记忆,(b)易于使用以及(c)与其他系统或应用程序快捷键不冲突的。

我最终使用“ alt”键作为基础,并且通常依赖于可以由左手触发的键,并选择描述性字母(例如,x表示Excel)。这样您可以将鼠标放在右手,而快捷键则用左手触发。

使用Alfred热键激活应用程序的另一个好处是,如果隐藏了应用程序,则该应用程序将不会被隐藏。

这是我如何配置的屏幕截图: 阿尔弗雷德热键配置示例


1

要使用不带任何第三方软件的键盘快捷键打开终端,请执行以下操作:

  • 打开Automator(⌘+空格,然后键入Automator)
  • 转到文件->新建
  • 选择“ 快速操作”(或“ 服务”,具体取决于您的Mac版本)
  • 在显示“ 工作流接收”的地方,请选择不输入

如何使用键盘快捷键打开Mac终端

  • 在“ 操作”列中,搜索“ 运行AppleScript”并将其拖到右列
  • 将此粘贴到脚本区域:

    on run {input, parameters}
    
        tell application "Terminal"
            do script ""
            activate
        end tell
    
    end run
    

PS:do script ""如果您不想在每次按热键时都使用新的终端实例,请删除。

  • 单击文件->保存并命名为您想要的任何名称

使用键盘快捷键的mac open终端

  • 现在关闭Automator并打开系统偏好设置->键盘->快捷方式
  • 在左列中,单击“服务”
  • 向下滚动到最底部,您应该看到刚刚保存的脚本。单击为其分配热键。

但是,要考虑的一件事是,热键在所有应用程序中必须唯一。如果您指定一个通用的热键(例如⌘+ T),并尝试在浏览时打开终端,则它将与大多数浏览器的热键冲突,从而无法打开新标签页。因此,您应该尝试一种不会与任何应用程序冲突的快捷方式。

我选择⌘+⌥+ F12。效果很好。

更新资料

如果您使用的是iTerm2 + Oh My Zsh,只需在Automator 中将Run AppleScript替换为Launch Application,然后从列表中选择iTerm.app


您不需要使用AppleScript:有一个“启动应用程序”操作。
benwiggy

1

如果应用程序是终端,则该终端已经在“首选项”中配置了快捷键:系统偏好设置键盘快捷键 文件夹中的“ 新终端” ^+ +T

标签文件夹中的新终端+ ^+ +T


请注意,我会在终端启动问题的快捷键中回答此问题。但是,由于它们被标记为该问题的重复项,因此无法回答。
Max MacLeod

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.