8 votos

¿Cambiar automáticamente el fondo de escritorio de OS X para todos los escritorios + monitores?

Resumen . La automatización cambia el fondo del escritorio para todos los escritorios (virtuales), pero no para todos los monitores. ¿Cómo hacerlo para todos los monitores?

Detalles .

Esta entrada del blog discute cómo cambiar automáticamente el fondo de todos los escritorios (virtual / Mission Control / etc) con el siguiente script:

#! /bin/bash
#script to change all desktop backgrounds
echo -n “Drag and drop an image file here then press ‘return’ or press ‘control-c’ to cancel…”
read -e WLPR;
function change_wallpaper
{
defaults write com.apple.desktop Background "{default = {ImageFilePath='$WLPR'; };}"; killall Dock
}
change_wallpaper

Sin embargo, no cambia el fondo de escritorio de mi segundo monitor en mi sistema basado en Lion para ninguno de mis escritorios controlados por la misión. ¿Cómo se puede aplicar lo anterior (o algo similar) a todo ¿monitores físicos? (Hacks así poco atractivo).

1voto

Danijel J Puntos 2565

Tengo un Mac de doble monitor en el trabajo, así que podré probarlo mañana (hoy es día libre).

Creo que si se compara la salida de:

$ defaults read com.apple.desktop

Antes y después de haber cambiado manualmente el fondo de pantalla a través de:

Preferencias del Sistema > Escritorio y Salvapantallas > Escritorio

Eso, debería, hacer aparecer una ventana en la segunda pantalla que le permita seleccionar la imagen requerida. Una vez que esté configurado y funcionando, compare la salida del comando original y vea si le da alguna pista. Yo haré lo mismo mañana y jugaré con ello. A ver si puedo darte una respuesta más completa.

1voto

Sameer Puntos 1434

Suspiro. Es realmente molesto que 4 años después todavía no tengamos una respuesta adecuada para esta pregunta. Tengo un automator script que establece un escritorio con la Imagen Astronómica del Día y me di cuenta de que había cambiado la imagen por un escritorio diferente al habitual. Acabo de probar algunas de las ideas de este hilo para cambiar todos los escritorios y en su lugar ha cambiado la imagen en un único escritorio que ni siquiera estaba visible. Si escribo un script para mostrar la imagen actual de cada escritorio me dice que dos escritorios se han puesto con la imagen elegida - aunque ninguno de los escritorios visibles ha cambiado.

Curiosamente, si pido los nombres de los escritorios me salen los nombres de los monitores y no "Escritorio 1", "Escritorio 2", etc.

tell application "System Events"
    repeat with aDesktop in every desktop
        display dialog the name of aDesktop & ": " & the picture of aDesktop as string
    end repeat
end tell

0voto

Ged Byrne Puntos 481

Me temo que esto no es una respuesta completa, ya que todavía no he encontrado la manera de hacer que esto funcione con múltiples escritorios, pero establecerá el escritorio de todos los monitores en el espacio actual a cualquier imagen que usted especifique.

on run {input, parameters}
    set theFile to first item of input
    tell application "System Events"
        set theDesktops to a reference to every desktop
        repeat with aDesktop in theDesktops
            set the picture of aDesktop to theFile
        end repeat
    end tell
    return theFile
end run

Añade eso a un Ejecutar AppleScript en un flujo de trabajo de Automator y guardarlo como una aplicación. A continuación, puede arrastrar y soltar una imagen en la aplicación y se establecerá como la imagen del escritorio.

Tal vez alguien pueda encontrar una manera de hacer que esto funcione con múltiples espacios/escritorios.

0voto

velop Puntos 101

En mi sistema (10.12) defaults read com.apple.desktop dio Domain com.apple.desktop does not exist

El siguiente enlace me da 2 ideas: https://derflounder.wordpress.com/2013/10/26/mavericks-desktop-background-picture-settings-moved-from-librarypreferencescom-apple-desktop-plist/

La primera idea: Cambiar el enlace de DefaultDesktop: Por lo tanto, usted necesita para desactivar temporalmente System Integrity Protection ( https://apple.stackexchange.com/a/214540/156148 ), para cambiar el enlace simbólico en /System/Library/CoreServices/DefaultDesktop.jpg

#! /bin/bash
if [ -z "$1" ]; then
    echo "Please specify an absolute path to an image as first parameter"
    exit -1
fi
mv /System/Library/CoreServices/DefaultDesktop.jpg /System/Library/CoreServices/DefaultDesktop.jpg.backup
ln -s $1 /System/Library/CoreServices/DefaultDesktop.jpg

La segunda idea:

#! /bin/bash
#script to change all desktop backgrounds
if [ -z "$1" ]; then
    echo "Please specify an absolute path to an image as first parameter"
    exit -1
fi

osascript -e "tell application \"System Events\" to set picture of every desktop to \"$1\""
killall Dock

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X