Comment faire en sorte que les touches spéciales Microsoft Keyboard exécutent des commandes osascript sous OS X?

1

J'essaie de faire en sorte qu'une (1) clé spéciale ouvre une nouvelle fenêtre de terminal.

Je l'ai lié au fichier /Users/taw/bin/new_term, qui contient:

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

Cela fait l'affaire, sauf que cela ouvre également une fenêtre Terminal avec ceci (même si Terminal.app est configuré pour toujours fermer les fenêtres lorsque les processus sont terminés):

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]

Comment puis-je tout faire fonctionner correctement? (peut-être en utilisant une manière différente de ce que j'ai essayé jusqu'à présent)

taw
la source

Réponses:

1

Comme le logiciel Microsoft IntelliType Pro sous OS X utilise le open Pour exécuter tout ce que vous lui demandez, il peut être difficile de le faire exécuter du code AppleScript arbitraire.

J'ai constaté que, bien que les scripts shell et autres ne fonctionnent pas, si vous créez une application Automator (pas AppleScript) avec une seule action Run AppleScript vous pouvez ensuite pointer IntelliType pour exécuter votre application Automator. Assurez-vous de créer une application et non un flux de travail.

Je voulais une touche de favoris pour contrôler iTunes. J'ai donc utilisé les éléments suivants dans mon Run AppleScript Action, qui a fonctionné.

on run {input, parameters}

    tell application "iTunes" to next track

    return input
end run
adam smith
la source
0

Faites exécuter votre clé spéciale /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal au lieu.

(Par curiosité, comment liez-vous une clé à une commande?)

Modifier:

J'essaie de garder tout Microsoft éloigné de Mac OS, car ils ne semblent pas vraiment être à la manière des Mac. Le fait qu'il utilise open car tout en est la preuve.

Donc, si j'étais vous, je déchirerais le pilote de clavier Microsoft et utiliserais Spark à la place:

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

Si vous voulez vraiment utiliser AppleScript pour faire ce que vous faites, ce sera peut-être utile:

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

Vous pouvez également accrocher une partie du code AppleScript à partir de ce dernier lien et le déclencher avec un raccourci clavier utilisant Spark.

Alex
la source
Les pilotes de clavier Microsoft me permettent de lier des clés spéciales (ou toute clé) à un fichier ou une URL arbitraire. Je pense qu'il essaie d'ouvrir le fichier en utilisant la commande ouverte générique. Démarrer / Applications / Utilitaires/Terminal.app/Contents/MacOS/Terminal semble lancer un nouveau processus - pas ce que je veux. Et puis, il ouvre la même fenêtre [Process terminé).
taw
Spark ne voit pas les touches spéciales sur le clavier Microsoft.
taw
Alors n'utilisez pas les clés spéciales. Utilisez command-control-0 ou ce que vous voulez.
Alex
0

Utilisez l’une des options pour démarrer un programme ou exécuter un script sans ouvrir Terminal I décrit dans cette réponse .


Pour ouvrir une nouvelle fenêtre de terminal, ou simplement Terminal avec une fenêtre par défaut, vous pouvez essayer de vous adapter cette solution .

Daniel Beck
la source