DCOP
From Free net encyclopedia
DCOP, which stands for Desktop COmmunication Protocol, is a light-weight interprocess and software componentry communication system. The main point of this system is to allow applications to interoperate, and to share complex tasks. Essentially, DCOP is a 'remote control' system, which allows an application or a script to enlist the help of other applications.
The use of DCOP provides extensive new capabilities, without requiring entirely new applications to be written, as might otherwise be the case. KDE applications and the KDE libraries make heavy use of DCOP and most of the KDE applications can be controlled by scripts via the DCOP mechanism.
In modern KDE systems, every KDE application supports a basic set of DCOP interfaces, even if the programmer of the application did not explicitly code in such support. For instance every application automatically supports the "quit" command, which when called closes the application.
There is a command line tool called "dcop" (note the lower-case letters) which can be used for communication with the applications from the shell. "kdcop" is a GUI tool to explore the interfaces of an application.
For example, the KDE desktop provides a way to display different wallpapers at timed intervals. However, it does not directly provide an interface for changing to the next desktop, if the current one does not fit your mood. Neither does it provide a way of permanently removing desktop wallpapers that you decide you do not like, after seeing them as actual wallpaper on your screen.
These features can be added in a few moments, however, using dcop. The command:
dcop kdesktop KBackgroundIface
will switch to the next wallpaper from a shell, and the command:
dcop kdesktop KBackgroundIface currentWallpaper 1
will get the filename of the wallpaper on desktop 1 (KDE, and most X environments, support multiple "virtual" desktops for organizing work). By combining the two in a short shell script, you can switch to the next wallpaper, then delete the previous wallpaper, like so:
OLDWALLPAPER=`dcop kdesktop KBackgroundIface currentWallpaper 1` dcop kdesktop KBackgroundIface changeWallpaper rm $OLDWALLPAPER
As you can see, DCOP makes it possible to add new features that were never envisaged when an application was first created.
D-BUS, a message bus system standardized by freedesktop.org, was heavily influenced by the DCOP system.