我试图按照有关在Chrome中固定启动标签的说明进行操作。在OS X上,如何向保留在扩展坞中的项目添加命令行参数?
我试图按照有关在Chrome中固定启动标签的说明进行操作。在OS X上,如何向保留在扩展坞中的项目添加命令行参数?
Answers:
您基本上有两个选择:
选项1:使用Automator创建一个应用程序,该应用程序实际上使用命令行参数启动Chrome。
启动Automator并选择创建一个应用程序。双击Library / Utilities文件夹中的Run Shell Script,然后将文本内容—用以下内容替换: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
现在,关闭终端,然后将您的应用程序(现在不能运行)移动到另一个文件夹,然后再次移回。这将更新Launch Services,否则您的更改将被忽略并极大地激怒您。
现在,当您打开应用程序时,它将实际执行该.sh
文件,该文件又将启动实际的可执行文件,并发送命令行args。
它的外观和行为将与您期望的一样,但是在更新应用程序时,您将需要重复此操作,因为这通常会替换应用程序包和所做的所有更改。
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f /Applications/Hello\ World.app
您可以编写一个启动Chrome的脚本,但这不是扩展坞中的应用程序图标,它会导致显示一个单独的Chrome图标。因此,您必须创建一个应用程序包。
首先,复制您的Chrome应用。然后,有两种方法可能会起作用:我不确定Mac OS X和/或Chrome的自我更新功能会更好。
制作一个“启动程序”,仅使用参数调用Chrome。
在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
CodeResources
和/或_CodeSignature
使其与这些更改一起运行。这一切都是基于我对Mac应用程序软件包的理解;我实际上并未特别在Chrome上测试这些更改。甚至有可能Mac上的Chrome可执行文件不支持此选项,因为通常不希望Mac应用程序使用可控制的命令行选项运行(例如,与Windows不同,Windows 通常通过快捷方式启动应用程序,有嵌入式选项)。
chmod 755 Google\ Chrome
(您的脚本)。实际上,我将脚本命名为launch.sh并将其符号链接到Google \ Chrome,以便于更新。