¿Cambiar automáticamente el fondo de 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 para todos los monitores. ¿Cómo hacerlo para todos los monitores?

Detalles .

Esta entrada de blog describe cómo cambiar automáticamente el fondo de todos los escritorios (virtuales / Control de misión / 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 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? (Hacks como este poco atractivo).

Respuestas:


1

Tengo un monitor dual Mac en el trabajo, así que mañana podré probarlo (hoy libre).

Creo que si compararas 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 protector de pantalla> Escritorio

Eso, debería, abrir una ventana en la segunda pantalla que le permite seleccionar la imagen requerida. Una vez que esté configurado y funcionando, compare el resultado del comando original y vea si le da alguna pista. Haré el mismo mañana y jugaré con él. Vea si no puedo darle una respuesta más completa.


0

Me temo que esta no es una respuesta completa, ya que aún 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 para cualquier 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 establecerá como imagen de escritorio.

Quizás alguien pueda encontrar una manera de hacer que esto funcione con múltiples espacios / escritorios.


0

En mi sistema (10.12) defaults read com.apple.desktopdioDomain 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, debe deshabilitar 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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.