Не удалось установить фоновое изображение с помощью Python (2.7.3), удара и gnome3

#!/usr/bin/env python
import os
bashCommand = "gsettings set org.gnome.desktop.background picture-uri file:///home/malon/autowallpaperchanger/" + pic_name
print bashCommand
os.system(bashCommand)

Результат печати:

gsettings set org.gnome.desktop.background picture-uri file:///home/malon/autowallpaperchanger/wallpaper-1252048.jpg

Копирование и вставка результата печати в терминал вносят изменение успешно, таким образом, команда корректна, но os.system не обрабатывает запрос правильно по некоторым причинам. В полном сценарии (отправленный ниже), я использую os.system по другой причине сразу прежде (wget) и это хорошо работает.

Полный сценарий здесь.

4
задан 28 August 2012 в 05:42

2 ответа

Отбросьте весь os.system и subprocess материал. Просто используйте API Gio/gsettings, как это:

from gi.repository import Gio

settings = Gio.Settings.new("org.gnome.desktop.background")
settings.set_string("picture-uri", "file:///path/to/image.png")
5
ответ дан 21 October 2019 в 12:14

Это работает:

import shlex, subprocess, os, sys

def change_wp(fname, folder_stem='Pictures'):
    home = os.environ['HOME']
    uri = os.path.join(home, folder_stem)
    uri = os.path.join(uri, fname)
    set_wp_command = "gsettings set org.gnome.desktop.background picture-uri file://" + uri
    args = shlex.split(set_wp_command)
    try:
        my_proc = subprocess.Popen(args)
        my_proc.wait()
    except:
        sys.exit(1)

if __name__ == '__main__':
    change_wp('mywallpaper.png')
    print("Wallpaper changed...")

Это ожидает mywallpaper.png существующий в ~ / Изображения.

3
ответ дан 21 October 2019 в 12:14

Другие вопросы по тегам:

Похожие вопросы: