Создать глобальный ярлык для запуска приложений командной строки

31

Какие шаги мне нужно, чтобы запустить программу командной строки через глобальный ярлык?

Я настроил Automator для создания нового сценария Run Shell и попытался назначить ярлык в Системных настройках -> Клавиатура -> Сочетания клавиш, но ничего не произошло.

Адам Флотт
источник
1
У меня вопрос другой. Я не хочу, чтобы окно терминала открывалось вообще.
z-буфер
1
Если вы не хотите, чтобы окно терминала открывалось вообще, вы запрашиваете то же самое, что и связанный пост.
Даниэль

Ответы:

8

Applescript это:

do shell script "ls ~/Desktop"

Добавьте туда, что вы хотите, и затем вы можете запустить Applescript через глобальное приложение горячих клавиш. Я бы порекомендовал Spark

О, и я не знаю о назначении ярлыка через Системные настройки

daviesgeek
источник
Бинго. Странно, эта функциональность еще не встроена в OSX. Спасибо!
Адам Флотт
@ Адам Да, это немного странно.
Дэвисгик
8
Кроме того, что он будет встроен в OS X через Automator Services, @AdamFlott, это просто , что ответ вы приняли не использовать этот метод.
Даниэль
2
Кроме того, AppleScript и Automator являются частью OS X.
Даниэль
1
-1 за использование третьих лиц без веских на то оснований.
Cregox
32

Не зная специфики того, что вы ищете, я бы предложил создать новый Сервис через Automator . Службы могут быть связаны с триггерами нажатия клавиш и могут выполнять сценарии оболочки (среди прочего). введите описание изображения здесь

Чтобы настроить сочетание клавиш, перейдите в «Системные настройки» -> «Клавиатура» -> «Горячие клавиши» -> «Службы», выберите только что сохраненную службу и нажмите кнопку «Добавить ярлык».

Даниэль
источник
После сохранения сервиса мне не понятно, как вы настроили сочетание клавиш.
Лирон Яхдав
@LironYahdav Смотрите выше правку
Даниэль
12

FastScripts включает в себя все сценарии в ~ / Library / Scripts /, поэтому вам не нужно добавлять файлы вручную. Он также поддерживает специфичные для приложения скрипты.

Другие приложения, которые можно использовать для назначения ярлыков для запуска скриптов:

Вы также можете создать службу Automator:

  1. Откройте Automator и выберите шаблон Сервиса
  2. Добавить сценарий «Выполнить оболочку» или «Выполнить AppleScript»
  3. Проверьте правильность типа ввода и области применения
  4. Вставьте скрипт и сохраните сервис
  5. Назначьте ярлык на панели настроек клавиатуры.

В 10.7 и 10.8 есть ошибка, из-за которой ярлыки для сервисов не всегда работают, пока меню сервисов не будет показано в строке меню. Ярлыки для служб не работают, если в самом переднем приложении нет строки меню или меню служб. Также есть небольшая задержка перед запуском сервисов.

LRI
источник
плюс один за упоминание других приложений, которые делают это также. Я почти пошел, чтобы установить спарк, когда я уже использовал QuickSilver. Я не знал, что у него была такая возможность.
Марлон
Кроме того, раздел на панели «Параметры клавиатуры» для добавления ярлыка будет находиться в разделе «Службы», если используется подход Automator.
Брэд Паркс
7

Я перепробовал все эти варианты, но они слишком сложные и ненадежные или действительно дорогие. В итоге я написал собственное решение (с открытым исходным кодом и бесплатно).

iCanHazShortcut

Сейчас это мало что может сделать, но это только начало. Не стесняйтесь вносить свой вклад, добавляя функции запросов и предложений.

deseven
источник
1
Я уже несколько часов пытаюсь найти простое решение этой проблемы, и ваше приложение - единственное, которое работает и делает то, что должно делать, без каких-либо сложных наворотов. Благодарность!
Стейн Мартенс
@StijnMartens, пожалуйста! В этом вся суть: если вам нужен ярлык для команды, вы получите ярлык для команды. Ни больше ни меньше.
августа
Это работало прекрасно.
Брайан Шермерхорн
2

Ртуть можно использовать для привязки горячих клавиш к действиям.

Если вы обнаружите, что делаете что-то часто, вы можете еще больше ускорить задачу, назначив ей «триггер». Триггеры могут быть активированы с помощью сочетаний клавиш или движений мыши

Если вы хотите выполнить команду Unix или сценарий оболочки, этот пост Stackoverflow предоставит вам дополнительную информацию об использовании терминального модуля Quicksilver.

binarybob
источник
1

Я добавлю свой ответ здесь, используя BTT , поскольку он прост и может быть привязан непосредственно к сценарию командной строки:

  1. Выбрать клавиатуру из BTT

Выбрать клавиатуру из BTT

  1. Введите свой ярлык (или последовательность клавиш!)

Введите свой ярлык (или последовательность клавиш!)

  1. Выберите «Trigger Predefined Action» и введите «shell», чтобы найти действие.

Выберите «Trigger Predefined Action» и введите «shell», чтобы найти действие.

  1. Вы можете вставить свой скрипт и оболочку, в которой вы хотите запустить:

Вы можете вставить свой скрипт и оболочку, в которой вы хотите запустить:

Нажмите сохранить и все готово! Теперь протестируйте ваш скрипт с установленным вами триггером клавиатуры.

  1. ДОПОЛНИТЕЛЬНО: Вы можете добавить примечания, чтобы запомнить, для чего нужен ярлык ...

Вы можете добавить заметки, чтобы запомнить, для чего нужен ярлык ...

cody.codes
источник
Спасибо, в конечном итоге пошел по этому маршруту, так как у меня BTT.
Лев Уфимцев
0

Похоже, что это было доступно в 10.6 (см. Http://hints.macworld.com/article.php?story=20090903085255430 ), но что-то сломалось в 10.7.2 (и, возможно, ранее 10.7)

Однако я обнаружил, что сочетание клавиш «Службы» имеет значение, когда «Системные настройки» находятся на переднем крае, но не в любом другом приложении, включая Finder.

Тем не менее, ранее предложенное использование Spark отлично работало на леве, за исключением того, что я не мог использовать Ctrl в своем сочетании клавиш. (не демонстратор!)

adamrmcd
источник
только когда меню приложения находится в фокусе. Если вы нажмете на рабочий стол и попробуете ярлык, он не будет работать. нажмите на меню для поиска, а затем попробуйте, и это работает. У меня есть служба для терминала, которая имеет ярлык и отображается во всех приложениях ... но она не работает, если я не в приложении, и даже тогда меню должно быть в фокусе.
Марлон
@Lri даже после выхода и повторного входа в систему, перезагрузки компьютера и т. Д. Это все равно не работает, если я не сделаю, как я описал выше. Установка в Quicksilver работает, хотя. Я хотел бы знать, почему QuickSilver может ловить эти «глобальные» ярлыки, а не ОС.
Марлон