如何将命令行参数强制添加到扩展坞中的程序快捷方式?


17

我在应用程序中安装了Chrome,在Dock中安装了它的快捷方式。如何实现将某些命令行参数强加给该应用程序的每次启动?

让我更清楚一点,在终端机中,我可以执行以下操作:打开/ Applications / Google \ Chrome.app --args --explicitly-allowed-ports = 6666,然后按照自己的方式修改Chrome的行为。从Dock的Finder启动应用程序时,默认情况下如何设置此选项?

Answers:


9

一种方法是使用AppleScript。

打开AppleScript编辑器(/ Applications / Utilities)并在以下命令中键入:

do shell script "open '/Applications/Google Chrome.app'  --args --explicitly-allowed-ports=6666"

将其另存为应用程序,然后将该应用程序添加到Dock中。
单击该应用程序的图标,您的Chrome将打开并带有您的自定义参数。

这种方法有效,但是由于以下几个原因,它并不完全理想:

  • 运行AppleScript比打开应用程序要花费更多时间
  • 扩展坞中将有两个图标(脚本和Chrome)

这将起作用,但是我很想看看是否有人提出了更好的答案。


内森的方法是最好的方法。目前,Chrome浏览器中没有代码可将其用作默认值或读取偏好设置文件。这些开关是临时的,用于调试,直到正式添加功能为止-然后您应该有一种方法可以更永久地对其进行更改。有关辅助应用程序的计划,请参见chrome.org/developers/design-documents/appmode-mac。请访问fluidapp.com以获得一个不错的包装器-您可以根据自己的需要对其进行破解(或者作者可能希望针对您的用例扩展该工具的建议)
bmike

“将其另存为应用程序,然后将该应用程序添加到Dock中。” -如何将其另存为应用程序?在Mountain Lion下,尝试将标记为可执行文件的.scpt文件添加到Dock上对我来说不起作用:该文件不会“粘”在Dock上。
yurkennis

4

如果进入应用程序包(在Finder中右键单击该应用程序,然后选择“查看包内容”)并转到Contents / MacOS文件夹,则应该有一个名为Google Chrome的文件,其图标为黑色正方形。记下它的名称并重命名(类似即可Google Chrome orig)。在文件夹中制作一个与Google Chrome原始文件同名的空白文本文件,并粘贴以下脚本:

#!/bin/bash

/Applications/"Google Chrome.app"/Contents/MacOS/"Google Chrome orig" --args --explicitly-allowed-ports=6666

将您的脚本文件设为可执行文件(chmod +x "Google Chrome orig"),然后查看是否可以正常启动Chrome!


1

根据Mac OS X提示文章(可通过Googling mac gui应用程序命令选项找到),可以通过编辑应用程序包来实现。我将在Chrome的备份副本上执行此操作,以首先对其进行测试。

  1. 右键/按住Ctrl并选择,以打开Goog​​le Chrome应用程序包Show Package Contents
  2. 在包中,导航至,Contents/Mac OS/Google Chrome然后重命名为Google Chrome-bin
  3. 在相同位置创建一个文本文件,其名称Google Chrome包含以下内容:

    !/bin/sh
    
    exec '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome-bin' --args --explicitly-allowed-ports=6666"
  4. 使用终端将新文件更改为可执行文件(chmod 755)。

注意,我实际上并没有尝试过,只是概述了链接文章中提到的内容。


这个答案的弊端是导致一系列漫长的“ Google Chrome-bin想要使用存储在...钥匙串中的机密信息。是否要允许访问此项目?”
yurkennis
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.