如何存储Wall-d脚本输出以实现壁纸恢复复用?
Storing Last Wallpaper Configuration for Your Wall-d Script
我来给你梳理几个靠谱的方案,用来存储Wall-d脚本的上次壁纸配置,这样重启X的时候就能轻松恢复啦:
方案1:用配置文件存储关键参数
这是最直观也最灵活的方式,核心思路是每次成功设置壁纸时,把选项($option)和壁纸路径($wall)写入一个专门的配置文件,恢复时再读取这个文件执行命令。
步骤1:选择存储位置
推荐遵循XDG规范,把配置文件放在用户的配置目录下,比如:$HOME/.config/wall-d/last_wallpaper.conf
先在脚本里创建这个目录(避免首次运行报错):
mkdir -p "$HOME/.config/wall-d"
步骤2:写入配置
当你的脚本确定了$option和$wall的有效值,并且成功执行xwallpaper命令后,把这两个变量写入配置文件:
# 覆盖写入配置文件,确保每次只保留最新的设置 echo "WALLPAPER_OPTION=$option" > "$HOME/.config/wall-d/last_wallpaper.conf" echo "WALLPAPER_PATH=$wall" >> "$HOME/.config/wall-d/last_wallpaper.conf"
注意:如果壁纸路径包含空格,一定要确保变量被正确处理,脚本里的
$wall最好始终用双引号包裹。
步骤3:读取配置恢复
当执行Wall-d -r时,读取配置文件里的变量并执行恢复命令:
# 检查配置文件是否存在 if [ -f "$HOME/.config/wall-d/last_wallpaper.conf" ]; then # 加载配置文件里的变量 source "$HOME/.config/wall-d/last_wallpaper.conf" # 执行恢复命令,注意变量的引号 xwallpaper --"$WALLPAPER_OPTION" "$WALLPAPER_PATH" else echo "Error: No previous wallpaper configuration found." # 可选:这里可以设置默认壁纸,或者让脚本退出 fi
方案2:存储完整的执行命令
如果不需要单独复用选项和路径,也可以直接把完整的xwallpaper命令存入文件,恢复时直接执行:
写入命令
echo "xwallpaper --$option '$wall'" > "$HOME/.config/wall-d/last_wallpaper_cmd.sh" chmod +x "$HOME/.config/wall-d/last_wallpaper_cmd.sh"
恢复命令
if [ -f "$HOME/.config/wall-d/last_wallpaper_cmd.sh" ]; then "$HOME/.config/wall-d/last_wallpaper_cmd.sh" else echo "Error: No previous wallpaper configuration found." fi
这个方式更简单,但灵活性稍差,比如后续如果要修改xwallpaper的命令结构,可能需要调整存储的内容。
额外注意事项
- 确保脚本有写入配置目录的权限(一般用户自己的
$HOME/.config目录默认有权限,不用额外处理) - 如果你的脚本支持多个显示器的复杂设置,可以扩展配置文件,存储更多参数(比如每个显示器的选项和路径)
- 可以在脚本里添加错误检查,比如只有当
xwallpaper命令执行成功时,才更新配置文件,避免存储失败的设置
内容的提问来源于stack exchange,提问作者user13433769
相关产品推荐
相关产品推荐

