在GNOME/Plasma环境中下载并设置Windows Spotlight随机壁纸及附加功能需求咨询
在GNOME/Plasma环境中下载并设置Windows Spotlight随机壁纸及附加功能需求咨询
嘿,我刚好研究过这个需求,给你一套在GNOME和Plasma桌面下完美实现的方案,不仅能下载并随机设置Windows Spotlight壁纸,还能满足你提到的两个附加功能!
一、核心方案:工具+自定义脚本组合实现
我推荐用spotlight-downloader(轻量的Python命令行工具)配合简单的Shell脚本,无需依赖外部链接,就能灵活控制所有功能。
1. 安装工具并配置存档目录
打开终端,执行以下命令安装工具并创建专属存档目录:
# 安装Python命令行工具 pip3 install spotlight-downloader # 创建壁纸保存目录和元数据子目录 mkdir -p ~/Pictures/Spotlight ~/Pictures/Spotlight/metadata # 配置工具的默认下载路径和元数据保存开关 spotlight-downloader config set download_dir ~/Pictures/Spotlight spotlight-downloader config set save_metadata true
这样所有下载的Spotlight壁纸都会存在~/Pictures/Spotlight,每张壁纸的元数据(分辨率、发布日期、描述等)会自动保存在metadata子目录中。
2. 针对GNOME/Plasma设置壁纸
根据你的桌面环境,选择对应的命令设置随机壁纸:
对于GNOME桌面
用GNOME原生的gsettings命令,同时覆盖浅色/深色模式的壁纸设置:
# 随机选择一张已下载的壁纸 RANDOM_WALLPAPER=$(ls ~/Pictures/Spotlight/*.jpg | shuf -n1) # 设置为桌面壁纸 gsettings set org.gnome.desktop.background picture-uri "file://$RANDOM_WALLPAPER" gsettings set org.gnome.desktop.background picture-uri-dark "file://$RANDOM_WALLPAPER"
对于Plasma桌面
调用KDE的qdbus接口,为所有桌面屏幕设置壁纸:
# 随机选择一张已下载的壁纸 RANDOM_WALLPAPER=$(ls ~/Pictures/Spotlight/*.jpg | shuf -n1) # 执行Plasma壁纸设置脚本 qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript ' var desktops = desktops(); for (let i = 0; i < desktops.length; i++) { let desktop = desktops[i]; desktop.wallpaperPlugin = "org.kde.image"; desktop.currentConfigGroup = ["Wallpaper", "org.kde.image", "General"]; desktop.writeConfig("Image", "file://'"$RANDOM_WALLPAPER"'"); } '
3. 实现壁纸信息通知
用Linux桌面通用的notify-send命令,在更换壁纸时弹出包含壁纸信息的通知:
# 提取壁纸的名称和元数据 WALLPAPER_NAME=$(basename "$RANDOM_WALLPAPER") METADATA_FILE=~/Pictures/Spotlight/metadata/${WALLPAPER_NAME%.jpg}.json IMAGE_INFO=$(jq -r '.description + "\n分辨率: " + .resolution' "$METADATA_FILE") # 弹出带缩略图的通知 notify-send "Spotlight壁纸已更新" "名称: $WALLPAPER_NAME\n$IMAGE_INFO\n保存位置: $RANDOM_WALLPAPER" --icon="$RANDOM_WALLPAPER"
通知会包含壁纸的缩略图、名称、描述、分辨率和保存路径,清晰直观。
4. 自动随机更换(可选)
如果想定期自动更换壁纸,用cron设置定时任务:
# 打开crontab编辑器 crontab -e # 添加定时命令(示例:每天上午10点自动更换) 0 10 * * * /path/to/your/spotlight-script.sh
记得把/path/to/your/spotlight-script.sh替换为你实际保存脚本的路径。
二、附加需求的具体实现
- 通知显示壁纸信息:上面的脚本已通过
notify-send完全实现,通知内容包含壁纸核心信息,还附带缩略图,一眼就能了解壁纸详情。 - 保存所有壁纸及信息:所有下载的壁纸长期保存在
~/Pictures/Spotlight目录,对应的元数据文件存在metadata子目录中,即使更换新壁纸,你随时可以打开目录查看历史壁纸,通过元数据文件了解每张壁纸的详细信息。
备注:内容来源于stack exchange,提问作者kos
相关产品推荐
相关产品推荐

