MINI HOWTO DCOP

INDICE:
1- Que es el dcop?
2- Que es el kdecop?
3- Cual usar?
4- Como utilizarlo? (Ejemplos)
5- Despedida


1- Que es el dcop?
--- Fragmento sacado de la documentacion de kde ---

Another evolution on UNIX-like scripting is the DCOP protocol which was devised for communication between KDE applications to overcome the limitations of CORBA.
DCOP stands for Desktop Communication Protocol and is implemented as a simple IPC/RPC mechanism built to operate over sockets. In effect this provides facilities similar to the traditional UNIX pipe mechanism.
Traditional shell scripting is based on fairly small tool programs which were designed to work on a strictly textual basis. DCOP allows elaborate graphical programs to communicate with each other in a quite similar way. This enables e.g. a KDE program to send messages to another KDE program, or receive data from it for its own purposes.
There are drawbacks, however. To use DCOP a program must be designed to contain a special DCOP interface. And the DCOP communication process runs somewhat slowly (although a lot faster than CORBA). But it returns much of the power and flexibility of UNIX scripting to high-level programs which are based on a graphical user interface.

--- Fragmento sacado de la documentacion de kde ---

2- Que es el kdecop?
El kdecop es un cliente gráfico, digamos una GUI (Interfaz Gráfica de Usuario) para el uso de dcop

3- Cual usar?
Eso es una cuestión de gusto personal, en mi caso, prefiero el uso de la terminal.

4- Como utilizarlo? (Ejemplos)
Bueno, veamos como podemos utilizar el dcop y algunos posibles ejemplos que pueden llegar a sernos útiles.
Abrimos una terminal dentro de kde, apretamos ALT+F2 y escribimos rxvt o konsole (o la que prefieran), una vez abierta la terminal escribimos: dcop esto nos va a mostrar algo así dependiendo de como tengamos configurado nuestro kde y las aplicaciones que estemos ejecutando en ese momento.

[fernando@linux fernando]$ dcop
kwin
kicker
konqueror-2271
kate
kded
konqueror-2258
knotify
kooldock
mediacontrol
konsole-2306
kio_uiserver
korgac
klauncher
knotes
kdesktop
ksmserver
kaccess
kgpg

Esto es una lista de las aplicaciones, pero veamos como puede ser til esta lista
en caso de que queramos ejecutar por ejemplo, el men de ejecutar que hoy conseguimos apretando
ALT+F2. En la lista de aplicaciones vemos una que dice kdesktop, bien, ahora veamos que hay dentro
de kdesktop, escribimos: dcop kdesktop
deberiamos tener algo mas o menos:

[fernando@linux fernando]$ dcop kdesktop
qt
KBackgroundIface
KBookmarkManager-/home/fernando/.kde/share/apps/konqueror/bookmarks.xml
KBookmarkNotifier
KDesktopIface (default)
KDirNotify-1
KIO::Scheduler
KScreensaverIface
KShortURIFilterIface
KURIIKWSFilterIface
KURISearchFilterIface
KonqUndoManager
LocalDomainURIFilterIface
kdesktop
ksycoca

Bien vemos que tenemos uno que entre parentesis dice default, entramos ahí de la misma manera que lo hicimos anteriormente:
dcop kdesktop KDesktopIface
(respeten mayusculas y minusculas, como para todo en Unix/Linux)
presten atención que no se pone el parentesis, deberiamos tener algo así

[fernando@linux fernando]$ dcop kdesktop KDesktopIface
QCStringList interfaces()
QCStringList functions()
void rearrangeIcons()
void rearrangeIcons(bool)
void lineupIcons()
void selectAll()
void unselectAll()
void refreshIcons()
QStringList selectedURLs()
void configure()
void popupExecuteCommand()
DCOPRef background()
DCOPRef screenSaver()
void refresh()
void logout()
void logoutWithoutConfirmation()
bool isVRoot()
void setVRoot(bool enable)
void clearCommandHistory()
bool isIconsEnabled()
void setIconsEnabled(bool enable)

Ok, ahora vemos que tenemos una lista de alguno posibles comando para ejecutar, veremos algunos,
escribimos:

[fernando@linux fernando]$ dcop kdesktop KDesktopIface popupExecuteCommand

YES!!!, ahora si!!!, encontramos como ejecutar esa ventana, que nos hubiera
venido bien en mas de un script (a mi por lo menos ;=)).Observen que la palabra popupExecuteCommand nos aparece como "void popupExecuteCommand()", eviten poner la palabra void y lo parentesis porque sino no va a funcionar ;=), lo mismo para todos los comandos
Otro ejemplo:

[fernando@linux fernando]$ dcop kdesktop KDesktopIface logout

Ahí estaba la otra maldita endemoniada ventana...aunque otro comando
mas interesante es el "void logoutWithoutConfirmation()" , jeje..., ese no lo ejecuten a menos que quieran salir de kde sin confirmar.
Otro ejemplo mas y ya!!!

[fernando@linux fernando]$ dcop kwin KWinInterface nextDesktop

En caso de que tengan 2 o mas desktop dentro de kde, con esto estariamos pasando al siguiente escritorio.

5- Despedida
Espero les sea útil y puedan encontrarle algun provecho o aunque si bien no sea por el simple gusto de aprender. Cualquier cosa, que quieran agregar o corregir, será bien recibida :=).

Saludos
Fernando Ferrari
fernandorferrari@yahoo.com.ar