Я пытаюсь следовать инструкциям по закреплению вкладок автозагрузки в Chrome . На OS X как я могу добавить аргументы командной строки к элементам, которые сохраняются в моей доке?
Я пытаюсь следовать инструкциям по закреплению вкладок автозагрузки в Chrome . На OS X как я могу добавить аргументы командной строки к элементам, которые сохраняются в моей доке?
Ответы:
У вас есть в основном два варианта:
Вариант 1. Используйте Automator для создания приложения, которое фактически запускает Chrome с аргументами командной строки.
Запустите Automator и выберите, чтобы создать приложение . Дважды щелкните « Запустить сценарий оболочки» в папке « Библиотека / утилиты » и замените текстовое содержимое cat
следующим текстом :
open -a "Google Chrome.app" --args -pinned-tab-count=4
# keep the .app suffix or will break with Parallels
Сохранить где угодно.
Чтобы заменить значок этого приложения, Get Info на реальном 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
файл, который, в свою очередь, запустит фактический исполняемый файл, отправив аргументы командной строки.
Он будет выглядеть и вести себя так, как вы ожидаете, но вам придется повторять это всякий раз, когда вы обновляете свое приложение, так как это, как правило, заменяет пакет приложений и все внесенные вами изменения.
/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:
#!/bin/sh
exec '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' -pinned-tab-count=4
Не забудьте chmod +x
сценарий.
Измените пакет Chrome, который вы на самом деле используете.
В папке MacOS переименуйте «Google Chrome» и напишите сценарий оболочки, который вызывает реальную вещь с дополнительными аргументами:
#!/bin/sh
exec '/Applications/My Modified Google Chrome.app/Contents/MacOS/Google Chrome-real' -pinned-tab-count=4
CodeResources
и / или _CodeSignature
заставить его работать с этими изменениями.Все это основано на моем понимании пакетов приложений Mac; Я на самом деле не проверял эти изменения в Chrome, в частности. Возможно даже, что исполняемый файл Chrome на Mac не поддерживает эту опцию, поскольку приложения Mac, как правило, не запускаются с управляемыми параметрами командной строки (в отличие, например, от Windows, где приложения обычно запускаются с помощью ярлыков, которые могут есть встроенные опции).
chmod 755 Google\ Chrome
(ваш скрипт) после того, как вы закончите. Я на самом деле назвал свой скрипт launch.sh и вставил ссылку в Google \ Chrome для удобства обновлений.