すべてのデスクトップ+モニターのOS Xデスクトップの背景を自動的に変更しますか?


8

概要。自動化により、すべての(仮想)デスクトップのデスクトップ背景が変更されますが、すべてのモニターは変更されません。すべてのモニターでそれを行う方法は?

詳細

このブログエントリでは、次のスクリプトを使用して、すべての(仮想/ミッションコントロールなど)デスクトップの背景を自動的に変更する方法について説明します。

#! /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ベースのシステムの2台目のモニターのデスクトップの背景を変更しません。上記の(または同様の)すべての物理モニターにどのように適用しますか?(このような魅力のないハック。)

回答:


1

私は仕事でデュアルモニターMacを持っているので、明日(今日は休み)に試すことができます。

以下の出力を比較するとします。

$ defaults read com.apple.desktop

手動で壁紙を変更する前と後:

システム環境設定>デスクトップとスクリーンセーバー>デスクトップ

必要な画像を選択できるように、2番目のディスプレイにウィンドウが表示されます。それがセットアップされて機能したら、元のコマンドの出力を比較して、手がかりが得られるかどうかを確認します。私は同じ明日をやって、それで遊んでみます。もっと完全な答えを出すことができないかどうか確認してください。


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.desktop与えましたDomain 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/

1番目のアイデア: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

2番目のアイデア:

#! /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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.