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


31

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

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


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

1
Если вы не хотите, чтобы окно терминала открывалось вообще, вы запрашиваете то же самое, что и связанный пост.
Даниэль

Ответы:


8

Applescript это:

do shell script "ls ~/Desktop"

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

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


Бинго. Странно, эта функциональность еще не встроена в 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 есть ошибка, из-за которой ярлыки для сервисов не всегда работают, пока меню сервисов не будет показано в строке меню. Ярлыки для служб не работают, если в самом переднем приложении нет строки меню или меню служб. Также есть небольшая задержка перед запуском сервисов.


плюс один за упоминание других приложений, которые делают это также. Я почти пошел, чтобы установить спарк, когда я уже использовал QuickSilver. Я не знал, что у него была такая возможность.
Марлон

Кроме того, раздел на панели «Параметры клавиатуры» для добавления ярлыка будет находиться в разделе «Службы», если используется подход Automator.
Брэд Паркс

7

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

iCanHazShortcut

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


1
Я уже несколько часов пытаюсь найти простое решение этой проблемы, и ваше приложение - единственное, которое работает и делает то, что должно делать, без каких-либо сложных наворотов. Благодарность!
Стейн Мартенс

@StijnMartens, пожалуйста! В этом вся суть: если вам нужен ярлык для команды, вы получите ярлык для команды. Ни больше ни меньше.
августа

Это работало прекрасно.
Брайан Шермерхорн

2

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

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

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


1

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

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

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

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

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

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

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

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

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

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

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

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


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

0

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

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

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


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

@Lri даже после выхода и повторного входа в систему, перезагрузки компьютера и т. Д. Это все равно не работает, если я не сделаю, как я описал выше. Установка в Quicksilver работает, хотя. Я хотел бы знать, почему QuickSilver может ловить эти «глобальные» ярлыки, а не ОС.
Марлон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.