1

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

1

Поскольку программное обеспечение 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
0

Пусть ваш специальный ключ вместо этого выполнит /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.

0

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


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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .