3

Basically question is in title, but let's elaborate a bit:

I have KDE 4.3 from Arch Linux. And a script which periodically downloads new wallpaper. So I'd like to set it as current wallpaper from command line (actually from cron job script, but it's not relevant).

In KDE 3, it was trival with dcop. Now, dcop is gone, and I can't find a way to do it with dbus.

Anybody's got idea how to do it?

7 Answers 7

0

A trivial solution is to change your wallpaper type in Appearance Settings to slide show, point the directory to the one where your downloaded images can be found, and set an interval thereafter you want a new wallpaper.

1

Code:

*dcop kdesktop KBackgroundIface setWallpaper /home/crouse/Wallpapers/skull.jpg 5

Just don't use my file;)

1
  • 6
    As I mentioned - it's in kde4. dcop was in kde3.
    – user7385
    Nov 5, 2009 at 15:43
1

In general, dcop was replaced by dbus. Dbus, like dcop, is an inter-application communication system, but dbus is not specific to KDE. Each dbus-using program exports an interface of methods that can be called, and signals that can be watched (kind of like the interface of an object in OOP). Anyway, the particular program you want is most likely Plasma, the KDE4 desktop shell. To browse the dbus interface of a program, I suggest D-Feet, a graphical dbus explorer and debugger. Once you find the dbus method in Plasma's interface for changing the wallpaper (If there isn't one, file a bug. There should be.), you can use D-Feet to figure out how to call it, and even test calling it. Then you want to use the dbus-send program to call this dbus method from the command-line.

1
  • thanks for information. i know what dbus is. and there is no interface in it for changing wallpaper.
    – user7385
    Nov 14, 2009 at 10:34
0

...use Gnome instead :-)
or... xsetroot -solid cyan4

Is this a more accurate question:
DCOP disappeared between kde3 and kde4; what replaces all of its functionality?

2
  • 1. xsetroot doesn't work in kde 2. the question you're suggesting is in reality much more general, not accurate - dcop was replaced by dbus. but it just so happens that the "wallpaper change" functionality was missing.
    – user7385
    Nov 13, 2009 at 11:04
  • My point is, dcop used to handle wallpaper changes, dbus doesn't. So dbus clearly doesn't replace ALL of the functionality of dcop. I've not looked deeply at this; goodness knows what else has also been dropped with this transition. Sorry I didn't add another :-) after the xsetroot recommendation; it was likewise meant as a joke.
    – pbr
    Nov 19, 2009 at 15:28
0

just in case, have you ever tried wally? it is in the aur repo.

2
  • didn't try it, but yaourt wally says it's out of date.
    – user7385
    Nov 14, 2009 at 10:33
  • i think it is already latest version. try it out. and than the aur manteiners ;) Nov 18, 2009 at 22:25
0

Use the scripted image wallpaper plugin. Im afraid there is no way to set a wallpaper by a simple command without scripted image.

Tom

0

This command worked for me, in 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")}'

Just replace the path written at the end of this command with the correct path of your wallpaper image. Found here.

2

You must log in to answer this question.