(Xubuntu)如何使用命令行设置壁纸?

(Xubuntu)如何使用命令行设置壁纸?

我在谷歌上搜索了很多次,但仍未能找到解决我的问题的方法。

我是一名教师,在一些学生电脑上使用 Xubuntu。我已经把所有东西都锁定得很好了,但我不知道如何限制用户更改壁纸,而不必将整个机器置于 Kiosk 模式。我不在乎他们是否在工作期间更改壁纸,但我想创建一个 crontab,在重启时重置回原始 .png。

我希望有一个简单的 cron 条目,但如果需要的话,我愿意轻松进入 shell 脚本的世界。

有任何想法吗?

答案1

在 Xfce 领域,这是

xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set /usr/share/backgrounds/xfce/xfce-blue.jpg

(当然,替换您想要的文件路径。)

xfconf-query --channel xfce4-desktop --list

列出所有相关属性,以防 screen0/monitor0 不是其中之一。

答案2

对于 Xubuntu 14.04 中的 xfce4,使用属性/背景/screen0/monitorDisplayPort-1/workspace0/最后图像代替/backdrop/screen0/monitor0/图像路径

您还需要像这样设置 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-)

就我而言,我想每天旋转一次壁纸(从选定的文件夹中随机选择图像),但我不定期打开我的电脑,所以我通过每半小时从 cron 运行一次脚本来解决这个问题,但每天只生效一次。

crontab 中的条目(通过命令添加crontab -e):

0,30 * * * * /home/lucifer/scripts/rotate-wallpaper.sh

旋转壁纸.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

注意:-如果您使用非英语系统语言环境,则属性可以具有不同的名称。找出属性名称的最佳方法是打开终端窗口并运行以下命令:

xfconf-query -c xfce4-desktop -m

这将打开对 xfce4-desktop 属性的监控。现在手动更改背景。您应该在终端窗口中看到受此更改影响的属性名称。如果属性名称与以下不同,请使用此属性名称/背景/screen0/monitorDisplayPort-1/workspace0/最后图像

答案3

设置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

答案4

尝试

gsettings set org.gnome.desktop.background picture-uri file:///your/picture/location.jpg

是必填项file://

相关内容