main
壁纸更换器
从 HTTP API 自动拉取壁纸并设置为 Windows 桌面背景,支持托盘常驻和桌面右键菜单。
功能
- 托盘程序常驻,右键菜单手动/自动刷新壁纸
- 桌面右键菜单「刷新壁纸」一键更换
- 支持 API 直接返回图片二进制或 JSON 含图片 URL 两种模式
- 可配置填充方式(填充/适应/拉伸/平铺/居中)
- 可配置缓存目录及最大缓存数量
- 可开关换壁纸后气泡通知
- 单实例运行,重复启动弹窗提示
- 首次运行自动创建配置和目录
使用
# 运行托盘程序
python main.py
# 右键菜单刷新
python main.py --refresh
# 安装桌面右键菜单(首次需要,从托盘菜单操作)
右键托盘 → 安装右键菜单
编译为 .exe
使用 Nuitka 打包:
powershell -ExecutionPolicy Bypass -File build.ps1
产物:dist/WallpaperChanger.dist/WallpaperChanger.exe(独立目录模式,含 exe + 依赖库)
- 双击运行 → 启动托盘
WallpaperChanger.exe --refresh→ 拉取并设置壁纸后退出(右键菜单用)- 首次运行在同目录下自动创建
config.json、cache/、logs/、assets/
配置
config.json 字段说明:
| 路径 | 类型 | 默认值 | 说明 |
|---|---|---|---|
api.url |
string | — | 壁纸 API 地址 |
api.mode |
string | direct |
direct 返回图片二进制 / json 返回 JSON |
api.json_image_field |
string | url |
JSON 模式下图片 URL 的字段名 |
api.timeout |
int | 30 |
请求超时秒数 |
wallpaper.fill_style |
string | fill |
fill/fit/stretch/tile/center |
wallpaper.cache_dir |
string | ./cache |
壁纸缓存目录 |
wallpaper.max_cache_files |
int | 10 |
最大缓存文件数 |
wallpaper.show_notification |
bool | true |
换壁纸后是否弹气泡通知 |
auto_refresh.enabled |
bool | false |
是否开启定时自动刷新 |
auto_refresh.interval_minutes |
int | 10 |
自动刷新间隔分钟数 |
依赖
- Python 3.12+
- requests, pystray, Pillow