Elk programma op de computer gebruikt een eigen bestandsformaat om zijn gegevens in op te slaan. Moderne grafische omgevingen zijn op de hoogte van welke programma's overweg kunnen met welke bestandsformaten. KDE gebruikt daarvoor de standaard MIME. Deze standaard wordt door browsers op het internet gebruikt om de aangeboden gegevens correct te behandelen. Daardoor kan KDE door het klikken op een bestand dit bestand op een correcte manier aanbieden. Praktisch gaat dit als volgt in zijn werk. Als een gebruiker op een bestand klikt, zal KDE proberen te achterhalen welk bestandsformaat het aangeklikte bestand gebruikt. Eerst bekijkt KDE de informatie in het begin van het bestand (header, ook wel Meta-info genoemd). Indien daaruit niet kan afgeleid worden over welk soort bestand het gaat, kijkt KDE naar de extensie (laatste gedeelte van de bestandsnaam na de laatste punt). Indien KDE dan het bestandsformaat nog niet kan achterhalen, roept KDE de hulp van de gebruiker in (Openen met dialoog). De informatie nodig om een bestandsformaat te herkennen wordt bijgehouden in een database. Hoewel KDE een massa bestandsformaten herkent, kun je bestandsassociaties toevoegen of wijzigen.
De eenvoudigste vorm om met
bestandsassociaties om te gaan, is rechts klikken op het bestand en
via het snelmenu Openen met > Overig... het dialoogvenster
Openen met te gebruiken. Als je het bestand met een Bekende
toepassing wilt openen, kun je deze kiezen in één van de
categorieën in de tabel. Bekende toepassingen zijn programma's
waarvan KDE weet dat je ze geïnstalleerd hebt (in de praktijk bijna
alle programma's die een grafische interface hebben). Indien de
toepassing geen KDE bekende is, kun je deze zelf bovenaan intypen (of
opzoeken met de knop Dialoogvenster voor bestanden openen
).
Programma's (opdrachten) zonder
grafische interface maar met een tekst interface moet je uitvoeren in
een terminal, dit kan door In een terminal uitvoeren aan te
vinken. Programma's met een tekst interface melden de problemen in
het terminal-venster.
Indien deze meldingen verschijnen tijdens
het afsluiten van het programma kun je ze niet lezen als je Terminal
open laten als het programma afsluit niet hebt aangevinkt. Als je
zeker bent van je stuk en je wilt de gekozen toepassingen veel met
dit soort bestanden gebruiken, kun je Deze toepassing altijd
gebruiken voor dit bestandstype aanvinken. Dan wordt jouw gekozen
toepassing in het snelmenu van dit bestandstype opgenomen bij Openen
met.
Wil je de bestandsassociaties echt beheren, werk dan met het onderdeel Bestandsassociaties op het tabblad Geavanceerd van K menu > Favorieten > Systeeminstellingen. Om sneller het juiste type bestand terug te vinden werden alle bestandstypen in categorieën ingedeeld. Elk bekend type heeft twee associaties (koppelingen).
Op dit tabblad kun je het bestandsformaat een pictogram toekennen. Dit pictogram wordt getoond als er geen voorbeeld als pictogram in de bestandsbeheerder gebruikt wordt.
Indien KDE het bestand niet kan herkennen aan de inhoud, gebruikt het Bestandsnaampatronen (Windows noemt dit extensies). Je kunt zelf bestandsnaampatronen toevoegen en/of verwijderen.
De Omschrijving mag je vrij kiezen en wordt in de bestandsbeheerder in het Informatie-paneel (F11) getoond als je een bestand met de muis aanwijst.
Bij Toepassingen voor dit bestandstype kun je een programma opgeven waarmee je het bestand kunt openen en/of bewerken. Bij meerdere Toepassingen voor dit bestandstype is het bovenste programma het standaardprogramma. De rest wordt gebruikt bij het rechtsklikken op een bestand bij de optie Openen met.
Bij het Toevoegen van
Toepassingen voor dit bestandstype worden er telkens
koppelingen aangemaakt. Deze koppelingen kun je manueel aanpassen met
de knop Bewerken. Het enige verschil met een klassieke
koppeling vind je terug op het tabblad Toepassing.
Bij het aanmaken van de koppeling is nog niet bekend welk bestand geopend moet worden, vandaar dat in het tekstveld Commando plaatshouders worden gebruikt die later vervangen worden door bijvoorbeeld de bestandsnaam die geopend moet worden. Meer informatie over de gebruikte plaatshouders kun je opvragen met de Help knop in de titelbalk.
Hoe moet er gereageerd worden als de gebruiker links op zo'n type bestand klikt:
Bestand ingebed weergeven, betekent het bestand tonen in het venster van de browser of bestandsbeheerder Konqueror zelf.
Indien het bestand in een externe toepassing opent, zal de toepassing gestart worden en het bestand automatisch geladen worden.
Als je kiest voor de Gebruikt instellingen van groep zal de instelling van de groep overgenomen worden.
In de tabel Diensten voor dit bestandstype kun je een dienst kiezen die het bestand in Konqueror moet openen. De bovenste dienst is steeds de standaarddienst. De andere diensten kun je bereiken door met de rechter muisknop te klikken op het bestand en te kiezen voor een opdracht in Voorbeeld in. Een dienst is een programma dat innig samenwerkt met Konqueror. Indien er geen Toepassingen voor dit bestantype op het tabblad Algemeen gedefinieerd zijn, zal een klik op een bestand de standaarddienst gebruiken om het in Konqueror te openen.
Je kunt een bestandstype toevoegen met behulp van de knop Toevoegen... links onderaan het dialoogvenster. Probeer een nieuw bestandstype steeds in een passende Groep te stoppen.
Alle aanpassingen worden opgeslagen in de map $HOME/.local/share/mime/ en deze zijn enkel van toepassing voor een bepaalde gebruiker.
De bestandsassociaties worden ook aangepast bij het installeren van nieuwe pakketten.
Naast de statische manier om gegevens tussen programma's uit te wisselen (klassiek kopiëren en plakken) kun je dynamisch werken. Bij het statisch uitwisselen van gegevens, wordt een kopie gemaakt van het origineel, waarbij de kopie verder behandeld wordt door het programma waarin het terecht komt.
Dynamische koppelingen tussen
gegevens maken ook een kopie, maar kunnen alleen verder bewerkt
worden door te communiceren met het oorspronkelijk programma waar het
vandaan komt.
M.a.w. de koppeling tussen het gegeven (de kopie)
en het programma waarmee het gegeven werd aangemaakt, blijft bestaan.
Dit noemt men een Object.
Een voorbeeld: Object Linking and Embedding (OLE): Een systeem waarmee je gegevens door knippen en plakken van het ene programma naar een ander kunt overbrengen met behoud van de opmaak en bedieningsfuncties. Zo is het mogelijk om een rekenblad op te nemen in een stuk tekst. Worden er in het rekenblad gegevens veranderd, dan worden deze wijzigingen in de tekst ook automatisch ingevoerd.
Dit kan natuurlijk alleen als de
programma's (processen) elkaar begrijpen, wat meestal betekend dat de
programma's tot dezelfde groep of fabrikant moeten behoren.
Zo
zullen de verschillende programma's van OpenOffice.Org daar geen
problemen mee hebben. Ook KDE-programma's kunnen communiceren met
elkaar. Dankzij het gebruik van een standaard kunnen Gnome- en
KDE-programma's perfect samenwerken.
Surf met Firefox naar http://linux.pindanet.be.
Surf via het menu (bol onderaan links op de pagina) Cursus Ontdekken, gebruiken en beheersen > Bestandsbeheer > Dolphin Bestandsbeheer naar de betreffende webpagina.
Schuif (scroll) naar de tweede reeks opdrachten.
Klik op de koppeling opdrachten voor bestandsbeheer en open deze met Ark.
Klik op de werkbalkknop Uitpakken.
Maak het dialoogvenster indien nodig wat breder.
Navigeer naar de Persoonlijke map.
Bevestig het uitpakken.
Sluit na het uitpakken de vensters Ark, Downloads en Firefox.
Open in Dolphin de map ~/Oefenmap/School.
Zorg indien nodig dat het Informatie-paneel weergegeven wordt.
Wijs het bestand Haver.brf aan
met de muis.
Welk type herkende KDE in dit bestand?
Klik rechts op het bestand
Haver.brf.
Met welke programma's kun je dit type bestand openen?
Installeer het java-programma
JEdit met de opdracht:java -jar
Documenten/Installaties/jedit4.3.2install.jar
Bevestig daarbij alle voorgestelde instellingen.
Klik rechts op het bestand Haver.brf.
Daar je een fervente aanhanger bent van het werken met JEdit ga je dit programma openen met de editor jedit. Kies de optie Overig... in Openen met.
Daar jedit een java applicatie
is, is het geen Bekende toepassing en moet je de
opdrachtjava -jar
~/jedit/4.3.2/jedit.jar
in het tekstvak onder Openen
met: intypen.
Sluit de editor.
Nu je weet dat dit werkt, zorg
je ervoor dat jedit opgenomen wordt in het snelmenu Openen met
van Haver.brf.
Op welke plaats werd de optie jedit in het
snelmenu Openen met geplaatst?
Bekijk het snelmenu Openen met van het bestand Bericht gebruikers.txt.
Wat merk je?
Hoe verklaar je dit?
Werk nu verder met het onderdeel Bestandsassociaties uit de Systeeminstellingen.
Selecteer het Bekende type: text/plain.
Verwijder de toepassing jedit uit de tabel met Toepassingen voor dit bestandstype.
Wat merk je links in het pictogram voor dit type bestanden?
Welke bestandsnaampatronen heeft dit type bestanden?
Bekijk de inhoud van de map ~/Oefenmap/School in Dolphin.
Wat stelt de afbeelding in het Informatie-paneel van Haver.brf voor?
Sluit de Systeeminstellingen en pas de wijzigingen toe.
Installeer de tekstverwerker van KOffice door het pakket koffice2-kword te installeren.
Welk programma kwam er bij in de optie Openen met van het snelmenu van Haver.brf?
Open het bestand Haver.brf met
KWord.
Gebruik bij het openen Aanbevolen (UTF-8) voor de
importfilter.
Sluit KWord en Dolphin.
Je gaat nu het document Haver.brf inbedden in Konqueror.
Start Konqueror.
Open de Persoonlijke map.
Open de map ~/Oefenmap/School/.
Gebruik in het snelmenu van Haver.brf de opdracht Voorbeeld in > Ingebed geavanceerd tekstinvoercomponent.
Welk(e) verschil(len) merk je met Openen met > KWrite?
Sluit Konqueror.
Open in Dolphin de map ~/Documenten/Bestandsbeheer.
Onderzoek als volgt de bestandsassociatie text/html:
Start Bestandsassociaties.
Selecteer het bekende type text/html.
Selecteer de Firefox bestandsassociatie.
Klik op de knop Bewerken.
Bekijk het tabblad Toepassing
bij de Ondersteunde mime-bestandstypen. Deze duiden aan met
welke bestandstypen Firefox om kan gaan.
Welk mime-bestandstype
ondersteunt Firefox naast text/html?
Installeer het pakket Epiphany, de webbrowser van Gnome.
Open het bestand ~/Documenten/Bestandsbeheer/patent.html via Openen met Epiphany.
Epiphany werkt. Sluit de Epiphany webbrowser.
Nu ga je ervoor zorgen dat de Epiphany webbrowser de standaard browser wordt.
Start Bestandsassociaties.
Selecteer het juiste Bekende type.
Zorg ervoor dat de Epiphany webbrowser de standaard browser wordt.
Bevestig de instelling.
Vanaf nu kun je elk HTML-document met een klik openen in Epiphany. Test dit.
Werk eraan tot de Epiphany webbrowser de standaard internet browser is.
Sluit alle vensters.
OpenOffice.org is een Office suite met OLE-mogelijkheden. Een paar voorbeelden in de volgende opdrachten:
Start de tekstverwerker.
Typ de volgende tekst
in:
Teksten met ingebedde objecten
Formules voor
rekenknobbels:
Het schoolrapport in een spreadsheet:
Een
grafiek zegt meer dan massa's cijfers:
Maak van de eerste regel een Kop 1 (knop met Standaard in de werkbalk).
Plaats de cursor op het einde van de tweede regel.
Gebruik het menu Invoegen >
Object > Formule.
De werkbalken en menu's van
OpenOffice.org Writer veranderen in de werkbalken en menu's
waarmee je formules kunt bewerken.
Zorg met het menu Beeld > Formule-elementen dat je het dialoogvenster Formule-elementen kunt gebruiken.
Klik op de knop f(x) in het Formule-elementen venster.
Klik in het onderste paneel van het Formule-elementen venster op het symbool Vierkantswortel.
Typ het getal 27.
Klik op de eerste knop Unaire/Binaire operatoren in het bovenste paneel van het venster Formule-elementen.
Klik op het symbool Deling (breukstreep) in het onderste paneel van het venster Formule-elementen.
Typ de letter x (komt boven de breukstreep te staan).
Selecteer <?> in het onderste paneel van OpenOffice.org Writer om hetgeen onder de breukstreep staat aan te passen.
Typ (y-35).
De formule is klaar. Klik buiten het kader met de grafische formule om de formulebewerker te verlaten.
Om het geheel wat presentabel te
maken, voer je volgende bewerkingen uit:
Selecteer het kader met de formule.
Positioneer het kader door het te verslepen met het bolletje met vier pijlen als muiswijzer.
Sla het document op als “Ingebedde objecten”.
Plaats de cursor op het einde van de derde regel.
Gebruik het menu Invoegen > Object > OLE-object....
Zorg voor een Nieuw OpenOffice.org 3.2-werkblad.
Neem het rekenblad van de afbeelding over in het kader.
Versleep de middelste greep (zwart vierkantje) aan de onderste rand en aan de rechter rand van het kader tot alle gebruikte cellen zichtbaar zijn.
Klik na het maken van het werkblad naast het werkblad kader.
Deselecteer het kader (jawel deze stap is nodig).
Selecteer het kader opnieuw om de opmaak te verzorgen.
Kies in het snelmenu van het kader voor de opdracht Omloop > Geen omloop.
Positioneer het kader met het werkblad juist onder de begeleidende tekst.
Sla het document nogmaals op.
Als laatste voorbeeld ga je nog een grafiek onderaan de tekst toevoegen:
Gebruik het menu Invoegen > Object > Diagram.
Klik op de werkbalkknop Gegevenstabel voor diagram.
Vul deze tabel in zoals op de afbeelding.
Met de knoppen bovenaan kun je rijen en kolommen toevoegen en verwijderen.
Sluit nadien het venster Gegevenstabel.
Positioneer de grafiek.
Klik naast het grafiek kader om te tekstverwerker terug te activeren.
Vergelijk het resultaat met de
afbeelding en pas aan indien nodig.
Sla het document op.
Als je de cijfers van het werkblad vergelijkt met deze in de gegevenstabel, merk je dat de punten voor Opvoeding niet overeenkomen.
Klik dubbel op het kader met het werkblad.
Halveer de punten en het totaal voor Opvoeding.
Klik naast het werkblad kader om de aanpassing af te sluiten.
Sla het document op en sluit OpenOffice.org Writer.
Het gebruik van
dynamische koppelingen in programma's zoals OpenOfice.org kan enkel
indien de verschillende deelprogramma's van OpenOffice.org met
elkaar kunnen communiceren.
In bovenstaande voorbeeld verliep de
communicatie van OpenOffice.org naar respectievelijk de Math, Calc
en de Diagram-module van het OpenOffice.org pakket. Indien je de
communicatie-taal beheerst, kun je via scripts opdrachten laten
uitvoeren door andere programma's. De volgende opdrachten begeleiden
je door de wondere wereld van de communicerende processen.
DBUS is een communicatie-protocol tussen verschillende processen binnen KDE wat via sockets opereert. DBUS is een zeer krachtige, maar ook eenvoudige manier om KDE-applicaties te manipuleren. We laten je zien hoe je DBUS kunt aanspreken via de opdrachtregel en via een grafische omgeving. DBUS is uitgegroeid tot een standaard en wordt o.a. gebruikt in Windows-, Gnome-, KDE- en maemo programma's.
DBUS via
qdbusviewer
qdbusviewer
levert een comfortabele boomstructuur met alle opties die de
DBUS-applicaties die op dat moment draaien bieden.
Je kunt een
url openen met Konqueror.
Je start eerst Konqueror en daarna met Alt+F2 de qdbusviewer op. Zoek Konqueror op in de lijst van Services die qdbusviewer je nu laat zien. Selecteer de gevonden org.kde.konqueror Service en je zult alle Methods zien waarover konqueror via DBUS beschikt. Een van deze methods heet konqueror/. Klik op het plusteken van dit item om de beschikbare methoden te zien te krijgen.
Open daarna de tak MainWindow_1.
En daarna de tak org.kde.konqueror.KonqMainWindow.
Klik op de Property:
currentTitle en in het onderste deelvenster verschijnt de
titel van het Konqueror venster.
Nog leuker wordt het om onzichtbare zaken op te vragen. Klik op de Property: currentURL. Welke URL wordt in het venster van Konqueror gebruikt?
Keer terug naar de tak MainWindow_1 en open de tak org.kde.Konqueror.MainWindow.
Klik op de Method: openURL.
Je krijgt een dialoogvenster waarmee je parameters aan Konqueror kunt doorgeven. Geef de parameter url de waarde (Value) /home/sntcursist. Bevestig met OK en Konqueror toont in het venster de inhoud van de persoonlijke map.
Je gaat nog een voorbeeld zien waarbij we Juk, KAlarm en uiteraard DBUS gebruiken. Stel je voor dat je 's ochtends gewekt wil worden met muziek.
Installeer de pakketten juk en kalarm.
Start nu de Muziekspeler JuK op. In het dialoogvenster Mappenlijst van JuK voeg je de map ~/Muziek/Diablo Swing Orchestra - The Butcher's Ballroom toe. Speel een muziekstuk af (denk aan KMix, volumeregeling, de volumeregelaar va JuK is de laatste werkbalkknop – maak het venster breder om de volumeregelaar beter te kunnen bedienen). Sluit het venster van de JuK, JuK blijft doordraaien in het systeemvak.
Selecteer in de qdbusviewer de Service van juk. Klik vervolgens op de method Player > org.kde.juk.player >Method: stop. JuK stopt het afspelen van de muziek. Om de muziek te starten heb je de Method: playPause.
Start KAlarm op. Maak een Nieuwe commandoherinnering. Je kunt de opdracht die je nodig hebt afleiden door te kijken naar qdbusviewer. De opdracht in Kalarm wordt `qdbus org.kde.juk /Player org.kde.juk.player.playPause`. Probeer de herinnering. Nu zal JuK beginnen te spelen op het tijdstip dat je KAlarm meegegeven hebt. Sluit KAlarm.
Stop het afspelen van de muziek.
Je kunt deze DBUS-aanroepen ook in een terminal typen om het als opdracht uit te voeren. Doe hetzelfde nog maar eens in de terminal. De terminal voert de DBUS-aanroep uit.
Zo'n DBUS-aanroep is ook handig om te gebruiken binnen een koppeling op je bureaublad. Dit doe je als volgt: Rechtermuisklik in de Bureaubladmap > Nieuw aanmaken > Koppeling naar programma > Vul op het tabblad Toepassing de betreffende DBUS-aanroep in. Geef de koppeling de naam Muziekspeler Afspelen/Pauze. Na het bevestigen van het dialoogvenster pas je via de Eigenschappen van de koppeling het pictogram aan naar het pictogram van JuK.
DBUS via de opdrachtregel
qdbus is voor de opdrachtregel
wat qdbusviewer voor de grafische omgeving is. Een eenvoudige manier
om met draaiende DBUS-processen te 'praten' en ze instructies te
sturen.
Start KMail en Annuleer de assistent.
Om een lijst met geschikte
draaiende processen te openen typ je het volgende commando in:
qdbus
Dit is dan bijv. de
uitvoer:
:1.1 org.kde.klauncher
:1.10
org.freedesktop.Notifications
org.kde.JobViewServer
org.kde.StatusNotifierHost-1914
org.kde.plasma-desktop
:1.100
org.freedesktop.Akonadi
:1.101
:1.102
:1.103
:1.104
:1.105
:1.106
:1.107
:1.108
:1.109
:1.110
:1.111
org.freedesktop.Akonadi.Agent.akonadi_nepomuk_contact_feeder
org.kde.akonadi_nepomuk_contact_feeder-6904
:1.112
org.freedesktop.Akonadi.Agent.akonadi_maildispatcher_agent
org.kde.akonadi_maildispatcher_agent-6905
:1.113
org.freedesktop.Akonadi.Agent.akonadi_contacts_resource_0
org.freedesktop.Akonadi.Resource.akonadi_contacts_resource_0
org.kde.akonadi_contacts_resource_0-6906
:1.114
org.kde.NepomukServer
:1.116
org.freedesktop.Akonadi.Agent.akonadi_maildir_resource_0
org.freedesktop.Akonadi.Resource.akonadi_maildir_resource_0
org.kde.akonadi_maildir_resource_0-6914
:1.117
org.freedesktop.Akonadi.Agent.akonadi_ical_resource_0
org.freedesktop.Akonadi.Resource.akonadi_ical_resource_0
org.kde.akonadi_ical_resource_0-6918
:1.118
org.kde.konsole
:1.12
org.kde.knotify
:1.122
:1.15
org.kde.kaccess
:1.19
org.freedesktop.ScreenSaver
org.kde.krunner
org.kde.screensaver
:1.2
org.freedesktop.PowerManagement
org.freedesktop.PowerManagement.Inhibit
org.kde.Kephal
org.kde.StatusNotifierWatcher
org.kde.kded
org.kde.network
org.kde.powerdevil
org.kde.synaptiks
:1.21
org.kde.kmix
:1.23
org.kde.policykit1-kde
:1.25
org.kde.kupdateapplet
:1.28
org.kde.klipper
:1.31
org.kde.StatusNotifierItem-1942-1
:1.32
org.kde.StatusNotifierItem-1932-1
:1.42
org.openoffice.OpenOffice.org-5915
:1.6
org.kde.ksmserver
org.kde.ksmserver-1903
:1.65
:1.7
org.kde.kwin
org.kde.kwin-1905
:1.71
org.gtk.vfs.Daemon
:1.72
:1.73
:1.8
org.kde.kglobalaccel
:1.84
:1.85
:1.92
:1.93
:1.97
org.kde.kmail
org.kde.kmail.groupware
org.kde.pim.TransportManager
:1.99
org.freedesktop.Akonadi.Control
org.freedesktop.DBus
Merk
op dat sommige applicaties een procesnummer achter hun naam hebben
staan. Van deze applicaties draaien dus meerdere instanties en
wordt er een PID opgegeven om ze uit elkaar te houden.
Uit deze
lijst pak je nu een applicatie om mee te praten. Je gaat kmail
sturen.
Typ het volgende in het
terminalvenster: qdbus org.kde.kmail
Dit
is dan de
uitvoer:/
/Groupware
/Kdebug
/KHTML
/KHTML/1
/KHTML/1/widget
/KIO
/KIO/Scheduler
/Kmail
/KPIMIDENTITIES_IdentityManager/MailTransportService
/MainApplication/TransportManager
/kmail
/kmail/kmail_mainwindow_1
/kmail/kmail_mainwindow_1/actions
/kmail/kmail_mainwindow_1/actions/kmail_copy
/kmail/kmail_mainwindow_1/actions/file_open
/kmail/kmail_mainwindow_1/actions/new_from_template
/kmail/kmail_mainwindow_1/actions/file_print
/kmail/kmail_mainwindow_1/actions/kmail_undo
/kmail/kmail_mainwindow_1/actions/help_show_tip
/kmail/kmail_mainwindow_1/actions/options_configure_toolbars
/kmail/kmail_mainwindow_1/actions/options_configure_keybinding
/kmail/kmail_mainwindow_1/actions/file_quit
/kmail/kmail_mainwindow_1/actions/help_contents
/kmail/kmail_mainwindow_1/actions/help_whats_this
/kmail/kmail_mainwindow_1/actions/help_report_bug
/kmail/kmail_mainwindow_1/actions/switch_application_language
/kmail/kmail_mainwindow_1/actions/help_about_app
/kmail/kmail_mainwindow_1/actions/help_about_kde
/kmail_PimApplication
/org
/org/freedesktop
/org/freedesktop/email
/org/freedesktop/email/metadata
/org/freedesktop/email/metadata/Manager
Dit
zijn de afzonderlijke onderdelen van kmail waarmee je kunt
communiceren. Je pikt hier de standaard-interface uit om verder mee
te praten.
Typ het volgende in een
terminal: qdbus org.kde.kmail /KMail
Nu
krijg je deze uitvoer:method QStringList
org.kde.kmail.kmail.accounts()
method bool
org.kde.kmail.kmail.canQueryClose()
method void
org.kde.kmail.kmail.checkAccount(QString account)
method void
org.kde.kmail.kmail.checkMail()
method void
org.kde.kmail.kmail.compactAllFolders()
method int
org.kde.kmail.kmail.dbusAddMessage(QString foldername, QString
messageFile)
method int
org.kde.kmail.kmail.dbusAddMessage(QString foldername, QString
messageFile, QString MsgStatusFlags)
method int
org.kde.kmail.kmail.dbusAddMessage_fastImport(QString foldername,
QString messageFile)
method int
org.kde.kmail.kmail.dbusAddMessage_fastImport(QString foldername,
QString messageFile, QString MsgStatusFlags)
method void
org.kde.kmail.kmail.dbusResetAddMessage()
method QString
org.kde.kmail.kmail.debugScheduler()
method QString
org.kde.kmail.kmail.debugSernum(uint serialNumber)
method
QStringList org.kde.kmail.kmail.folderList()
method QString
org.kde.kmail.kmail.getFolder(QString vpath)
method QString
org.kde.kmail.kmail.getFrom(uint serialNumber)
method bool
org.kde.kmail.kmail.handleCommandLine(bool
noArgsOpensReader)
method QDBusObjectPath
org.kde.kmail.kmail.newMessage(QString to, QString
cc, QString bcc, bool hidden, bool useFolderId, QString
messageFile, QString attachURL)
method
QDBusObjectPath org.kde.kmail.kmail.openComposer(QString to,
QString cc, QString bcc, QString subject, QString body, bool
hidden)
method int org.kde.kmail.kmail.openComposer(QString to,
QString cc, QString bcc, QString subject, QString body, bool
hidden, QString attachName, QByteArray attachCte, QByteArray
attachData, QByteArray attachType, QByteArray attachSubType,
QByteArray attachParamAttr, QString attachParamValue, QByteArray
attachContDisp, QByteArray attachCharset, uint identity)
method
int org.kde.kmail.kmail.openComposer(QString to, QString cc,
QString bcc, QString subject, QString body, bool hidden, QString
messageFile, QStringList attachmentPaths, QStringList
customHeaders)
method void
org.kde.kmail.kmail.openReader()
method void
org.kde.kmail.kmail.pauseBackgroundJobs()
method void
org.kde.kmail.kmail.resumeBackgroundJobs()
method void
org.kde.kmail.kmail.resumeNetworkJobs()
method void
org.kde.kmail.kmail.selectFolder(QString folder)
method int
org.kde.kmail.kmail.sendCertificate(QString to, QByteArray
certData)
method void
org.kde.kmail.kmail.setDefaultTransport(QString transport)
method
void org.kde.kmail.kmail.showImportArchiveDialog()
method bool
org.kde.kmail.kmail.showMail(uint serialNumber, QString
messageId)
method void
org.kde.kmail.kmail.stopNetworkJobs()
method int
org.kde.kmail.kmail.timeOfLastMessageCountChange()
signal void
org.kde.kmail.kmail.unreadCountChanged()
method QDBusVariant
org.freedesktop.DBus.Properties.Get(QString interface_name, QString
property_name)
method QVariantMap
org.freedesktop.DBus.Properties.GetAll(QString
interface_name)
method void
org.freedesktop.DBus.Properties.Set(QString interface_name, QString
property_name, QDBusVariant value)
method QString
org.freedesktop.DBus.Introspectable.Introspect()
Dit
is een lijst met method's die je kunt gebruiken om KMail een
bepaalde opdracht te laten uitvoeren. Je gaat er hier eentje
uitlichten waarmee je op e-mail kunt controleren.
Door het volgende in de terminal
in te tikken zal KMail controleren op nieuwe e-mail: qdbus
org.kde.kmail /KMail org.kde.kmail.kmail.checkMail
Welke
opmerking krijg je van KMail?
Nog een voorbeeld. In bovenstaande uitvoer zie je het volgende
staan:method QDBusObjectPath
org.kde.kmail.kmail.openComposer(QString to, QString cc, QString
bcc, QString subject, QString body, bool hidden)
Deze
optie opent dus een venster van kmail voor een nieuw e-mailbericht
met daarin alvast de opgegeven informatietekst.
Je gaat de gevonden methode nu vertalen naar een bruikbare
opdracht:dbus-send --type=method_call
--dest=org.kde.kmail /KMail org.kde.kmail.kmail.openComposer
string:'adm@snt.be' string:'' string:'' string:'DBUS binnen KDE is
geweldig' string:'Met zoveel mogelijkheden binnen KDE valt er nog
maar weinig te wensen' boolean:false
Merk op dat je alle opties van de methode moet gebruiken, anders werkt de opdracht niet. Lege velden (bijv. die voor CC en BCC) maak je aan door gebruik te maken van lege aanhalingstekens. Druk nu op <Enter> en kmail opent een venster voor een nieuw e-mailbericht, waarbij de geadresseerde en het e-mailbericht reeds zijn ingevuld. Let ook op het gebruik van de opdracht dbus-send, deze opdracht was tijdens het opmaken van deze cursus reeds voorzien van een handleiding (qdbus niet) en bij wat complexere communicatie is een handleiding met het juiste gebruik onontbeerlijk.
DBUS gebruiken in
scripts
Misschien hebben een aantal van jullie al de magie
gevoeld van DBUS. We zullen nu twee hele simpele voorbeelden laten
zien hoe je DBUS kunt gebruiken binnen scripts.
Desktop viewer#!/bin/bash
while
true;
do qdbus org.kde.kwin
/KWin org.kde.KWin.nextDesktop
sleep 4
done
Googlesearch#!/bin/bash
selected=`qdbus
org.kde.klipper /klipper
org.kde.klipper.klipper.getClipboardContents`
Wat
gebruikt Google hier als zoektekenreeks?
firefox
"http://www.google.be/search?q=$selected" &
exit
Enkele opties om nog wat verder mee te oefenen
qdbus
org.kde.kwin /KWin org.kde.KWin.setCurrentDesktop 2
Ga
naar bureaublad 2
qdbus
org.kde.kmail /KMail org.kde.kmail.kmail.compactAllFolders
Laat
KMail alle mappen comprimeren
qdbus
org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout 1 0
3
Het Afsluiten dialoogvenster op het scherm plaatsen.
De eerste parameter zorgt voor bevestiging (-1 gebruik de gebruikersinstelling, 0 zonder bevestiging doorgaan, 1 bevestiging door gebruiker)
De tweede parameter is het type (-1 vorige actie, 0 afmelden, 1 herstarten, 2 uitschakelen)
De derde parameter is de mode (-1 vorige mode, 0 herstarten of afsluiten na het afmelden van alle sessies, 1 afsluiten indien alle sessies afgemeld zijn, 2 geforceerd afsluiten, 3 een dialoogvenster tonen om de gebruiker te laten beslissen)
dbus-send
--type=method_call --dest=org.kde.krunner /ScreenSaver
org.freedesktop.ScreenSaver.SetActive boolean:true
Om de
schermbeveiliging te starten.
qdbus org.kde.kmix /Mixer0
org.kde.KMix.setMasterVolume 100
Zet het geluidsvolume op
maximum (100%).
qdbus
org.kde.juk /Player org.kde.juk.player.playPause
Speel
het lied verder af of pauzeer het afspelende lied.
De laatste acties zijn via DBUS eenvoudig te koppelen aan een multimediatoets op je toetsenbord of een afstandsbediening via bijvoorbeeld xbindkeys en LIRC.
Kijk voor meer informatie over DBUS op http://dbus.freedesktop.org.