Wie kann ich das aktuell aktive Fenster nach hinten senden?

15

Gibt es eine Verknüpfung oder eine solche, um das aktuell aktive Fenster an die Rückseite des Bildschirms zu senden, während es weiterhin geöffnet bleibt (so dass es "unter" allen anderen geöffneten Fenstern landet)?

Tetsujin
quelle
2
H sendet die aktuelle App (einschließlich aller Fenster) nach hinten und versteckt sie, bis Sie sie wieder nach vorne bringen (vom Dock oder über -TAB, um die App erneut auszuwählen). In den meisten Anwendungen wechselt Shift-- ~ durch die Fenster der aktuellen App, was wahrscheinlich dem am nächsten kommt, wonach Sie suchen.
Mic Channel
Ich weiß davon, es ist nicht was ich will.
1
Wenn Sie es ganz nach hinten senden möchten, auf welches Fenster sollten Sie sich konzentrieren? Das zuvor ausgewählte Fenster?
Sayzlim

Antworten:

10

Kurze Antwort: Nein , Apple bietet keine API, mit der Sie einen Anwendungsfensterindex ändern können, außer indem Sie ein Fenster nach vorne bringen (Index 1). Es gibt keine eleganten Lösungen . Aber:

Lange Antwort: Ja , Sie können AppleScript verwenden, um ein Fenster effektiv an die Rückseite eines Stapels von AppleScript-fähigen Fenstern zu verschieben, indem Sie eine Liste von Fenstern sammeln und dann jedes Fenster (mit Ausnahme des vordersten) schnell nach vorne verschieben und das ausgewählte Fenster verlassen hinten.

Hier ist ein Beispiel für ein AppleScript, das das vorderste Finder-Fenster nach hinten sendet.

tell application "Finder"
    set winList to every window whose visible is true
    if not winList = {} then
        repeat with oWin in (items 1 through -2 of reverse of winList)
            set index of oWin to 1
        end repeat
    end if
end tell

Dieses Skript basiert auf einer Lösung von JMichaelTX, die im KeyboardMaestro-Forum diskutiert wurde.

Das Ummischen ist unglaublich schnell, aber im Skript-Editor können Sie die Funktionsweise überprüfen, indem Sie "506" unten belassen und "502-505" so öffnen, dass die Reihenfolge erhalten bleibt:

get every window whose visible = true
    --> {Finder window id 506, Finder window id 505, Finder window id 504, Finder window id 503, Finder window id 502}
set index of Finder window id 502 to 1
    --> 1
set index of Finder window id 503 to 1
    --> 1
set index of Finder window id 504 to 1
    --> 1
set index of Finder window id 505 to 1
    --> 1

Sie können dieses AppleScript einem Dienst oder einer Tastenkombination zuordnen, indem Sie entweder a) das Skript in eine Aktion zum Ausführen von AppleScript in einem Automator-Dienst einfügen oder b) einen Starter (Alfred, Keyboard Maestro usw.) verwenden. Einzelheiten zur Zuweisung von Applescript-Tastaturen finden Sie unter: Wie ordne ich einem von mir geschriebenen AppleScript eine Tastenkombination zu?

Dies kann die Bedürfnisse der OP befriedigen - es ist aus dem ursprünglichen Beitrag unklar. Diese Lösung kann auch auf mehrere AppleScript-fähige Anwendungen erweitert werden. Ich bin nicht jedoch bekannt , eine Lösung , um es effektiv mit einer Mischung aus skriptfähig und nicht skript Fenstern, aufgrund der Tatsache , funktioniert das in Applescript, System Eventsadressierbaren Fenster für nicht-skriptfähigen Programme haben kein set indexVerb / Objekt. Für einige Fenster gibt es eine "AXRaise" -Aktion, wenn Hilfsgeräte / Eingabehilfen aktiviert sind. Dies gilt jedoch nicht für alle Fenster. Es gibt aufwendige Hacks, bei denen Sie durch jede aktive Anwendung gehen und Fenster ein- / ausblenden oder minimieren / wiederherstellen, aber sie sind ein Chaos.

Verwandte Diskussionen:

JeremyDouglass
quelle
Ist es möglich, das Fenster einer App nach hinten zu senden, anstatt das Fenster einer bestimmten App?
Di Liu
Leider scheint dies ab Mojave nicht mehr zu funktionieren.
Edward Falk
Nach meinem Verständnis benötigt das Steuern von Finder mit AppleScript seit Mojave jetzt Berechtigungen zum Ausführen (nicht getestet). Wenn Sie Fehler wie errAEEventNotPermitted erhalten, gibt es Lösungen zum Hinzufügen dieser Berechtigungen - siehe verwandte Diskussionen: forums.developer.apple.com/thread/106949
JeremyDouglass
2

Ihre Frage ist nicht sehr klar, aber wenn Sie eine Verknüpfung zum Durchlaufen aller Fenster der derzeit aktiven App wünschen, sollten Sie dies mit der Command~Tastenkombination tun können .

Der ~Schlüssel befindet sich normalerweise links vom 1Schlüssel.

Zur Verdeutlichung Command~durchläuft die Tastenkombination alle Fenster der aktuellen App, in der Sie sich befinden. Wenn Sie beispielsweise MS Word verwenden und drei Dokumente geöffnet haben, werden diese drei Dokumente durchlaufen.

Die Command~Tastenkombination wechselt jedoch nicht durch die Registerkarten. Wenn Sie beispielsweise Safari mit drei Fenstern geöffnet haben und in jedem Fenster fünf Registerkarten geöffnet sind, wird mit dieser Verknüpfung durch die drei Fenster und nicht durch die einzelnen Registerkarten gewechselt.

Eine weitere Option, mit der Sie möglicherweise das erreichen, was Sie möchten, ist die CommandMTastenkombination. Dies minimiert jedoch das derzeit aktive Fenster zum Dock, sodass ich vermute, dass Sie dies nicht möchten.

Wenn ich Ihre Frage völlig falsch verstanden habe, klären Sie dies bitte.

Monomeeth
quelle
Ich denke, dass dies der Anwendungsfall ist, den das OP möchte: Angenommen, ich habe die Nachrichten-App vor meiner Mail-App geöffnet und möchte die Mail-App schnell in den Vordergrund stellen und Nachrichten in den Hintergrund senden. Ich kann eine Tastatur verwenden Verknüpfung und die Nachrichten-App wird hinter meiner Mail-App sein. Ich habe Ihre Tastenkombination ausprobiert und dies hat das nicht erreicht.
Owlswipe
Ich denke du meinst den Schlüssel. ~ wird nur gedruckt, wenn die Umschalttaste gedrückt gehalten wird und `gedrückt wird
Crowder