Joh*_*ohn 16 wallpaper xubuntu cron
我已经做了很多谷歌搜索,但一直无法找到解决我的问题的方法。
我是一名老师,我在一些学生电脑上使用 Xubuntu。我把所有东西都锁定得很好,但我不知道如何限制用户更改壁纸而不必在 Kiosk 模式下关闭整个机器。我不在乎他们是否在工作会话期间更改它,但我想创建一个 crontab,在重新启动时重置回原始 .png。
我希望有一个简单的 cron 条目,但如果需要的话,我愿意轻松进入 shell 脚本的世界。
有任何想法吗?
小智 14
在 Xfce 领域,那是
xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set /usr/share/backgrounds/xfce/xfce-blue.jpg
Run Code Online (Sandbox Code Playgroud)
(当然,替换您想要的文件路径。)
xfconf-query --channel xfce4-desktop --list
Run Code Online (Sandbox Code Playgroud)
列出所有相关属性,以防 screen0/monitor0 不是一个。
对于 Xubuntu 14.04 中的 xfce4,使用属性/backdrop/screen0/monitorDisplayPort-1/workspace0/last-image而不是/backdrop/screen0/monitor0/image-path
您还需要像这样设置 DBUS_SESSION_BUS_ADDRESS 环境变量:
PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我想每天旋转一次壁纸(来自选定文件夹的随机图像),但我不规则地打开我的电脑,所以我通过每半小时从 cron 运行一个脚本来解决它,但只生效一次一天。
crontab 中的条目(通过crontab -e命令添加):
0,30 * * * * /home/lucifer/scripts/rotate-wallpaper.sh
Run Code Online (Sandbox Code Playgroud)
旋转wallpaper.sh:
#!/bin/bash
wallpaperdir="/home/lucifer/Pictures/wallpapers"
datefile="/home/lucifer/.wallsw"
thisday=$( date +%j )
wallfiles=($wallpaperdir/*)
randompic=`printf "%s\n" "${wallfiles[RANDOM % ${#wallfiles[@]}]}"`
PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
if [ -f "$datefile" ]
then
lastday=$( cat "$datefile" )
if [ "$lastday" != "$thisday" ]
then
date +%j > "$datefile"
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDisplayPort-1/workspace0/last-image --set $randompic
fi
else
date +%j > "$datefile"
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDisplayPort-1/workspace0/last-image --set $randompic
fi
Run Code Online (Sandbox Code Playgroud)
注意:-如果您使用的是非英语系统区域设置,则该属性可以具有不同的名称。找出属性名称的最佳方法,打开终端窗口,然后运行以下命令:
xfconf-query -c xfce4-desktop -m
Run Code Online (Sandbox Code Playgroud)
这将打开 xfce4-desktop 属性的监控。现在手动更改您的背景。您应该会在终端窗口中看到受此更改影响的属性名称。如果与/backdrop/screen0/monitorDisplayPort-1/workspace0/last-image不同,请使用此属性名称
设置image-path对我的系统(XFCE 4.12,Debian buster/sid)没有影响。
我使用以下内容来设置所有工作区的背景图像:
xfconf-query --channel xfce4-desktop --list | grep last-image | while read path; do
xfconf-query --channel xfce4-desktop --property $path --set <path>
done
Run Code Online (Sandbox Code Playgroud)
小智 0
尝试
gsettings set org.gnome.desktop.background picture-uri file:///your/picture/location.jpg
Run Code Online (Sandbox Code Playgroud)
是file://必需的。