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

8

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

Detalles .

Esta entrada de blog explica cómo cambiar automáticamente el fondo para todos (virtual / Mission Control / etc) escritorios 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 del escritorio en mi segundo monitor en mi sistema basado en Lion para ninguno de mis escritorios controlados por la misión. ¿Cómo se aplica uno arriba (o similar) a todos los monitores físicos? (Hackea a como este poco atractivo.)

    
pregunta Johnny Utahh 17.12.2012 - 00:44

3 respuestas

1

Tengo una Mac con doble monitor en el trabajo, así que mañana podré intentarlo (día libre hoy).

Creo que si tuvieras que comparar 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 & Protector de pantalla > Escritorio

Eso debería mostrar una ventana en la segunda pantalla que le permite seleccionar la imagen requerida. Una vez que esté configurado y funcionando, compare la salida del comando original y vea si le da alguna pista. Haré la misma mañana y jugaré con ella. Mira si no puedo darte una respuesta más completa.

    
respondido por el Danijel-James W 24.09.2013 - 09:47
0

Me temo que esta no es una respuesta completa, ya que todavía no he encontrado una manera de hacer que esto funcione con varios escritorios, pero configurará el escritorio de todos los monitores en el espacio actual a la imagen que 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

Agregue eso a una acción Ejecutar AppleScript en un flujo de trabajo de Automator y guárdelo como una aplicación. Luego puede arrastrar y soltar una imagen en la aplicación y se configurará como la imagen del escritorio.

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

    
respondido por el robmathers 17.12.2012 - 03:27
0

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: enlace

La 1ª idea: cambiar el enlace de DefaultDesktop: Por lo tanto, necesita deshabilitar temporalmente System Integrity Protection ( enlace ), 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
    
respondido por el velop 16.03.2017 - 10:54

Lea otras preguntas en las etiquetas