Я намагаюся виконувати вказівки щодо закріплення вкладок запуску в 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
Зберігайте в будь-якому місці.
Щоб замінити піктограму цієї програми, отримайте інформацію про ваш справжній 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
Тепер закрийте Terminal і перенесіть свою програму (яка зараз не повинна працювати) в іншу папку та поверніться знову. Це оновить Служби запуску , інакше ваші зміни будуть проігноровані та дуже дратують вас.
Тепер, коли ви відкриєте свою програму, вона фактично виконає .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
(ваш сценарій) після закінчення. Я фактично назвав свій скрипт start.sh і символізував його до Google \ Chrome для зручності оновлень.