从终端更改桌面壁纸

从终端更改桌面壁纸

我正在运行 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

相关内容