是否自动更改所有台式机和显示器的OS X台式机背景?


8

摘要。自动化会更改所有(虚拟)桌面的桌面背景,但不会更改所有监视器。如何为所有显示器做到这一点?

细节

此博客文章讨论如何使用以下脚本自动更改所有(虚拟/ Mission Control等)桌面的背景:

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

但是,对于任何Mission Controlled桌面,它都不会更改基于Lion的系统上第二台显示器的桌面背景。以上(或类似内容)如何适用于所有物理监视器?(这样的吸引力没有吸引力。)

Answers:


1

我正在使用双显示器Mac,因此明天(今天休息)我可以尝试一下。

我认为如果您要比较以下输出:

$ defaults read com.apple.desktop

通过以下方式手动更改墙纸之前和之后:

系统偏好设置>桌面和屏幕保护程序>桌面

那应该在第二个显示中调出一个窗口,让您选择所需的图像。一旦设置并正常工作,请比较原始命令的输出,看看它是否能提供任何线索。我将做同样的明天并与它一起玩耍。看看我是否能给您更完整的答案。


0

恐怕这不是一个完整的答案,因为我还没有找到一种可以在多个桌面上使用的方法,但是它将把当前空间中所有监视器的桌面设置为您指定的任何图片。

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

将其添加到Automator工作流程中的“运行AppleScript”操作中,并将其另存为应用程序。然后,您可以将图像拖放到应用程序上,并将其设置为桌面图像。

也许有人可以找到一种方法来使用多个空间/桌面。


0

在我的系统(10.12)defaults read com.apple.desktopDomain com.apple.desktop does not exist

以下链接给了我2个想法:https : //derflounder.wordpress.com/2013/10/26/mavericks-desktop-background-picture-settings-moved-from-librarypreferencescom-apple-desktop-plist/

第一个想法:更改DefaultDesktop的链接:因此,您需要临时禁用System Integrity Protectionhttps://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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.