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

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

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

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

Ответы (7)

Эпплскрипт это:

do shell script "ls ~/Desktop"

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

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

Бинго. Странно, что эта функция еще не встроена в OSX. Большое спасибо!
@ Адам Да, это немного странно.
За исключением того, что он встроен в OS X через Automator Services, @AdamFlott, просто ответ, который вы приняли, не использует этот метод.
Кроме того, AppleScript и Automator являются частью OS X.
Спасибо за подсказку, указывающую мне на Spark - кажется, это именно то, что я искал!
@FlorianLoch Нет проблем!
-1 за использование третьих лиц без каких-либо веских причин.

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

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

Мне непонятно после сохранения сервиса, как вы настроили сочетание клавиш.
@LironYahdav См. выше редактировать
В Мохаве моя простая команда терминала не работала. Чтобы заставить мой ярлык работать, мне пришлось изменить настройку «Рабочий процесс получает» в рабочем процессе на «без ввода».
Обратите внимание, что выбранный вами ярлык должен быть «бесплатным» (не использоваться никаким приложением, которое у вас сейчас активно). Я также столкнулся с ошибкой, из-за которой служба не запускалась, пока я не запустил ее вручную, как описано здесь .
Для тех, кто интересуется, как отредактировать существующий «Сервис»: в Finder перейдите к ~/Library/Services(или нажмите Cmd-Shift-G и введите путь напрямую), затем дважды щелкните свой «Сервис». Он должен открыться в автомате.
Еще одна проблема: кажется, что .zshrcфайл не запускается, так как это «неинтерактивная оболочка». Если вы устанавливаете какие-либо переменные среды в своем файле (как я), вместо этого .zshrcпереместите их в свой файл. .zshenvСм. Apple.stackexchange.com/questions/388622/…
Как указать здесь путь к сценарию оболочки, который уже управляется ~/Documents/srcи устанавливается в /opt/bin?

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

iCanHazShortcut

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

Я пытался найти простое решение этой проблемы в течение нескольких часов, и ваше приложение - единственное, которое работает и делает то, что должно делать, без каких-либо сложных наворотов. Спасибо!
@StijnMartens Добро пожаловать! В этом вся идея — если вам просто нужен ярлык для команды, вы получаете ярлык для команды. Ни больше ни меньше.
Это сработало прекрасно.
Я пробовал и Alfred, и Automator, и они были очень медленными. Этот работает как сон. Статья, посвященная этому, здесь: howtogeek.com/286332/…

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

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

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

  1. Откройте Automator и выберите шаблон службы.
  2. Добавьте действие Run Shell Script или Run AppleScript
  3. Убедитесь, что тип ввода и область применения указаны правильно.
  4. Вставьте скрипт и сохраните сервис
  5. Назначение сочетания клавиш на панели настроек клавиатуры

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

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

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

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

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

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

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

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

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

Введите сочетание клавиш (или последовательность клавиш!)

  1. Выберите «Выполнить предопределенное действие» и введите «shell», чтобы найти действие.

Выберите «Выполнить предопределенное действие» и введите «shell», чтобы найти действие.

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

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

Нажмите «Сохранить», и все готово! Теперь проверьте свой сценарий с помощью настроенного вами триггера клавиатуры.

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

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

Спасибо, в итоге пошел по этому пути, так как у меня есть BTT.
Как я могу заставить этот скрипт выводить текст, каким бы ни был курсор?

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

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

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

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