我想在 macOS 上使用 python 更改我的墙纸。使用此代码:
from appscript import app, mactypes
app('Finder').desktop_picture.set(mactypes.File(file_loc))
效果很好,除了它总是将参数从“调整到屏幕”重置为“居中”。我找不到任何关于如何添加“调整到屏幕”参数的信息。谢谢你的帮助。
我想在 macOS 上使用 python 更改我的墙纸。使用此代码:
from appscript import app, mactypes
app('Finder').desktop_picture.set(mactypes.File(file_loc))
效果很好,除了它总是将参数从“调整到屏幕”重置为“居中”。我找不到任何关于如何添加“调整到屏幕”参数的信息。谢谢你的帮助。
自从我玩 python 以来已经有一段时间了,但我想我拼凑了一些东西。它使用PyObjC。PyObjC 与最新的操作系统版本一起安装,但如果您落后于一些修订版,您可能需要自己安装它。基本上,这个脚本使用选项调用 NSWorkspace 的setDesktopImageURL:forScreen:options:error:
方法NSImageScaleProportionallyUpOrDown
,并将深灰色填充设置为边框。
我不知道最好的获取方法——抱歉,我的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 ,如果您想填充不同的颜色(必须是预定义的颜色之一,或使用 RGB 的自定义颜色),请参阅 NSColor。
如果您难以完成这项工作,或者有特殊问题(例如您需要将其发送到可能没有安装 PyObjC 的计算机),可以用 AppleScript 编写这些相同的 NSWorkspace 调用,然后可以使用osascript
. 让我知道这是一个更好的解决方案。