全局键盘快捷键,用于在Mac OS X上的Chrome中打开选项卡

Modified on: Thu, 06 Dec 2018 09:00:03 +0800

配置全局键盘快捷键以打开选项卡的最佳方法是什么
Mac OS X上的Chrome浏览器

注意事项

  • 应该尽可能简单,所以我不想<alt><tab> +
    每次<cmd><t>
  • 这必须是全球,所以如果我按下我的快捷方式(恰好是
    <cmd><return>)当我在Mail.app时,它需要将Chrome带到
    前面并打开一个新标签
  • 需要打开新的标签页,即chrome://newtab,而不是网站
    例如http://www.google.com
  • 最高优先级是快速快速打开,下一个优先级是
    易于配置

当前解决方案

现在我已经Quicksilver.app配置为
执行以下AppleScript(或
osascript
确切地说,每当我按<cmd><return>时:

#!/usr/bin/osascript tell application "Google Chrome Canary" activate end tell tell application "System Events" tell process "Google Chrome Canary" tell menu bar 1 tell menu bar item "File" tell menu "File" click menu item "New Tab" end tell end tell end tell end tell end tell

这个问题是,如果是a,最多可能需要5秒
因为我最后跑了。我把它编成了* .app,但那就是
比使它成为可执行文件osascript慢。我不怕尝试
开发上述脚本的编译版本,但我是UNIX / web
开发人员,而不是OS X,我对系统不熟悉。

作者:aaron

最佳答案

您可以运行以下终端命令(例如,在bash脚本中):

open -a "Google Chrome" chrome://newtab

这会导致应用 Google Chrome 打开网址 chrome:// newtab ,从而打开新标签页。

不幸的是,谷歌浏览器没有使用启动服务注册chrome:// URL类型,它会认为这是一个文件路径。

要解决此问题,请右键单击Google Chrome的应用程序包,选择显示包内容,打开目录目录并编辑Info.plist在文本编辑器中。

搜索CFBundleURLTypes。编辑以下几行以添加+指示的行:

<key>CFBundleURLTypes</key> <array> + <dict> + <key>CFBundleURLName</key> + <string>Chrome Internal URLs</string> + <key>CFBundleURLSchemes</key> + <array> + <string>chrome</string> + </array> + </dict> <dict> <key>CFBundleURLName</key> <string>Web site URL</string>

保存并关闭。将Google Chrome的应用程序包移动到另一个目录,然后再返回,以使Launch Services接收更改(如果它不起作用,则注销并重新登录)。

然后,运行open,如开头所述。


一旦这个工作,你最好的选择是运行一个执行open命令的shell脚本,然后调用该命令,例如你的发射器。由于我认为延迟是由osascript加载引起的,所以你在这里选择的任何解决方案都应该足够快。


要半自动编辑Info.plist文件(您必须对所有Chrome更新重复此操作),您可以在终端中使用PlistBuddy。首先,创建一个文件,例如命名为chrome-url.plist,内容如下:

<key>CFBundleURLTypes</key>
<array>
+   <dict>
+       <key>CFBundleURLName</key>
+       <string>Chrome Internal URLs</string>
+       <key>CFBundleURLSchemes</key>
+       <array>
+           <string>chrome</string>
+       </array>
+   </dict>
    <dict>
        <key>CFBundleURLName</key>
        <string>Web site URL</string>

然后,您可以使用以下内容修补Chrome的Info.plist

  

/usr/libexec/PlistBuddy -c "Merge '/path/to/chrome-url.plist' :CFBundleURLTypes" /Applications/Google\ Chrome.app/Contents/Info.plist < / p>

作者:,Daniel Beck

相关问答

添加新评论