Как заставить специальные клавиши 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.

Другие вопросы по тегам