Как изменить обои из командной строки в KDE 4.3?
В основном вопрос в заголовке, но давайте уточним немного:
У меня KDE 4.3 от Arch Linux. И скрипт, который периодически скачивает новые обои. Поэтому я хотел бы установить его в качестве текущих обоев из командной строки (на самом деле из скрипта работы cron, но это не актуально).
В KDE 3 это было триально с dcop. Теперь dcop ушел, и я не могу найти способ сделать это с dbus.
У кого-нибудь есть идеи, как это сделать?
7 ответов
Тривиальное решение состоит в том, чтобы изменить тип обоев в настройках "Внешний вид" на слайд-шоу, указать каталог, в котором можно найти загруженные изображения, и установить интервал, после которого вы хотите установить новые обои.
Код:
*dcop kdesktop KBackgroundIface setWallpaper /home/crouse/Wallpapers/skull.jpg 5
Только не используйте мой файл;)
В общем, dcop был заменен на dbus. Dbus, как и dcop, является системой связи между приложениями, но dbus не является специфической для KDE. Каждая программа, использующая dbus, экспортирует интерфейс методов, которые можно вызывать, и сигналы, которые можно наблюдать (что-то вроде интерфейса объекта в ООП). В любом случае, конкретная программа, которую вы хотите - это, скорее всего, Plasma, оболочка рабочего стола KDE4. Чтобы просмотреть интерфейс программы dbus, я предлагаю D-Feet, графический проводник и отладчик dbus. Как только вы найдете метод dbus в интерфейсе Plasma для смены обоев (если его нет, сообщите об ошибке. Должно быть.), Вы можете использовать D-Feet, чтобы выяснить, как вызвать его, и даже протестировать его вызов., Затем вы хотите использовать dbus-send
Программа для вызова этого метода dbus из командной строки.
На всякий случай, вы когда-нибудь пробовали Уолли? это в репо.
Используйте подключенный плагин для картинок. Боюсь, что нет способа установить обои простой командой без скриптового изображения.
Том
... вместо этого используйте Gnome:-)
или... xsetroot -solid cyan4
Это более точный вопрос:
DCOP исчез между kde3 и kde4; что заменяет весь его функционал?
Эта команда работала у меня в Plasma Desktop v5,
qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript 'var allDesktops = desktops();print (allDesktops);for (i=0;i<allDesktops.length;i++) {d = allDesktops[i];d.wallpaperPlugin = "org.kde.image";d.currentConfigGroup = Array("Wallpaper", "org.kde.image", "General");d.writeConfig("Image", "file:///home/me/image.png")}'
Просто замените путь, указанный в конце этой команды, на правильный путь к изображению обоев. Нашел здесь .