Erstellen Sie einen Befehl, um ein bestimmtes Fenster von einer beliebigen Stelle im Betriebssystem aus zu fokussieren


10

Während der Entwicklung für das Web neige ich dazu, viel zwischen meinem Texteditor und dem Browser hin und her zu springen. Ich möchte eine Tastenkombination auf Betriebssystemebene festlegen, mit der ich jedes Mal zu einem bestimmten, definierbaren Fenster springen kann. Noch besser wäre die Möglichkeit, dieser Anwendung zu sagen, dass sie etwas ausführen soll, aber ich werde das für später speichern.

Gibt es Technologien, mit denen ich dies tun kann? Es muss etwas zwischen C und AppleScript geben, mit dem ich eine solche Interaktion erstellen kann. Weiß jemand, wo er anfangen soll?

Vielen Dank.

Antworten:


2

Sie sollten Automator ausprobieren. Sie können einen neuen Dienst "aufzeichnen" (den Sie später für alle Apps veröffentlichen und eine Tastaturkürzel zuweisen können), der auf die App im Dock klickt. In der Tat könnten Sie weitere Aktionen hinzufügen und Ihre "Anweisung an diese Anwendung, etwas auszuführen" ausführen.

Ich habe versucht, eine zu erstellen (die relativ nutzlos ist, aber funktioniert), die in meinem Dock auf Mail klickt und dann in der Symbolleiste auf das Symbol Neue Mail abrufen klickt . Spaß ;)

Anbei die Aufnahme des Automator-Ergebnisses:

Automator

Ich habe die Schaltfläche " Aufzeichnen" in der oberen rechten Ecke verwendet und dann die Aktionen selbst ausgeführt (auf das Dock-Symbol der Mail geklickt, dann auf das Symbol "Neue Mail abrufen" in der Symbolleiste geklickt und dann auf "Aufzeichnung beenden" geklickt). Bitte beachten Sie, dass ich im ersten Kombinationsfeld "Dienst erhält [keine Eingabe]" ausgewählt habe, da ich an keiner Eingabe interessiert war.

Dies gibt Ihnen mehrere Möglichkeiten, einige Dienste zu nutzen, die Ihren TextEditor und Ihren Browser hin und her bewegen.

Der Automator wird mithilfe von Spotlight gefunden und Automator eingegeben (ebenfalls in /Applications/Automator.app).

In diesem Fall habe ich einen neuen "Service" erstellt, aber Sie könnten wahrscheinlich durch das Erstellen von "Skripten" davonkommen. Ich bin mir nicht sicher, welches schneller sein würde. Experiment. Automator ist dein Freund.


5

Mit AppleScript können Sie Folgendes tun:

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

Oder mit Systemereignissen:

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
end tell

1

Ich verwende BetterTouchTool zum Festlegen verschiedener Tastaturkürzel oder Trackpad-Gesten unter Mac OS X. Eine der Aktionen, die es starten kann, ist Execute Terminal Command

In den Einstellungen des Befehls gebe ich also Folgendes an:

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

Hier ist ein Beispiel aus den BetterTouchTool-Einstellungen:

Geben Sie hier die Bildbeschreibung ein


1

Ich hatte große Probleme, dies mit iTerm2 zum Laufen zu bringen. Hier ist eine Einzelbefehlslösung:

  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'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.