如何自定义桌面壁纸幻灯片?

如何自定义桌面壁纸幻灯片?

我花了一些时间尝试了各种方法,但都不起作用。以下是我迄今为止尝试过的方法(手动更改幻灯片):

  1. 创建一个新文件夹/usr/share/backgrounds/mywallpapers并将我的添加到background-1.xml其中。
  2. 将一堆壁纸复制到 /usr/share/backgrounds/
  3. 复制/usr/share/backgrounds/Contest/background-1.xml/usr/share/backgrounds/

我注销并重新登录,但仍然没有变化外貌应用程序。

我听说过瓦尔奇但我不想让某些应用一直在后台运行。我甚至不确定 Wallch 是否适用于 Gnome 3。我也尝试过gnome-3-wp(Gnome 3 壁纸幻灯片应用),但它似乎无法在 Ubuntu 11.10 Oneiric 上运行。

有没有人有办法解决吗?

答案1

我想我迟到了但是......

我创建了一个 xml 背景(带有完整路径描述),并将其保存在 /usr/share/backgrounds/my-background.xml

然后我编辑了 /usr/share/gnome-background-properties/ubuntu-wallpapers.xml 添加

<wallpaper deleted="false">
 <name>My background</name>
 <filename>/usr/share/backgrounds/my-background.xml</filename>
 <options>zoom</options>
</wallpaper> 

只需保存文件,新的幻灯片壁纸就会显示在外观窗口中

希望对你有用:D

答案2

另外,在编辑时/usr/share/gnome-background-properties/ubuntu-wallpapers.xml,省略选项标签将允许您选择在设置中的外观 GUI 中进行平铺、缩放、居中、缩放、填充或跨度。

使用上面 Locutus 的例子:

<wallpaper deleted="false">
 <name>My background</name>
 <filename>/usr/share/backgrounds/my-background.xml</filename>
</wallpaper>

答案3

我使用我编写的以下脚本,并使用 gnome“启动应用程序”启动器启动它。为了提高系统性能,当 XMBC 或 VLC 正在运行或系统负载超过指定阈值时,脚本会暂停幻灯片放映。

将脚本保存到文件并chmod +x使其自行执行。

wallpaper-slideshow.sh

#!/usr/bin/python

import os
import random
import time
import re
import subprocess

# directory where Pictures are stored
pictureDirectory = os.getenv("HOME") + "/.xbmc/userdata/Thumbnails/Video/Fanart"

# time in seconds to wait between transitions 
duration=60

# maximum system load before the slideshow is suspended
maxSysLoad=0.5

def getPictureList():
    result = []
    for root, sub, files in os.walk(pictureDirectory): 
        for f in files:
            if f.endswith(('.jpeg','.jpg','png','.tbn')):
                result.append(os.path.join(root, f))               
    return result


def getSystemLoad():
    uptimeString = subprocess.check_output(["uptime"])
    return float(re.match(r".*load average: ([^,]+),.*", uptimeString).group(1))

def isProcRunning(name):
    with open(os.devnull, "w") as devnull:
        return subprocess.call(["pidof", name], stdout=devnull) == 0

def setDesktopBackgroundPicture(filename):
    return subprocess.call(["gsettings", "set", 
        "org.gnome.desktop.background", 
        "picture-uri", '"file://' + filename + '"'])

def main():
    time.sleep(10) # startup delay    
    pictureList = getPictureList() 
    while 1:       
        if getSystemLoad() > maxSysLoad or isProcRunning("vlc") or isProcRunning("xbmc.bin") :
            print "slide show suspended while VLC or XMBC is running or system load is high"
        else:
            picture = random.choice(pictureList)
            print picture
            setDesktopBackgroundPicture(picture)
        
        time.sleep(duration)
        
if __name__ == "__main__":
    main()        

答案4

这里的关键是将 Gnome 指向 XML 幻灯片文件的位置。出于某种原因,此选项在 中不可用dconf-editor,但您可以使用gsettings来获取和设置它。(参考:维基百科):

读取当前设置:

GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri

要设置新幻灯片:

GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri 'file:///home/username/path/to/your/slideshow.xml'

也许您之前创建过 XML 幻灯片,或者您可以使用这个脚本

我可以推荐克雷布斯,遗憾的是它无法通过 PPA 在 Ubuntu 11.10 上使用,但你可以下载并安装 Natty 软件包(这有点冒险),或者使用源码包- 一旦解压,您不需要安装任何东西,只需运行脚本crebs/bin/crebs(请注意,Crebs 可能有一些依赖项,从终端运行脚本来找出答案)。

一旦您创建并保存了您喜欢的 Crebs 幻灯片,生成的 XML 就会保存到~/.crebs/目录中 - 如上所述,只需运行:

GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri "file://$HOME/.crebs/MySuperCoolSlideshow.xml"

(记得更改文件名)幻灯片将立即应用。

相关内容