killall Dock: todas las ventanas activas maximizan y aparecen en el escritorio

0

He escrito una secuencia de comandos de Python para cambiar el fondo de pantalla del escritorio.

Después de cambiar mi fondo de pantalla con el siguiente código:

app('Finder').desktop_picture.set(mactypes.File(imageAddress))

He añadido

os.system("killall Dock")

El fondo de pantalla cambia con éxito, pero todas las ventanas activas pero minimizadas en la maximización. Mi pregunta es  ¿Cómo actualizo mi Dock sin cambiar el estado de las ventanas minimizadas / maximizadas?

    
pregunta nakulchawla09 18.06.2017 - 08:51

1 respuesta

1

No conozco ninguna forma de evitar que las ventanas minimizadas se restauren al ejecutar un comando
killall Dock , por cualquier método.

La solución a largo plazo es enumerar todos los procesos de aplicación con ventanas visibles y hacer una lista de todas las ventanas minimizadas antes de ejecutar killall Dock y luego usar la lista para volver a minimizarla. En serio, no recomiendo hacerlo, pero es factible si quieres pasar el tiempo programándolo.

Dicho esto, ¿por qué no usar un método que no requiera usar killall Dock e inmediatamente cambie el fondo de pantalla?

Aquí hay dos ejemplos que utilizan AppleScript:

tell application "Finder" to set desktop picture to POSIX file "/Library/Desktop Pictures/Milky Way.jpg"

O:

tell application "Finder" to set desktop picture to alias "Macintosh HD:Library:Desktop Pictures:Sierra.jpg"

Desde la línea de comando, por ejemplo, en Terminal o script basado en shell:

osascript -e 'tell application "Finder" to set desktop picture to POSIX file "/Library/Desktop Pictures/Milky Way.jpg"'

Cualquiera de estos cambia inmediatamente el fondo de pantalla sin necesidad de hacer nada.

    
respondido por el user3439894 18.06.2017 - 12:22

Lea otras preguntas en las etiquetas