我正在尝试按照以下说明进行操作在 Chrome 中固定启动选项卡。在 OS X 上,如何向保留在 Dock 中的项目添加命令行参数?
答案1
你基本上有两个选择:
选项1:使用 Automator 创建一个应用程序,该应用程序实际上使用命令行参数启动 Chrome。
启动 Automator 并选择创建应用。 双击运行 Shell 脚本在里面图书馆/公共事业文件夹并将文本内容 — cat
— 替换为以下内容:
open -a "Google Chrome.app" --args -pinned-tab-count=4
# keep the .app suffix or will break with Parallels
保存到您喜欢的任何地方。
要替换此应用程序的图标,获取信息在您的真实 Google Chrome 上,点击左上角的图标,按Cmd-C
,获取信息在 Chrome Automator 应用上,单击图标,然后按Cmd-V
。
由于它是一个不同的应用程序,Dock 在运行时将显示两个 Chrome 应用程序:Chrome 和您的 Chrome 启动器。
选项 2:编辑应用程序包以启动脚本。此脚本将启动实际应用程序,并添加命令行参数。
右键单击Google Chrome.app
并选择显示包装内容. 前往Contents/
并Info.plist
打开属性列表编辑器/Xcode(Apple 的开发者工具)或第三方plist
编辑器。
查找条目CFBundleExecutable
或Executable File
。记住它的值(例如firefox-bin
Firefox)。将其替换为parameterized-app.sh
。
打开终端并输入以下内容:
touch /Applications/Firefox.app/Contents/MacOS/parameterized-app.sh
open /Applications/Firefox.app/Contents/MacOS/parameterized-app.sh
该文件的编辑器.sh
将打开。将文件内容设置为:
#!/usr/bin/env bash
exec /Applications/Firefox.app/Contents/MacOS/firefox-bin -ProfileManager
(使用从中删除的实际可执行文件的名称Info.plist
,添加所需的命令行参数)
保存并关闭。在终端中,输入以下内容:
chmod +x /Applications/Firefox.app/Contents/MacOS/parameterized-app.sh
现在,关闭终端并将您的应用程序(现在不能正在运行)移至其他文件夹并返回。这将更新发射服务,否则您的更改将被忽略并令您极为恼火。
现在,当您打开应用程序时,它将实际执行该.sh
文件,进而启动实际的可执行文件,并发送命令行参数。
它的外观和行为都与您预期的一样,但是每次更新应用程序时都需要重复此操作,因为这通常会替换应用程序包和您所做的所有更改。
答案2
您可以编写一个启动 Chrome 的脚本,但该脚本不会成为 Dock 中的应用程序图标,并且会导致出现单独的 Chrome 图标。因此您必须创建一个应用程序包。
首先,复制您的 Chrome 应用。然后,有两种方法可能有效;我不确定哪种方法更适合 Mac OS X 和/或 Chrome 的自我更新。
制作一个仅使用参数调用 Chrome 的“启动器”。
- 打开应用程序包(右键单击 → 在 Finder 中显示包内容),删除除 Info.plist、PkgInfo 和 MacOS 之外的所有内容。
在 MacOS 文件夹中,删除“Google Chrome”可执行文件,并将其替换为调用真实 Chrome 的 shell 脚本:
#!/bin/sh exec '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' -pinned-tab-count=4
别忘了
chmod +x
脚本。
修改您实际运行的 Chrome 包。
在 MacOS 文件夹中,重命名“Google Chrome”,然后编写一个 shell 脚本,使用额外的参数调用真正的程序:
#!/bin/sh exec '/Applications/My Modified Google Chrome.app/Contents/MacOS/Google Chrome-real' -pinned-tab-count=4
- 我看到 Chrome 软件包中有一些关于代码签名的内容;您可能需要删除
CodeResources
和/或_CodeSignature
才能使其运行这些更改。
这一切都是基于我对 Mac 应用程序包的理解;我还没有在 Chrome 上测试过这些变化。Mac 上的 Chrome 可执行文件甚至可能不支持此选项,因为 Mac 应用程序通常不希望使用可控制的命令行选项运行(与 Windows 不同,在 Windows 中,应用程序通常情况下通过可以嵌入选项的快捷方式启动)。