17 votes

Créez une commande pour mettre au premier plan une fenêtre spécifique de n'importe où dans le système d'exploitation

En développant pour le web, j'ai tendance à passer constamment de mon éditeur de texte au navigateur. J'aimerais définir un raccourci clavier au niveau du système d'exploitation qui me permette de sauter à une fenêtre spécifique à chaque fois. Encore mieux serait la possibilité de donner des instructions à cette application pour exécuter quelque chose, mais je garde cela pour plus tard.

Y a-t-il des technologies disponibles qui me permettront de le faire ? Il doit y avoir quelque chose entre le langage C et AppleScript qui me permette de créer ce type d'interaction. Est-ce que quelqu'un sait par où commencer ?

Merci.

15voto

Vous pourriez faire quelque chose comme ceci avec AppleScript :

tell application "Terminal"
    activate
    windows where name contains "bash"
    if result is not {} then set index of item 1 of result to 1

Ou en utilisant System Events :

tell application "System Events" to tell process "Terminal"
    set frontmost to true
    windows where title contains "bash"
    if result is not {} then perform action "AXRaise" of item 1 of result

0 votes

J'ai dû exclure 'activer', sinon toutes les fenêtres du Terminal viendraient au premier plan, pas seulement celle dont le titre correspondait. Cela sélectionne également l'onglet si le titre n'est pas l'onglet actuel.

6voto

cmcginty Points 487

J'ai eu beaucoup de mal à faire fonctionner cela avec iTerm2. Voici une solution en une seule commande :

  osascript -e 'tell application "System Events" to tell process "iTerm2"' \
            -e 'set frontmost to true' \
            -e 'if windows is not {} then perform action "AXRaise" of item 1 of windows' \
            -e 'end tell'

2voto

UnkwnTech Points 21942

Vous devriez essayer Automator. Vous pourriez "Enregistrer" un nouveau service (que vous pourrez ensuite publier pour toutes les applications et assigner un raccourci clavier), qui clique sur l'application depuis le Dock. En fait, vous pourriez ajouter plus d'actions et exécuter votre "dire à cette application d'exécuter quelque chose".

J'ai essayé d'en créer un (relativement inutile mais qui fonctionne) qui clique sur Mail dans mon Dock, puis clique sur l'icône recevoir de nouveaux mails dans la barre d'outils. Amusant ;)

Voici le résultat d'Automator :

Automator

J'ai utilisé le bouton Enregistrer en haut à droite, puis j'ai effectué les actions moi-même (cliqué sur l'icône du Dock de Mail, puis cliqué sur l'icône Recevoir de nouveaux mails de Mail dans la barre d'outils, puis cliqué sur "Arrêter l'enregistrement"). Veuillez noter que j'ai sélectionné "Le service reçoit [aucune entrée]" dans la première liste déroulante, car je n'étais pas intéressé par une quelconque entrée.

Cela vous offre de nombreuses possibilités d'avoir quelques services qui vont de votre éditeur de texte à votre navigateur et vice versa.

Automator se trouve en utilisant Spotlight et en tapant Automator (également situé dans /Applications/Automator.app)

Dans ce cas, j'ai créé un nouveau "Service" mais vous pourriez probablement vous en sortir en créant des "scripts". Je ne suis pas sûr lequel serait le plus rapide cependant. Expérimentez. Automator est votre ami.

1voto

devmake Points 111

J'utilise BetterTouchTool pour définir différents raccourcis clavier ou gestes de trackpad sur Mac OS X. Une des actions qu'il peut lancer est Exécuter une commande Terminal

Donc dans les paramètres de la commande je fournis ce qui suit:

osascript -e 'tell application "NameOfTheApplicationHere" to activate'

Voici un exemple des préférences de BetterTouchTool:

entrer la description de l'image ici

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X