[apple] 터미널 명령으로 데스크탑 배경을 어떻게 변경합니까?

OS X 구성 스크립트 에 배경을 일반 어두운 회색으로 설정하는 명령 을 추가하려고 시도 했지만 적용 할 때 기본 모니터로 설정하고 현재 연결된 추가 모니터는 현재 배경을 유지하고 그 이후에도 추가됩니다. 기본 공간 배경을받습니다. 지금까지 내가 가진 것은 다음과 같습니다.

# Change Desktop default BackgroundColor to grey
defaults write com.apple.desktop '{ Background = { default = {BackgroundColor = ( "0.2549019753932953", "0.4117647111415863", "0.6666666865348816" ); Change = Never; ChangePath = "/Library/Desktop Pictures/Solid Colors"; ChangeTime = 1800; DrawBackgroundColor = 1; ImageFileAlias = <00000000 00ce0003 00000000 c73804cd 0000482b 00000000 000c2624 000c2633 0000ca1c 0a310000 00000920 fffe0000 00000000 0000ffff ffff0001 000c000c 2624000c 25fc000a 0789000e 00280013 0053006f 006c0069 00640020 00470072 00610079 00200044 00610072 006b002e 0070006e 0067000f 000c0005 006f0073 00780038 00360012 00394c69 62726172 792f4465 736b746f 70205069 63747572 65732f53 6f6c6964 20436f6c 6f72732f 536f6c69 64204772 61792044 61726b2e 706e6700 00130001 2f00ffff 0000>; ImageFilePath = "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"; NewChangePath = "/Library/Desktop Pictures/Solid Colors"; NewImageFilePath = "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"; NoImage = 0; Placement = Crop; Random = 0; }; }; }'

터미널 명령을 통해 기본값을 어두운 회색 배경으로 설정하는 방법은 무엇입니까? 터미널 명령을 통해 이미 구성된 모든 모니터를 회색으로 변경하려면 어떻게합니까?



답변

Apple이 설정을 sqlite DB로 옮겼 기 때문에 이러한 다른 솔루션은 더 이상 Mavericks에서 작동하지 않습니다. 그러나 이제는 더 쉬워지고 png는 파일 시스템의 어느 곳에 나있을 수 있으며 모든 데스크톱 (가상)도 업데이트되기 때문에 괜찮습니다.

 #!/usr/bin/env bash
 sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '/path/to/any/picture.png'";
 killall Dock;

또는 ~ / .bash_profile에 함수로 추가하고 상대 경로가 아닌 경로를 사용하여 터미널 명령으로 호출하십시오.

#   Update all Wallpapers
function wallpaper() {
    sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '$1'" && killall Dock
}

wallpaper ~/path/to/any/picture.png


답변

이것은 당신을 위해 작동해야합니다 :

osascript
tell application "Finder"
set desktop picture to POSIX file "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"
end tell

이 Mac Rumors 스레드 에는 몇 가지 다른 방법 있지만 가장 쉬운 방법입니다.


답변

한 줄로하는 가장 간단한 방법 :

osascript -e 'tell application "Finder" to set desktop picture to POSIX file "/Library/Desktop Pictures/Earth Horizon.jpg"'


답변

새로운 기능을 수행하기 위해 새 응용 프로그램을 설치하려는 경우 사용하는 m-cli것이 좋습니다. 사용하기 쉽고 필요한 경우 다른 유용한 기능이 많이 있습니다.

brew install m-cli
m wallpaper ./wallpapers/tree.jpg

m-cliauto는 OS 버전을 감지하고 내부적으로bash 스크립트를 사용하여 다른 정답과 동일한 작업을 수행합니다 .


답변

POSIX filefor /posix/paths또는 as aliaswith를 사용하여 경로를 올바르게 참조해야합니다 Old:Mac:Style:Paths.

독을 고르세요 …

POSIX 경로 :

set desktopImage to POSIX file "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"
tell application "Finder"
    set desktop picture to desktopImage
end tell

맥 경로 :

set localLibrary to path to library folder from local domain as string
set desktopImage to localLibrary & "Desktop Pictures:Solid Colors:Solid Gray Dark.png" as alias

tell application "Finder"
    set desktop picture to desktopImage
end tell

다음을 사용하여 위의 Applescript를 터미널 명령으로 쉽게 전환 할 수 있습니다 osascript [-e statement].

osascript -e 'set desktopImage to POSIX file "/Library/Desktop Pictures/Solid Colors/Solid Gray Light.png"
tell application "Finder"
    set desktop picture to desktopImage
end tell'

여러 데스크톱을 설정하려면 다음과 같이 시도해보십시오 tell application "System Events" to set picture of every desktop to "<path>". 불행히도, 이것은 10.7에서 깨져서 다음과 같은 오류가 발생합니다.Expected class name but found application constant or consideration.


답변

결합 jeremyjjbrown의 대답willurd하여이 요점 은 다음과 같이 최대, 엘 캐피 탄을위한 가장 편리한 방법을하고하는 것입니다 :

  1. 응용 프로그램에서 Automator를 열고 새 서비스를 만듭니다.
  2. 설정 Service receives selectedimage files워크 플로우의 상단에. 선택적으로 Finder에서만 작동하도록 제한 할 수 있습니다.

샘플 이미지 1

  1. Run Shell Script워크 플로우에 동작 추가
  2. 기본 스크립트를 비우고 약간 수정 된 jeremyjjbrown의 답변 을 편집기에 삽입하십시오.

    read -e IMAGE;
    sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '$IMAGE'";
    killall Dock;
    
  3. 예를 들어, 원하는 이름으로 서비스를 저장하십시오 Set Desktop Picture on all Spaces.

이제 Finder에서 직접 이미지를 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 서비스를 선택하여 모든 데스크탑의 배경을 쉽게 설정할 수 있습니다.


답변

동일한 작업을 수행하는 펄 스크립트 :

#!/usr/bin/perl
use Cwd;

if ($#ARGV != 1) {
    die "\nUsage: ./changedesktop <filename> <startup disk> \nwhere <filename> may be    any JPEG, PNG, GIF, TIFF or PSD and <startup disk> is the name of your boot volume.\n\n";
}

my $filename = $ARGV[0];
my $bootdisk = $ARGV[1];
my $directory = getcwd;
my $file = $bootdisk.$directory."/".$filename;
$file =~ tr/\//:/;
system("osascript -e \'tell application \"Finder\"\' -e \'set theFile to \"$file\"\' -   e     \'set desktop picture to \(theFile as alias\)\' -e \'end tell'");