[英]Change macOS background picture with "adapt to screen" parameter in python
我想在 macO 上使用 python 更改我的牆紙。 使用此代碼:
from appscript import app, mactypes
app('Finder').desktop_picture.set(mactypes.File(file_loc))
這工作正常,除了它總是將參數從“調整到屏幕”重置為“居中”。 我找不到任何關於如何添加“調整到屏幕”參數的信息。 謝謝你的幫助。
自從我玩 python 以來已經有一段時間了,但我想我拼湊了一些東西。 它使用PyObjC 。 PyObjC 與最新的操作系統版本一起安裝,但如果您落后於一些修訂,您可能需要自己安裝它。 基本上,此腳本使用NSImageScaleProportionallyUpOrDown
選項調用 NSWorkspace 的setDesktopImageURL:forScreen:options:error:
方法,並將深灰色填充設置為邊框。
我不知道獲取imagePath
的最佳方法 — 抱歉,我的 python已經生銹了,我使用了硬編碼值進行測試 — 但它應該是 POSIX 文件路徑。
from AppKit import NSWorkspace
from AppKit import NSScreen
from AppKit import NSColor
from AppKit import NSWorkspaceDesktopImageScalingKey
from AppKit import NSWorkspaceDesktopImageFillColorKey
from AppKit import NSImageScaleProportionallyUpOrDown
from Foundation import NSURL
from Foundation import NSDictionary
imageURL = NSURL.fileURLWithPath_(imagePath);
sharedSpace = NSWorkspace.sharedWorkspace();
mainScreen = NSScreen.mainScreen();
fillColor = NSColor.darkGrayColor();
optDict = NSDictionary.dictionaryWithObjects_forKeys_([NSImageScaleProportionallyUpOrDown, fillColor], [NSWorkspaceDesktopImageScalingKey,NSWorkspaceDesktopImageFillColorKey]);
sharedSpace.setDesktopImageURL_forScreen_options_error_(imageURL, mainScreen, optDict, None);
可用的縮放選項有:
如果你需要壁紙輔助顯示器,請參閱NSScreen ,如果你想填充不同的顏色(必須是預定義的 colors 之一,或使用 RGB 的自定義顏色),請參閱NSColor 。
如果您在進行這項工作時遇到困難,或有特殊顧慮(例如您需要將其運送到可能未安裝 PyObjC 的計算機),可以將這些相同的 NSWorkspace 調用寫入 AppleScript,然后可以使用 osascript 從 python 運行osascript
。 讓我知道這是一個更好的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.