Как поставить кастомный лаунчер в док (Mavericks)

14

Я новичок в Mac OS (в настоящее время я использую Mavericks), и я выполнил поиск в Google, а также поиск в StackExchange по моему вопросу, но обсуждения, с которыми я столкнулся, не совсем отвечают на мой вопрос.

Я родом из мира Linux, и для меня тривиально установить пользовательскую команду в панели gnome, а затем ввести любой аргумент, который мне нравится; многие из этих команд вызывают xterm.

Например, предположим, что я хочу создать модуль запуска для подключения к удаленному серверу с множеством аргументов, как показано ниже.

xterm -fg orange -bg black -e ssh me@myserver

Я просматриваю пост, в котором предлагается использовать автомат. Однако я не могу сделать это успешно.

Пока в автомате у меня есть

open -a "/opt/X11/bin/xterm" --args "-fg orange -bg black -e ssh me@myserver"

Однако эта команда не выполняется должным образом, и я не уверен, как решить эту проблему.

Спасибо Les ps Обратите внимание, что если я запускаю терминал и набираю xterm, он запускается, как и ожидалось

Ли Санде
источник
Почему бы не использовать встроенный терминал? Это действительно очень настраиваемый, и вы можете сделать его эмулировать X-термин. Терминал имеет много преимуществ, таких как полноэкранный режим, копирование / вставка с + cи + v. Он также позволяет вам создавать собственные настраиваемые профили, позволяющие настраивать шрифты, прозрачность и даже команды по умолчанию, запускаемые при запуске (например, для запуска сеанса SSH).
Александр - Восстановить Монику

Ответы:

16

Вы можете написать его как скрипт оболочки в действии Run Shell Script в Automator:

Automator

Сохраните его с типом приложения (вместо рабочего процесса) и поместите в папку «Приложения». Теперь его можно разместить в доке.

Александр - Восстановить Монику
источник
2
Любая идея, как я могу изменить значок для этого исполняемого файла?
Ли Санд
1
Вы можете изменить значок практически любого тома / папки / файла, нажав + iи вставив любой файл изображения в лунку изображения в верхнем левом углу
Александр - Восстановите Монику
Спасибо за ответ. Я сделал apple + i, а затем перетащил изображение (файл png); однако значок изменится на общий значок типа пантомимы «PNG», а не на фактическое изображение. Нужно ли иметь определенный формат файла для иконок? Я также выполнил следующие действия ( 365icon.com/icon-styles/dock-icons/how-to-change-mac-dock-icons ), но даже после вставки нового изображения (после выбора значка в левом верхнем углу), новое изображение не отображается (после перезапуска программы).
Ли Санд
2
Упс, мне следовало бы лучше уточнить: нужно вставить само изображение, а не файл изображения. Самый быстрый способ, которым я могу придумать, - это дважды щелкнуть файл изображения (чтобы открыть его в Preview.app), нажать + a, скопировать выделение и хорошо вставить его в изображение
Александр - Восстановить Монику
1
Я не могу оценить, потому что у меня нет достаточной репутации, чтобы сделать это. Сожалею.
Ли Санд
2

Автоматизатор и AppleScript - лучшие способы создания пользовательских сценариев / приложений, которые выполняют команды, как вы описали. У каждого есть свои плюсы и минусы. Для большинства задач я предпочитаю писать AppleScripts, вероятно, потому что я сам программист и потому что они легко доступны и редактируются.

Чтобы написать AppleScripts, вы можете использовать предоставленную OS X программу под названием «Редактор AppleScript». Редактор AppleScript позволяет вам писать свои AppleScripts и сохранять их как фактический AppleScript с расширением файла .scpt или как приложение (.app), которое можно запустить из любого места.

Если вы сохраните свой AppleScript в формате AppleScript (.scpt) и с помощью приложения под названием FastScripts (также доступно в Mac App Store), все ваши личные и системные сценарии могут быть легко доступны в меню. А Fast Scripts предоставляет дополнительное преимущество, позволяя вам назначать им сочетания клавиш. Вы можете сделать то же самое с рабочими процессами Automator, я просто считаю, что это проще сделать с AppleScripts и FastScripts.

Вот пример AppleScript, который я создал, которым я ранее поделился на платах, который переключает видимость скрытых файлов в OS X. Это один из моих основных сценариев, поэтому я показываю его в качестве примера того, насколько он прост написать AppleScript. С помощью FastScripts я установил сочетание клавиш ^+ + +, .чтобы активировать этот скрипт.

tell application "System Events"

    set hiddenFilesDisplayStatus to do shell script "defaults read com.apple.finder AppleShowAllFiles"
    set hiddenFilesNewDisplayStatus to "NO"

    if hiddenFilesDisplayStatus is "NO" then
        set hiddenFilesNewDisplayStatus to "YES"
    end if

    do shell script "defaults write com.apple.finder AppleShowAllFiles " & hiddenFilesNewDisplayStatus
    do shell script "killall Finder"

end tell

У меня есть множество других AppleScripts, которые выполняют различные задачи, поэтому, если бы я был вами, сначала посмотрите на AppleScripts, а затем посмотрите на использование Automator. Существует множество ресурсов для помощи в создании AppleScripts, и вы обнаружите, что есть много других, которые уже написали AppleScripts, которые могут уже делать то, что вы ищете.

Чтобы ответить на ваш конкретный вариант использования

Попробуйте создать AppleScript с помощью следующей команды, обратите внимание на полный путь к xterm. На моей машине все было иначе, чем на вашей. Важно отметить, что на моей машине установлен XQuartz, поскольку Mavericks больше не поставляется с X11.

do shell script "/usr/X11/bin/xterm -fg orange -bg black -e ssh me@myserver"

Я попробовал приведенную выше команду, указал на мой сервер, и он работал нормально. Что было бы действительно здорово, если бы вы работали с этим AppleScript, так это то, что вы могли бы даже настроить AppleScript для запроса ввода имени пользователя и сервера, к которому вы хотите подключиться, и он установит это в команде сценария оболочки для вас. и если ничего не предоставлено, вы можете использовать его по умолчанию для определенного имени пользователя / сервера. :)

К вашему сведению, я разобрался с проблемой пути к xterm, используя эту статью SO: /programming/11206872/open-xterm-telnet-connection-mac-os-x

Анил Натха
источник
Спасибо за ваш ответ и ссылку на проблему с путями в xterm.
Ли Санд