Não é possível definir o plano de fundo da área de trabalho no aplicativo de tela cheia

3

Eu tenho um Air de 11 ", então geralmente executo todos os meus aplicativos abertos no modo de tela cheia. Tenho um launchdtrabalho para meu usuário que executa um script a cada hora e todo login para definir o plano de fundo da área de trabalho de acordo com a hora do dia. O problema é que , apesar de ser executado em segundo plano, a menos que esteja fazendo login ou ocioso no "espaço" da área de trabalho, ele não será definido.

Estranhamente, ele também muda para o modo escuro à noite (ou modo claro durante o dia) e essa parte do script funciona muito bem.

Portanto, se eu for para a tela cheia Terminal.appe executar as seguintes linhas, elas não funcionarão para alterar o plano de fundo da área de trabalho:

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

ou

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

ou mesmo

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

Alguém sabe como fazer isso funcionar?

chrissphinx
fonte

Respostas:

1

Estou atrasado para a festa, mas isso deve funcionar para você:

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

Se você tiver dúvidas, deixe-me saber

adamdehaven
fonte
Obrigado, e ainda não tentei isso, mas como isso é diferente do último bloco de código que eu escrevi na minha pergunta?
Chrissphinx #
A maneira como eu gero a string do caminho parecia um pouco diferente da sua. Na verdade, não há como manipular os fundos da área de trabalho das "áreas de trabalho em segundo plano" (áreas de trabalho que atualmente não são mostradas na tela) sem utilizar os recursos de acessibilidade no sistema operacional.
Adamdehaven
Você tem um exemplo utilizando os recursos mencionados? Eu ficaria muito interessado em saber como fazer isso.
Chrissphinx
@chrissphinx Eu não tentei este método, mas aqui está um exemplo simples: discussions.apple.com/thread/5670099?tstart=0
adamdehaven