Minimizar todo excepto las ventanas activas de la aplicación actual

1

Cambio a, por ejemplo, Safari y encuentro la ventana que quiero. Puedo Command-Option-H para ocultar todas las demás aplicaciones, pero también quiero minimizar todas las ventanas de Safari excepto la que estoy usando (la más frontal).

¿Hay una manera de hacer esto? Me conformaría con un AppleScript que puedo activar con Keyboard Maestro.

    
pregunta Alesh Houdek 28.06.2016 - 00:49

1 respuesta

1

Aquí hay un AppleScript que logra los resultados de lo que originalmente solicitó explícitamente y específicamente, antes de editar la pregunta después de que fue respondida.

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

Nota: el AppleScript anterior funciona para mí en OS X 10.8.5 y Safari 6.2.8, sin embargo, no lo he probado en ninguna otra versión de OS X. Dicho esto, creo que funcionará bien en otras versiones de OS X.

Actualice para corregir la edición de la pregunta original:

Jugué un poco con diferentes métodos y lo que encontré fue, dentro de las formas en que lo intenté, la mayoría de las aplicaciones funcionaron, mientras que otras no. En otras palabras, no encontré un método universal que funcionara con todas las aplicaciones que normalmente ejecuto. Por lo tanto, estoy agregando un bloque de código que puedes probar y ver si puede funcionar para ti.

Lo ideal es simplemente ocultar todas las demás aplicaciones y minimizar las ventanas no activas de la aplicación actual para tener una apariencia fluida en acción, lo que se desea, sin embargo, Finder presenta un desafío. Por lo tanto, en este ejemplo, código , el Finder debe minimizar primero todas las ventanas y recuperar lo que era el primero, mientras que otras aplicaciones tienen un buen efecto en cascada para minimizar las ventanas no activas y dejar las ventanas delanteras como están.

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
    
respondido por el user3439894 29.06.2016 - 19:48

Lea otras preguntas en las etiquetas