我正在运行 Mint 13 和 Cinnamon 1.6。我希望我的桌面壁纸能够根据一天中的时间自动更改。因此,我首先想到的是设置一个 cron 作业来为我完成这件事。问题是,我不知道如何从脚本/终端更改壁纸。
我想知道的是:
1)如何从终端更改背景?
2)是否已经有内置的方法可以做到这一点?
答案1
这是问题的正确答案。其他任何东西都只是一个黑客
gsettings set org.cinnamon.desktop.background picture-uri "file:///filename"
答案2
使用 Linux Mint 16(不确定其他版本),您可以gsettings
同时使用得到有关您当前壁纸的信息以及放它。
虽然man gsettings
有点单薄,但 TAB 补全在以下命令的大多数步骤中都可以工作。
获取信息:
gsettings get org.cinnamon.desktop.background picture-uri
gsettings get org.cinnamon.desktop.background picture-opacity
gsettings get org.cinnamon.desktop.background picture-options
要更改任何选项,只需将“get”更改为“set”并将新值添加到末尾即可。
这是一个快速脚本,它将循环显示已知的壁纸列表:
#!/bin/sh
#
# Set the wallpaper from a list
#
# The list, all can be found in $BASE
BASE="file:///home/tigger/.wallpapers/"
LIST="shot1.png another.png just_no_space_in_name.png keep_adding.png"
# The current wallpaper
current=`gsettings get org.cinnamon.desktop.background picture-uri`
opacity=`gsettings get org.cinnamon.desktop.background picture-opacity`
options=`gsettings get org.cinnamon.desktop.background picture-options`
# loop over the list until we find a match
matched=0
new=""
for wp in $LIST
do
if [ $matched -eq 1 ]
then
new="${BASE}${wp}"
break
elif [ "'${BASE}${wp}'" = "${current}" ]
then
matched=1
fi
done
# if "$new" is blank, then we show the first shot
if [ "$new" = "" ]
then
new=${BASE}${LIST%% *}
fi
# set the wallpaper
gsettings set org.cinnamon.desktop.background picture-uri \'${new}\'
gsettings set org.cinnamon.desktop.background picture-opacity ${opacity}
gsettings set org.cinnamon.desktop.background picture-options ${options}
答案3
就 x 窗口系统而言,您想要更改根窗口的背景。用于更改此窗口设置的“内置”工具是xsetroot
。不幸的是它有点过时了,例如它只支持为背景图像选择位图。
hsetroot
相比之下,我更喜欢这个工具xsetroot
。这两个工具都必须从命令行使用。
此外,我可以想象您可以通过x资源数据库调整根窗口的设置,但我现在找不到相关信息。
答案4
尝试这个:
xsetbg /path/to/wallpaper.jpg