KDE gør det selv: Byg dine egne værktøjer |
forrige | Den dovne administrator | næste |
Desktop COmmunication Protocol, DCOP, er en letvægts mekanisme for kommunikation mellem processer. DCOP tillader at brugeren kommunikerer med programmer som for øjeblikket kører. KDE sørger for to programmer til at udnytte DCOP: dcop, et kommandolinjeprogram, og kdcop, et program med grafisk grænseflade.
Nogle bemærkninger om at bruge dcop:
dcop [vælgare] [program [objekt [funktion [arg1] [arg2] ... ] ] ]
Programmer som kan åbne mere end et vindue samtidigt gang listes som <program>-processid.
Alle flag er versalfølsomme. setFullScreen og setfullscreen er to forskellige funktioner.
Tegnet * fra regulære udtryk kan bruges i program- og objektargumenter.
%
dcop
konqueror-16006 konsole-8954kon*
Nogle eksempler på kommandoer og deres uddata er nedenfor:
%
dcop
konsole-8954konsole*
En Konsole kører med proces-id 8954.
%
dcop
KBookmarkManager-.../share/apps/kfile/bookmarks.xml KBookmarkManager-.../share/apps/konqueror/bookmarks.xml KBookmarkNotifier KDebug MainApplication-Interface konsole (default) konsole-mainwindow#1 ksycoca session-1 session-2 session-3 session-4konsole-8954
Her ser du at fire sessioner kører.
%
dcop
QCStringList interfaces() QCStringList functions() int sessionCount() QString currentSession() QString newSession() QString newSession(QString type) QString sessionId(int position) void activateSession(QString sessionId) void nextSession() void prevSession() void moveSessionLeft() void moveSessionRight() bool fullScreen() void setFullScreen(bool on) ASYNC reparseConfiguration()konsole-8954
konsole
Her er valgmulighederne for Konsoles hovedprogram.
%
dcop
QCStringList interfaces() QCStringList functions() bool closeSession() bool sendSignal(int signal) void clearHistory() void renameSession(QString name) QString sessionName() int sessionPID() QString schema() void setSchema(QString schema) QString encoding() void setEncoding(QString encoding) QString keytab() void setKeytab(QString keyboard) QSize size() void setSize(QSize size)konsole-8954
session-1
Her er valgmulighederne for den første session, session-1.
%
dcop
konsole-8954
konsole
setFullScreen
true
Dette stiller Konsole til fuldskærmstilstand.
Når der er mere end et program eller objekt, hvilket skal man bruge? Findes en reference?
%
echo
DCOPRef(konsole-7547,konsole)$KONSOLE_DCOP
%
dcop
session-6$KONSOLE_DCOP
newSession
%
dcopstart
konsole-9058 #!/bin/sh konsole=$(dcopstart konsole-script) session=$(dcop $konsole konsole currentSession) dcop $konsole $session renameSession Local session=$(dcop $konsole konsole newSession) dcop $konsole $session renameSession Remote session=$(dcop $konsole konsole newSession) dcop $konsole $session renameSession Code dcop $konsole $session sendSession 'cd /my/work/directory'konsole
Du kan bruge KDE's dialoger fra dine egne scripter, til at kombinere de kraftfulde skalscripter i UNIX® med den enkle brug af KDE.
kdialog --msgbox 'Du har et nyt brev!'
kdialog --title 'Nyt brev'
--msgbox 'Du har et nyt brev!'
Delen Kdialog kan erstattes via flaget --caption
kdialog --title 'Nyt brev'
--msgbox 'Du har et nyt brev!'
--dontagain minfil:minnøgle
Gemmer om den skal vises igen i $
ved at indtaste følgende linjer i filen:KDEHOME
/share/config/minfil
[Notification Messages] mykey=false
I stedet for --msgbox
kan du også bruge --sorry
og --error
hvis det er passende. Du kan for eksempel bruge kdialog --sorry 'Netværket kan ikke nås'
eller kdialog --error 'Postkassen kan ikke åbnes'
.
Det er også muligt at oprette meddelelsesfelter som accepterer svaret ja eller nej.
kdialog --yesno 'Vil du forbinde
til internettet?'
echo $?
Returværdi | Betydning |
---|---|
0 | Ja, o.k., Fortsæt |
1 | Nej |
2 | Annullér |
Sørg for at gemme resultatet i en variabel hvis du ikke bruger det direkte. Næste kommando fylder $? med en ny værdi. Du kan også bruge --dontagain
her, husker det brugerens valg og returnerer det næste gang uden at vis dialogen igen.
Yderligere varianter er:
--warningyesno
som --yesno
men med en anden ikon
--warningcontinuecancel
Med knapperne og .
--warningyesnocancel
Med knapperne , og . For eksempel:
kdialog --warningyesnocancel 'Vil du
gemme ændringerne?'
kdialog --inputbox "Indtast dit navn:" "Dit navn"
Resultatet skrives ud på standardudskriften. For at lægge det ind i en variabel kan du bruge name=$(kdialog --inputbox "Indtast dit navn:" "Dit navn")
. Det sidste argument er valgfrit. Det bruges for at udfylde dialogen i forvejen.
password
=$(kdialog --password "Indtast dit kodeord:"
)
Tilvalget --dontagain
virker ikke med --inputbox
eller --password
Der er to dialoger som lader brugeren gøre et valg i en liste:
--menu
Lader brugeren vælge et objekt i en liste.
--checklist
Lader brugeren vælge et eller flere objekter i en liste.
city
=$(kdialog --menu "Vælg en by" a London b Madrid c Paris d Berlin
)
$city
blir a, b, c eller d.
city
=$(kdialog --checklist "Vælg byer" a London off b Madrid on c Paris on d Berlin off
)
Madrid og Paris er standard. Resultatet med Madrid og Paris valgte bliver "b" "c".
Hvis du tilføjer flaget --separate-output
, placerer den b og c på hver sin linje, hvilket gør det enklere at behandle resultatet.
file=$(kdialog --getopenfilename $HOME) file=$(kdialog --getopenfilename $HOME "*.png *.jpg|Image Files") file=$(kdialog --getsavefilename $HOME/SaveMe.png) file=$(kdialog --getexistingdirectory $HOME)
forrige | hjem | næste |
Den dovne administrator | op | Del data med Kontact via IMAP |