[Feedback on issues] deepin25的自定义壁纸限制20张,有办法再增加吗?求教各位
Tofloor
poster avatar
mlbhk007
deepin
2025-07-25 09:44
Author

image.png

如图,自定义的图片最多添加20张,而且不能批量添加,只能单张添加,而且这个自动切换壁纸我设为10分钟,实际并没有变化

Reply Favorite View the author
All Replies
avatar
deepin流云
Super Moderator
Community OP
2025-07-25 10:45
#1

目前自定义壁纸是限定了20张,不限制的话会担心可能影响性能;另外自动更换不生效这个内部已修复,只是没赶上前天的推送,计划近期会更新推送。

Reply View the author
avatar
mlbhk007
deepin
2025-07-25 10:51
#2
deepin流云:

目前自定义壁纸是限定了20张,不限制的话会担心可能影响性能;另外自动更换不生效这个内部已修复,只是没赶上前天的推送,计划近期会更新推送。

👍 好的,希望将来能突破20张的限制,并且可以批量添加

Reply View the author
avatar
Feelup
deepin
2025-07-25 11:05
#3
deepin流云:

目前自定义壁纸是限定了20张,不限制的话会担心可能影响性能;另外自动更换不生效这个内部已修复,只是没赶上前天的推送,计划近期会更新推送。

其实没必要一次加载全部的,比如加个滚动条,向下滑动的时候再逐张加载,弄个加载的可爱动画就行,关闭设置时,再全部释放掉。

这样就不会影响性能了。

其实吧,现在每次设置打开那个加载主界面元素的动画,看着都卡

joy

Reply View the author
avatar
寂静的羽夏
deepin
2025-07-26 10:06
#4
deepin流云:

目前自定义壁纸是限定了20张,不限制的话会担心可能影响性能;另外自动更换不生效这个内部已修复,只是没赶上前天的推送,计划近期会更新推送。

没必要显示全部壁纸,太多会卡,可以考虑懒加载,在两边展示方向键用于翻页,不管怎么多也就 20 个。

Reply View the author
avatar
zhangqf
deepin
2026-01-18 11:45
#5
deepin流云:

目前自定义壁纸是限定了20张,不限制的话会担心可能影响性能;另外自动更换不生效这个内部已修复,只是没赶上前天的推送,计划近期会更新推送。

作为一个操作系统,批量加自定义壁纸、轮换壁纸是个很基本的功能,如果这还要限定20张为上限,实在太low了,还不如20年前的winXP!太让人失望了。

Reply View the author
avatar
zhangqf
deepin
2026-08-25 10:20
#6
#!/bin/bash

# 获取桌面环境变量(cron 下必需)
export DISPLAY=:0
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus

# 壁纸目录
WALLPAPER_DIR="$1"
[ -z "$WALLPAPER_DIR" ] && WALLPAPER_DIR="$HOME/Pictures/Wallpapers"
[ ! -d "$WALLPAPER_DIR" ] && echo "❌ 目录不存在!" && exit 1

mapfile -t PICS < <(find "$WALLPAPER_DIR" -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) | sort)
COUNT=${#PICS[@]}; [ $COUNT -eq 0 ] && echo "❌ 没有图片!" && exit 1

IDX=$(( RANDOM % COUNT ))
WP="${PICS[$IDX]}"
echo "🖼️  $(basename "$WP")"

# 获取屏幕分辨率(例:1920x1080)
RES=$(xrandr --current | grep '*' | head -1 | awk '{print $1}')
W=${RES%x*}
H=${RES#*x}
echo "📐 屏幕分辨率: ${W}x${H}"

# 强制拉伸到屏幕分辨率(! 表示忽略宽高比,完整显示不裁剪)
# 清理旧临时文件(只保留本次)
rm -f /tmp/wallpaper_fit_*.jpg 2>/dev/null

# ===== 关键:使用唯一文件名(PID + 时间戳)=====
TMP_WP="/tmp/wallpaper_fit_$$_$(date +%s).jpg"
if command -v convert >/dev/null 2>&1; then
    convert "$WP" -resize ${W}x${H}! "$TMP_WP"
elif command -v ffmpeg >/dev/null 2>&1; then
    ffmpeg -y -loglevel quiet -i "$WP" -vf "scale=${W}:${H}" "$TMP_WP"
else
    echo "❌ 未找到 convert 或 ffmpeg,请安装:sudo apt install imagemagick"
    exit 1
fi
# ===== 使用唯一的 URI 设置壁纸 =====
dbus-send --session --dest=org.deepin.dde.Appearance1 \
    --print-reply /org/deepin/dde/Appearance1 \
    org.deepin.dde.Appearance1.SetCurrentWorkspaceBackground \
    string:"file://$TMP_WP" && echo "✅ 完成" || echo "❌ 失败"

跟AI沟通了几个回合,它给出了一个Deepin25.2中实测可用的.sh脚本,可以对指定目录内的jpg文件随机选取、更换为壁纸,文件数量不受限制。注意:脚本前面关于export的两行用于设置环境变量,以便在crontab中可以被运行。

为了解决deepin的壁纸不能忽略长宽比进行拉伸的问题,AI调用了ffmpeg进行了转化。

把上述脚本保存为ChgWp.sh,然后要给它赋予运行权限:

chmod +x ChgWp.sh

然后运行它就可以手动在指定目录中随机选一张图片、更换为壁纸了。

Reply View the author
avatar
zhangqf
deepin
2026-08-25 10:25
#7

如果想定时更换壁纸,用crontab -e把这个脚本加入到定时启动程序列表中。

例如,把上述代码保存为ChgWp.sh,设置为10分钟轮换一次,则增加下面一行:

*/10 * * * * 脚本所在目录/ChgWp.sh

还可以指定用户自己的壁纸目录:

*/10 * * * * 脚本所在目录/ChgWp.sh /mnt/diskD/壁纸/

Reply View the author