Minimieren Sie alle Fenster mit Ausnahme des aktiven Fensters der aktuellen Anwendung

1

Ich wechsle beispielsweise zu Safari und finde das gewünschte Fenster. Ich kann Command-Option-Halle anderen Anwendungen ausblenden, möchte aber auch alle Safari-Fenster mit Ausnahme des Fensters, das ich verwende (das vorderste), minimieren.

Gibt es eine Möglichkeit, dies zu tun? Würde mich mit einem AppleScript begnügen, das ich mit Keyboard Maestro auslösen kann.

Alesh Houdek
quelle
Ich habe meine Antwort mit einem zusätzlichen Block von aktualisierten Code können Sie versuchen.
user3439894

Antworten:

1

Hier ist ein AppleScript, das die Ergebnisse dessen erzielt, wonach Sie ursprünglich ausdrücklich und ausdrücklich gefragt haben, bevor Sie die Frage nach ihrer Beantwortung bearbeiten.

tell application "Safari"
    activate
    tell application "System Events"
        keystroke "h" using {command down, option down}
    end tell
    set miniaturized of (windows whose index is not 1) to true
end tell

Hinweis: Das obige AppleScript funktioniert für mich unter OS X 10.8.5 und Safari 6.2.8, ich habe es jedoch noch nicht auf einer anderen Version von OS X getestet. Das heißt, ich glaube, es wird auch auf anderen Versionen von OS X funktionieren.


Aktualisieren Sie, um die Bearbeitung der ursprünglichen Frage zu beheben:

Ich habe ein bisschen mit verschiedenen Methoden herumgespielt und festgestellt, dass die meisten Apps so funktionierten, wie ich es versucht habe, während einige nicht funktionierten. Mit anderen Worten, ich habe keine universelle Methode gefunden, die mit allen Apps funktioniert, die ich normalerweise ausführe. Also, ich hinzufüge , um einen Block von Code , die Sie ausprobieren können und sehen , ob es für Sie arbeiten kann.

Im Idealfall einfach alle anderen Apps ausblenden und die nicht aktiven Fenster der aktuellen App minimieren, um ein reibungsloses Erscheinungsbild in Aktion zu erzielen. Was auch immer gewünscht ist, Finder war eine Herausforderung. In diesem Beispiel muss Code Finder also zuerst alle Fenster minimieren und die vordersten Fenster wiederherstellen, während andere Apps einen schönen Kaskadeneffekt haben, um nicht aktive Fenster zu minimieren, während die vordersten Fenster unverändert bleiben.

tell application "System Events"
    set frontApp to name of first application process whose frontmost is true
    set windowName to name of first window of application process frontApp
end tell

if not frontApp is "Finder" then
    tell application frontApp
        activate
        tell application "System Events"
            keystroke "h" using {command down, option down}
        end tell
        set miniaturized of (windows whose name is not windowName) to true
    end tell
else
    tell application frontApp
        activate
        tell application "System Events"
            keystroke "h" using {command down, option down}
            keystroke "m" using {command down, option down}
            tell process frontApp to click menu item windowName of menu 1 of menu bar item "Window" of menu bar 1
        end tell
    end tell
end if
user3439894
quelle
Funktioniert! Ich war jedoch auf der Suche nach etwas, das für die jeweilige Anwendung geeignet ist. Das Hinzufügen set frontApp to name of first application process whose frontmost is trueund Ändern von "Safari" zu frontApp in der ersten Zeile scheint nicht zu funktionieren !?
Alesh Houdek
@Alesh Houdek, in Ihrem Kommentar haben Sie gesagt: " Ich habe nach etwas gesucht, das für jede Anwendung geeignet ist ", und das ist überhaupt nicht das, was Sie in Ihrer Frage gesagt haben, als Sie explizit und spezifisch sagten: " Ich wechsle zu Safari und finde das gewünschte Fenster. Ich kann mit Befehl-Wahl-H alle anderen Anwendungen ausblenden, aber ich möchte auch alle Safari-Fenster mit Ausnahme des von mir verwendeten Fensters (das vorderste) minimieren. "Genau das ist es das von mir bereitgestellte AppleScript funktioniert!
user3439894
1
Das ist wahr!!! Ich denke, ich dachte "zum Beispiel". Sehr schlechte Frage. Trotzdem ist es seltsam, dass es mit meiner geringfügigen Änderung nicht funktioniert.
Alesh Houdek