모든 데스크탑 + 모니터의 OS X 데스크탑 배경을 자동으로 변경 하시겠습니까? 설명합니다. #! /bin/bash #script to change all desktop

요약 . 자동화는 모든 (가상) 데스크탑에 대한 데스크탑 배경을 변경하지만 모든 모니터가 아닙니다. 모든 모니터에서 어떻게해야합니까?

세부 사항 .

이 블로그 항목 에서는 다음 스크립트를 사용하여 모든 (가상 / 미션 제어 등) 데스크톱의 배경을 자동으로 변경하는 방법에 대해 설명합니다.

#! /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

그러나 임무 제어 데스크탑에 대한 Lion 기반 시스템의 두 번째 모니터에서 바탕 화면 배경은 변경되지 않습니다. 위의 (또는 유사한) 모든 물리적 모니터에 어떻게 적용됩니까? ( 이처럼 매력적이지 않습니다.)



답변

직장에 듀얼 모니터 Mac이있어 내일 (오늘 쉬는 날)에 사용해 볼 수 있습니다.

나는 당신이 다음의 결과를 비교한다면 생각합니다 :

$ defaults read com.apple.desktop

다음을 통해 배경 화면을 수동으로 변경하기 전과 후에 :

시스템 환경 설정> 데스크탑 및 화면 보호기> 데스크탑

즉, 필요한 이미지를 선택할 수있는 창을 두 번째 디스플레이에 표시해야합니다. 일단 설정되고 작동하면 원래 명령의 출력을 비교하여 힌트가 있는지 확인하십시오. 나는 같은 내일을하고 그것을 가지고 놀 것이다. 더 완벽한 답변을 드릴 수 없는지보십시오.


답변

아직 여러 대의 데스크탑에서이 작업을 수행 할 수있는 방법을 찾지 못했기 때문에 이것이 완전한 대답이 아닐까 걱정됩니다. 그러나 현재 공간에있는 모든 모니터의 데스크탑을 지정한 사진으로 설정합니다.

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를 그 추가 실행 AppleScript로 응용 프로그램으로 자동화 워크 플로우의 조치 및 저장. 그런 다음 이미지를 응용 프로그램으로 끌어다 놓으면 데스크탑 이미지로 설정됩니다.

아마도 누군가는 여러 공간 / 데스크톱 에서이 작업을 수행 할 수있는 방법을 찾을 수 있습니다.


답변

내 시스템에서 (10.12) defaults read com.apple.desktop했다Domain com.apple.desktop does not exist

다음 링크 나이 개 아이디어를 제공합니다
https://derflounder.wordpress.com/2013/10/26/mavericks-desktop-background-picture-settings-moved-from-librarypreferencescom-apple-desktop-plist/

첫 번째 아이디어 : DefaultDesktop의 링크 변경 : 따라서 심볼 링크를 변경하려면 일시적으로 비활성화 System Integrity Protection( https://apple.stackexchange.com/a/214540/156148 ) 해야합니다/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

두 번째 아이디어 :

#! /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


답변