Как заставить специальные клавиши Microsoft Keyboard запускать команды osascript на OS X?

924
taw

Я пытаюсь заставить (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] 

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

1

3 ответа на вопрос

1
adam smith

Поскольку программное обеспечение Microsoft IntelliType Pro в OS X использует openкоманду для запуска того, о чем вы его просите, может быть трудно заставить его выполнить произвольный код AppleScript.

Я обнаружил, что, хотя сценарии оболочки и т.п. не работают, если вы создаете приложение Automator (не AppleScript) с одним действием, Run AppleScriptвы можете указать IntelliType для запуска приложения Automator. Убедитесь, что вы создали приложение, а не рабочий процесс.

Я хотел, чтобы клавиша «Избранное» управляла iTunes, поэтому я использовал в своем Run AppleScriptдействии следующее, что сработало.

on run   tell application "iTunes" to next track  return input end run 
0
Alex

/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.

Драйверы Microsoft Keyboard позволяют мне привязывать специальные ключи (или любые ключи) к произвольному файлу или URL. Я думаю, что он пытается открыть файл с помощью общей команды открытия. Запуск /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal, похоже, запускает новый процесс - не то, что я хочу. И затем открывается то же самое окно [Процесс завершен]. taw 14 лет назад 0
Spark вообще не видит специальных клавиш на клавиатуре Microsoft. taw 14 лет назад 0
Так что тогда не используйте специальные ключи. Используйте command-control-0 или что хотите. Alex 14 лет назад 0
0
Daniel Beck

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


Чтобы открыть новое окно терминала или просто Терминал с окном по умолчанию, вы можете попробовать адаптировать это решение .