Как я могу использовать DBus для установки разных обоев на каждый монитор в KDE Plasma 5.13.2 - PullRequest
0 голосов
/ 30 июня 2018

У меня есть несколько мониторов, на которых я хочу установить разные обои, и лучший способ, который я могу выяснить, это использовать dbus.

Я обнаружил несколько фрагментов в сети , которые почти выполняют то, что я хочу, однако это накладывает одинаковые обои на все мои мониторы. Когда я изменяю его, как показано ниже, строка newkdecommand обновляется {monitor_loop} соответствующим образом, и индекс находится в диапазоне (он выдает ошибку, если я установил его вне числа мониторов, которые у меня есть), но обои рабочего стола не обновляются (они остаются такими же, как и раньше).

Согласно документации десктопы () должны возвращать массив всех существующих десктопов. Я просто не могу ссылаться на них так, чтобы я мог установить разные обои для каждого из них. Ниже приведен код, который у меня сейчас есть:

kdemonitorloop = 0

for monitor in monitors:
    newkdecommand = """
    qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript '
        var allDesktops = desktops();
        d = allDesktops[{monitor_loop}];
        d.wallpaperPlugin = "org.kde.image";
        d.currentConfigGroup = Array("Wallpaper",
                                 "org.kde.image",
                                 "General");
        d.writeConfig("Image", "file:///{save_location}")
    '
    """
    saveloc = "/home/me/Kbgswitcher/testimg_" + str(kdemonitorloop) + ".png"
    os.system(newkdecommand.format(save_location=saveloc, monitor_loop=str(kdemonitorloop)))
    kdemonitorloop += 1

Обновление: при дальнейшем расследовании выясняется, что рабочие столы используют непоследовательные номера. В моей системе локализации составляют 1, 11 и 12 для среднего, левого и правого экранов соответственно. Интересно, так ли это для других или просто выбирает для них случайные числа?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...