Beispiele mit DCOP
+f#DCOP#f+ heisst +f#Desktop Communication Protocol#f+.
Jede KDE-Anwendung stellt Teile ihrer Funktionalität (bei amaroK etwa die Abfrage des aktuell gespielten Titels) zum DCOP-Zugriff bereit.
Welche das genau sind, lässt sich mittels der Anwendungen dcop (Kommandozeile) oder kdcop (grafische Oberfläche) ermitteln:
Wenn du KDE nutzt, kannst du dies ausprobieren:
kdcop
Hier nun die Beispiele die man auch in Scripts verwenden kann:
Ansehen von aktiven Progammen:
+tf=cyan#dcop#tf+
Auswählen eines Programmes, zb Konsole:
+tf=cyan#dcop konsole#tf+
+tf=cyan#dcop konsole-5081#tf+
+tf=cyan#dcop konsole-`pidof konsole`#tf+
Auswählen der Hauptkonsole:
+tf=cyan#dcop konsole-`pidof konsole` konsole-mainwindow#1#tf+
Auswählen einer Untergruppe:
+tf=cyan#dcop konsole-`pidof konsole` session-9#tf+
Hinzufügen eines neuen tabs (in KDE heisst dies neue Session, ein String wird hier zurückgegeben, welches den Namen der Session kennzeichnet):
+tf=cyan#dcop konsole-`pidof konsole` konsole newSession#tf+
+tf=cyan#dcop dcop konsole-3782 konsole nextSession#tf+
+tf=cyan#dkonsolepid konsole sendAllSessions ". /masterrc"#tf+
Ändern des Titels von einer Konsolen-Untergruppe (also Titel eines Tab):
+tf=cyan#dcop konsole-`pidof konsole` session-2 renameSession "TEST"#tf+
+tf=cyan#dcop konsole-`pidof konsole` session-5 renameSession "test"#tf+
+tf=cyan#dcop konsole-`pidof konsole` session-9 renameSession "h"#tf+
Herausfinden der aktuellen Konsole Session (geht auch mittels der Environment Variablen $KONSOLE_DCOP_SESSION):
+tf=cyan#echo $KONSOLE_DCOP_SESSION#tf+
+tf=cyan#echo $KONSOLE_DCOP#tf+
Das erste beispiel würde zb das hier anzeigen:
DCOPRef(konsole-31880,session-2)
+tf=cyandcop konsole-`pidof konsole` konsole currentSession#tf+
Herausfinden des aktuellen KonsoleTab Titel:
+tf=cyandcop konsole-`pidof konsole` session-2 sessionName#tf+
+tf=cyandcop konsole-31880 session-5 sessionName#tf+
Kommando an ein Tab (Session) schicken:
+tf=cyandcop konsole-`pidof konsole` session-4 sendSession "cd /Users"#tf+
+tf=cyandcop konsole-`pidof konsole` session-4 sendSession "cd /Users;pwd"#tf+
+tf=cyandcop konsole-31880 session-4 sendSession "startapa"#tf+
Erhöhen der Lautstärke von kmix:
+tf=cyandcop kmix Mixer0 increaseVolume 1#tf+
Lautstärke auf 50% setzen:
+tf=cyandcop kmix Mixer0 setMasterVolume 50#tf+
Lautstärke des 2. Mixers auf 10% setzen, aber nicht das Master Volume:
+tf=cyandcop kmix Mixer1 setVolume 0 10#tf+
Verstecken des kmix GUI Window mittels hide:
+tf=cyandcop kmix kmix-mainwindow#1 hide#tf+
Anzeigen des kmix-mainwindow mittels show:
dcop kmix kmix-mainwindow#1 show
Resizen von kmix zum minimal-punkt:
dcop kmix kmix-mainwindow#1 resize 1 1
Anzeigen des Namens des ersten Mixer:
dcop kmix Mixer0 mixerName
Ausloggen aus KDE:
dcop kdesktop default logout
Ausloggen ohne Confirmation Dialog:
dcop ksmserver default logout 0 -1 -1
Maximieren der Hauptkonsole:
dcop konsole-7266 konsole-mainwindow#1 maximize
Ausloggen aller User egal welche Session:
dcop --all-sessions --user $USER ksmserver default logout 0 -1 -1
Name des Tabs in Konsole abfragen (mittels ENV Variable):
echo $KONSOLE_DCOP_SESSION
Beenden einer kedit Instanz:
dcop kedit-5996 MainApplication-Interface quit
Klipper's Clipboard History löschen:
dcop klipper klipper clearClipboardHistory
KDE als Nicht-SuperUser-Benutzer herunterfahren
dcop ksmserver ksmserver logout 0 2 0
In Knotes eine neue Note hinzufügen:
dcop knotes KNotesIface newNote "A note" "Stuff I want to keep track of"
Auswählen des kde Desktop mittels DCOP:
dcop kdesktop
Setzen eines neuen Hintergrund:
dcop kdesktop KBackgroundIface setWallpaper $IMG/WALLPAPERS/ANIME_LADY_AND_KNIFE.png 2
(Die int Werte am Schluss sind Modes, die folgendes bedeuten:
1 zentriert, 2 gekachelt (von oben nach unten), 3 zentrierte kacheln (wiederholt noch mehr als 2), 4 zentriert und skaliere Fokussierung (korrektes Seitenverhältnis), 5 gekachelt (mit korrektem Seitenverhältnis, ist sehr elegant), 6 skaliert, 7 zentriert mit automatischer Anpassung, 8 skaliert und beschnitten sein. 9 scheint das Bild entweder transparent oder auszuschalten. )
Ändern der HintergrundFarbe (das 2. Argument steht für Primär und Sekundärfarbe: ist er false, dann gibt es nur eine durchgehende Farbe. Ist er true, gibt es einen Gradienten.)
dcop kdesktop KBackgroundIface setColor '#ffffff' false
dcop kdesktop KBackgroundIface setColor darkblue false # Trivial Namen gehen auch
dcop kdesktop KBackgroundIface setColor '#330033' false # dunkler hintergrund
dcop kdesktop KBackgroundIface setColor '#000000' false # schwarzer hintergrund
Den Nutzer benachrichtigen mittels kio_uiserver und messageBox (statt 4 kann man Werte von 0-4 verwenden)
dcop kio_uiserver UIServer messageBox 0 4 "Text" "Title" Button1 Button2
Wechseln zu einem anderen Desktop, zb Nr4 (switch to another desktop):
dcop kwin default setCurrentDesktop 4
Starte konqueror mit einem bestimmten ULR-Fenster:
dcop konqueror-17776 default opEBRowserWindow http://www.kde.org/
Neue Mails kann man abfragen an kmail:
dcop kmail default checkMail
Eine Email kann man auch schicken und zwar so:
# Zuerst die langweilige Doku dazu int openComposer(QString to,QString cc,QString bcc,QString subject, \ QString body,int hidden,KURL messageFile)
dcop kmail default openComposer heroes@kde.org losers@redmont.com "" "KDE rocks" \ "Thanks, you are my heroes!" 0 ""
Melde einen neuen Job an beim UIServer von kio (gibt seine ID zurück:
dcop kio_uiserver UIServer newJob 0 0
Schick diesem job eine messageBox
dcop kio_uiserver UIServer messageBox 12 5 "
+ Verweise
+ Textformate
+ Smilies
Fügt entweder links und rechts vom blinkenden Zeiger,
oder links und rechts von markiertem Text ein.
JavaScript muss aktiviert sein.