从终端更改桌面墙纸


11

我在Cinnamon 1.6上运行Mint 13。我希望我的桌面墙纸可以根据一天中的时间自动更改。因此,想到的第一件事就是建立一个cron工作来为我做。问题是,我不知道如何从脚本/终端更改墙纸。

我想知道的是:
1)如何更改终端的背景?
2)是否已经有内置的方法?


1
你的DE是多少?
雏菊

@ warl0ck-肉桂1.6
汇总

Answers:


19

这是对问题的正确答案。其他什么都只是黑客

 gsettings set org.cinnamon.desktop.background picture-uri  "file:///filename"

4
没有任何解释,这几乎是无用的。
vonbrand 2014年

8
这是查询的正确答案。为什么需要解释?这是在Cinnamon桌面上更改墙纸的正确方法。
Ramblin Man 2014年

1
..和唯一可行的答案。+1
total1166877'5

10

使用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}

2

对于x窗口系统,您想更改根窗口的背景。用于更改此窗口设置的“内置”工具为xsetroot。不幸的是,它有点过时了,例如,它仅支持为背景图像选择位图。

我喜欢的工具hsetrootxsetroot。两种工具都必须从命令行使用。

此外,我可以想象您可以通过x资源数据库调整根窗口的设置,但目前我找不到相关信息。


hsetroot似乎正是我想要的,但它并没有设置我的桌面背景;相反,当我将鼠标悬停在热角上时,它将设置工作区选择的背景。有任何想法吗?
aggregate116​​6877

2

尝试这个:

xsetbg /path/to/wallpaper.jpg

谢谢,但是它不会影响墙纸。但是,它确实会更改注销时显示的屏幕。我开始认为Cinnamon对x11设置的处理方式与其他环境不同。
aggregate116​​6877

@ user1166877:Wierd,对我有用。我已经将Metacity和Openbox用作窗口管理器,但是我认为这是“之下”的。准确地检查一下我使用的内容是否可以提供有关不同之处的线索。
伊曼纽尔·伯格

2

在Cinnamon 1.4上的Linuxmint 13上为我工作。

  • cinnamon-settings desktop #在终端中>取消选中“让文件管理器处理桌面”
  • 用feh更改壁纸
    feh --bg-fill〜/ Images / my_wallpaper.png

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.