No se puede configurar el fondo de escritorio en la aplicación de pantalla completa

Tengo un Air de 11", por lo que generalmente ejecuto todas mis aplicaciones abiertas en modo de pantalla completa. Tengo un launchdtrabajo para mi usuario que ejecuta un script cada hora y cada inicio de sesión para configurar el fondo del escritorio según la hora del día. El problema es que , a pesar de ejecutarse en segundo plano, a menos que inicie sesión o esté inactivo en el "espacio" del escritorio, no se configurará.

Curiosamente, también cambia al modo oscuro por la noche (o al modo claro durante el día) y esa parte del guión funciona bien.

Entonces, si voy a mi pantalla completa Terminal.appy ejecuto las siguientes líneas, no funcionan para cambiar el fondo del escritorio:

osascript -e "tell application \"Finder\" to set destop picture to POSIX file \"<path>\""

o

osascript -e "tell application \"System Events\" to set picture of every desktop to \"<path>\""

o incluso

tell application "System Events"
    set desktopCount to count of desktops
    repeat with desktopNumber from 1 to desktopCount
        tell desktop desktopNumber
            set picture to "<path>"
        end tell
    end repeat
end tell

¿Alguien sabe cómo hacer que esto funcione?

Respuestas (1)

Llego tarde a la fiesta, pero esto debería funcionar para ti:

-- Set user_project_path to the folder that contains this AppleScript
set user_project_path to POSIX path of ((path to me as string) & "::")

-- Assuming your images are contained in user_project_path directory inside an images folder
set images_directory to user_project_path & "images/" as string

tell application "System Events"
  set desktopCount to count of desktops
  repeat with desktopNumber from 1 to desktopCount
    tell desktop desktopNumber
        -- Change my-desktop-image.png below to the name with extension of your desired image
        set picture to images_directory & "my-desktop-image.png"
    end tell
  end repeat
end tell

Si tienes preguntas, házmelo saber.

Gracias, y todavía no he probado esto, pero ¿en qué se diferencia del último bloque de código que había escrito en mi pregunta?
La forma en que generé la cadena de ruta se veía un poco diferente a la tuya. En realidad, no hay forma de manipular los fondos de escritorio de los "escritorios de fondo" (escritorios que no se muestran actualmente en la pantalla) sin utilizar las funciones de accesibilidad dentro del sistema operativo.
¿Tiene un ejemplo utilizando dichas características? Me interesaría mucho saber cómo hacerlo.
@chrissphinx No he probado este método, pero aquí hay un ejemplo simple: discusiones.apple.com/thread/5670099?tstart=0