Answers:
在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不是该属性。
cron
改为使用运行Shell脚本呢?
--property /backdrop/screen0/monitorLVDS1/workspace0/last-image
绝招。
对于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-)
就我而言,我想每天旋转一次墙纸(选定文件夹中的随机图像),但是我不定期地打开PC,因此我每半小时运行一次cron脚本来解决此问题,但只生效一次一天。
crontab中的条目(通过crontab -e
命令添加):
0,30 * * * * /home/lucifer/scripts/rotate-wallpaper.sh
rotation-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
注意:-如果使用非英语系统区域设置,则该属性可以使用其他名称。找出属性名称,打开终端窗口并运行以下命令的最佳方法:
xfconf-query -c xfce4-desktop -m
这将打开对xfce4-desktop属性的监视。现在,手动更改背景。您应该在终端窗口中看到受此更改影响的属性名称。如果此属性名称与/ backdrop / screen0 / monitorDisplayPort-1 / workspace0 / last-image不同,请使用此属性名称
不要使用cron。而是使用启动脚本。尽管您可以使用cron,但是在这种情况下我不喜欢它,因为它是特定于用户的。
这样做:
sudo vi /etc/rc.local
在文件末尾添加以下内容
sudo -u YOURUSERNAME -g $( id -g YOURUSERNAME ) xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set /usr/share/backgrounds/xfce/xfce-blue.jpg
并确保将您的YOURUSERNAME替换为当前用户。并将/usr/share/backgrounds/xfce/xfce-blue.jpg替换为新背景图像的真实路径,并确保您的用户有权读取该图像
在bash脚本中设置xfce背景颜色:
d=0; r=$d; g=$d; b=$d; \
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace0/color1 \
-s $r -s $g -s $b -s 65535
颜色:
black: d=0;
white: d=65535;
red: r=65535; g=0; b=0;
等等
rgb是16位十进制RGB组件。
65535 = 255 * 257。255 = 0xFF(十六进制)。
将8位十六进制颜色代码转换为16位十进制RGB分量:
x='C31717' # dark red
r=$((16#${x:0:2} * 257))
g=$((16#${x:2:2} * 257))
b=$((16#${x:4:2} * 257))
如果背景颜色不变,请将图像样式设置为无
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace0/image-style \
-s 0
....并将填充样式设置为实体
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace0/color-style \
-s 0
为每个工作空间设置不同的颜色:
xfconf-query -c xfce4-desktop \
-p /backdrop/single-workspace-mode \
-s false
i=1; # workspace id
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace$i/image-style \
-s 0
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace$i/color-style \
-s 0
x=0; r=$x; g=$x; b=$x; \
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace$i/color1 \
-s $r -s $g -s $b -s 65535
uff地说^^