Wie lassen sich mit Microsoft Keyboard-Spezialbefehlen OSScript-Befehle ausführen?

979
taw

Ich versuche, (1) eine Sondertaste ein neues Terminalfenster zu öffnen.

Ich habe es an eine Datei gebunden /Users/taw/bin/new_term, die Folgendes enthält:

#!/bin/sh exec osascript -e 'tell application "Terminal" to do script "cd ."' 

Dies macht den Trick, außer dass damit auch ein Terminalfenster geöffnet wird (obwohl Terminal.app so konfiguriert ist, dass Fenster immer geschlossen werden, wenn Prozesse abgeschlossen sind):

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] 

Wie kann ich alles richtig machen? (möglicherweise einen anderen Weg als das, was ich bisher versucht habe)

1

3 Antworten auf die Frage

1
adam smith

Da die Microsoft IntelliType Pro-Software unter OS X den openBefehl ausführt, um das auszuführen, was Sie möchten, kann es schwierig sein, beliebigen AppleScript-Code auszuführen.

Ich habe festgestellt, dass Shell-Skripte und dergleichen nicht funktionieren. Wenn Sie eine Automator-Anwendung (nicht AppleScript) mit einer einzigen Aktion erstellen Run AppleScript, können Sie IntelliType darauf hinweisen, um Ihre Automator-Anwendung auszuführen. Stellen Sie sicher, dass Sie eine Anwendung und keinen Workflow erstellen.

Ich wollte einen Favoriten-Schlüssel, um iTunes zu steuern. Daher habe ich in meiner Run AppleScriptAktion Folgendes verwendet, was funktioniert.

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

Lassen Sie /Applications/Utilities/Terminal.app/Contents/MacOS/Terminalstattdessen Ihren Sonderschlüssel ausführen .

(Wie binden Sie aus Neugier einen Schlüssel an einen Befehl?)

Bearbeiten:

Ich versuche, alles, was Microsoft von Mac OS entfernt hält, zu vermeiden, da sie den Mac-Weg nicht wirklich zu beeinträchtigen scheinen. Die Tatsache, dass es openfür alles verwendet wird, ist ein Beweis dafür.

Wenn ich Sie wäre, würde ich den Microsoft-Tastaturtreiber ausreißen und stattdessen Spark verwenden:

http://www.brighthub.com/computing/mac-platform/reviews/30244.aspx

Wenn Sie wirklich AppleScript für Ihre Zwecke verwenden möchten, ist dies möglicherweise von Nutzen:

http://lambie.org/2007/11/03/tabs-in-terminal-using-applescript-on-leopard/

Sie können auch ein wenig AppleScript aus dem letzten Link herausholen und mit Spark einen Hotkey auslösen.

Mit Microsoft-Tastaturtreibern lassen sich Sondertasten (oder beliebige Tasten) an beliebige Dateien oder URLs binden. Ich denke, es versucht, die Datei mit dem generischen Befehl "Öffnen" zu öffnen. Das Starten von /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal scheint einen neuen Prozess zu starten - nicht das, was ich will. Dann öffnet sich dasselbe Fenster [Vorgang abgeschlossen]. taw vor 14 Jahren 0
Spark erkennt auf Microsoft Keyboard überhaupt keine Sondertasten. taw vor 14 Jahren 0
Verwenden Sie also nicht die Sondertasten. Verwenden Sie die Befehlssteuerung-0 oder was immer Sie möchten. Alex vor 14 Jahren 0
0
Daniel Beck

Verwenden Sie eine der Optionen, um ein Programm zu starten oder ein Skript auszuführen, ohne das in dieser Antwort beschriebene Terminal zu öffnen .


Um ein neues Terminalfenster oder nur ein Terminal mit einem Standardfenster zu öffnen, können Sie versuchen, diese Lösung anzupassen .