2ディスプレー環境でそれぞれのデスクトップピクチャを切り替えるAutomatorワークフロー

セカンドディスプレー側のデスクトップピクチャの取得方法が中々つかめないまま放置していたのですが、重い腰(?)を上げて調べてみました。
「デスクトップピクチャ 2ディスプレイ mac」などのキーワードで検索したのですが、Automator、AppleScript関連の情報があまり出てこないなと彷徨ったところ、ここを見つけました。

メインディスプレーのピクチャをランダムに変更するAutomatorワークフローについてはこちらで記しましたが、もう一つのディスプレーのピクチャをどうやればいいのか…というのが、これでなんとかなりそうです。(System Events.appとはねえ…)

1

Automatorワークフローは図のAppleScriptの部分を書き換えることにします。画像ファイルの取得とフィルタリングはそのままです。
AppleScriptの部分は次の通りです。

on run {input, parameters}
	tell application "System Events"
		set DispNamae to name of every desktop as list
		set DispNamae1 to (item 1 of DispNamae as string)
		set DispNamae2 to (item 2 of DispNamae as string)
		display dialog "どちらのデスクトップのピクチャを変更しますか?" & return & "=-=-=-=-=-=-=-=-" & DispNamae1 & return & DispNamae2 & return & "=-=-=-=-=-=-=-=-" buttons {"Cancel", DispNamae1, DispNamae2} default button 2 with icon note returning {button returned:theVarb}
		if theVarb is DispNamae1 then
			tell (every desktop whose display name is DispNamae1)
				set previousItem to picture
				set targetItem to (some item in input) as alias
				if targetItem is previousItem then
					set targetItem to (some item in input) as alias
				end if
				try
					set picture to targetItem
				end try
			end tell
		else if theVarb is DispNamae2 then
			tell (every desktop whose display name is DispNamae2)
				set previousItem to picture
				set targetItem to (some item in input) as alias
				if targetItem is previousItem then
					set targetItem to (some item in input) as alias
				end if
				try
					set picture to targetItem
				end try
			end tell
		end if
	end tell
end run

2

ディスプレーの名前を入力するのも面倒なので、先ず名前を取得して、ダイアログボタンでどちらを変更するか選択するようにしています。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中