Как заставить специальные клавиши Microsoft Keyboard запускать команды osascript на OS X?
Я пытаюсь заставить (1) специальный ключ открыть новое окно терминала.
Я привязал это к файлу /Users/taw/bin/new_term
, который содержит:
#!/bin/sh
exec osascript -e 'tell application "Terminal" to do script "cd ."'
Это делает свое дело, за исключением того, что он также открывает окно терминала с этим (хотя Terminal.app настроен так, чтобы всегда закрывать окна, когда процессы завершаются):
Last login: Thu Mar 11 19:41:29 on ttys000
/Users/taw/bin/new_term ; exit;
~$ /Users/taw/bin/new_term ; exit;
tab 1
logout
[Process completed]
Как мне заставить все это работать правильно? (возможно, используя способ, отличный от того, что я пытался до сих пор)
3 ответа
Поскольку программное обеспечение Microsoft IntelliType Pro на OS X использует open
Команда для запуска того, что вы просите, может быть трудно заставить его выполнить произвольный код AppleScript.
Я обнаружил, что, хотя сценарии оболочки и т.п. не работают, если вы создаете приложение Automator (не AppleScript) с одним действием Run AppleScript
Затем вы можете указать IntelliType для запуска приложения Automator. Убедитесь, что вы создали приложение, а не рабочий процесс.
Я хотел получить ключ избранного для управления iTunes, поэтому я использовал следующее Run AppleScript
Действие, которое сработало.
on run {input, parameters}
tell application "iTunes" to next track
return input
end run
Используйте один из вариантов, чтобы запустить программу или выполнить скрипт, не открывая терминал, который я опишу в этом ответе.
Чтобы открыть новое окно терминала или просто Терминал с окном по умолчанию, вы можете попробовать адаптировать это решение.
Выполните ваш специальный ключ /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
вместо.
(Из любопытства, как вы связываете ключ с командой?)
Редактировать:
Я стараюсь держаться от Microsoft подальше от Mac OS, потому что они, похоже, не очень-то вплетаются в Mac. Тот факт, что он использует open
ибо все это доказательство.
Итак, на вашем месте я бы вырвал драйвер клавиатуры Microsoft и вместо этого использовал бы Spark:
http://www.brighthub.com/computing/mac-platform/reviews/30244.aspx
Если вы действительно хотите использовать AppleScript, чтобы делать то, что вы делаете, возможно, это будет полезно:
http://lambie.org/2007/11/03/tabs-in-terminal-using-applescript-on-leopard/
Вы также можете получить некоторые из AppleScript из последней ссылки и вызвать его с помощью горячей клавиши, используя Spark.