如何使用Python在Ubuntu 14.04(带有Unity桌面环境)更改桌面壁纸

3
我尝试了这段代码:
import os
os.system("gsettings set org.gnome.desktop.background picture-uri file:///home/user/Pictures/wallpapers/X")

其中user是我的姓名,X是图片。

但是,它没有将背景更改为所给的图片,而是设置了默认的Ubuntu壁纸。

我做错了什么?

4个回答

7

首先,确保文件路径正确。在终端中执行以下命令:

ls /home/user/Pictures/wallpapers/X

文件是否已列出?如果是,请继续下一步。

确保您知道gsettings命令的位置。在终端中运行:

which gsettings

这将显示 gsettings 的完整路径。如果没有显示任何内容,则包含 gsettings 的目录不在您的 $PATH 变量中。

假设路径是 /usr/bin/gsettings。 请尝试在终端中执行此命令:

/usr/bin/gsettings set org.gnome.desktop.background picture-uri /home/user/Pictures/wallpapers/X

如果它正常工作,请将相同的字符串传递给os.system()

import os
os.system("/usr/bin/gsettings set org.gnome.desktop.background picture-uri /home/user/Pictures/wallpapers/X")

1
当我在Python中运行它时,输出是0,但没有任何反应。 - Ali Faki
你在命令行上试过了吗?如果在那里可以运行,那么在Python中也应该可以。 - Michael Laszlo
请查看我的修改后的答案,了解如何检查文件路径和gsettings路径。这个可行吗? - Michael Laszlo

1

试试这个:

import os
os.system("gsettings set org.gnome.desktop.background picture-uri file:/home/user/Pictures/wallpapers/picture_name")

1

Try this one:

import subprocess
subprocess.Popen("DISPLAY=:0 GSETTINGS_BACKEND=dconf /usr/bin/gsettings set org.gnome.desktop.background picture-uri file://{0}".format(picture_path), shell=True)

即使您在cron中使用它,它也可以正常工作。我编写了一个脚本,下载Bing图片并将其设置为壁纸。

您还可以尝试以下命令:

feh --bg-fill picture_path
hsetroot  -extend  picture_path

1

设置特定壁纸的命令是:

gsettings set org.gnome.desktop.background picture-uri 'file:///home/user/Pictures/wallpapers/apple.jpg'

查看当前壁纸的命令为(get):

gsettings get org.gnome.desktop.background picture-uri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接