<para>&karm; houdt de tijd bij die besteed wordt aan verschillende taken. Het kan gebruikt worden om de tijd bij te houden van taken die bijvoorbeeld aan klanten gefactureerd moet worden, de tijd kan per taak en per dag gerapporteerd worden.</para>
<para>Deze tijdsgeschiedenis kan naar een komma-gescheiden tekstbestand geëxporteerd worden om dit in andere facturerings- of projectbeheer-hulpmiddelen te importeren.</para>
<para>&karm; detecteert wanneer uw toetsenbord en muis ongebruikt zijn en kan verschillende taken aan diverse bureaubladen koppelen, twee hulpmiddelen die kunnen helpen bij het correct bijhouden van de taken.</para>
<para>&karm; is in eerste instantie geschreven door Sirtaj Singh Kang. Het woord <quote>karm</quote> betekent <quote>werk</quote> of <quote>daden</quote> in het Punjaabs, de moedertaal van de auteur, en is hetzelfde woord (maar een betere transcriptie) als <quote>karma</quote>.</para>
<para>Typ <command>karm</command> in op de commandoregel of kies <guimenuitem>Tijdsregistratie</guimenuitem> uit de groep <guisubmenu>Hulpmiddelen</guisubmenu> van het <guimenu>KDE-startmenu</guimenu>. De standaard &Qt; en &kde; parameters zijn beschikbaar. Een overzicht van beschikbare parameters kan verkregen worden door <userinput><command>karm</command> <option>--help</option></userinput> op de commandoregel te typen.</para>
<para>&karm; biedt een additionele opdrachtoptie waarmee u de naam van het iCalendar-bestand kunt opgeven dat gebruikt wordt om uw werkgeschiedenis in op te slaan. U kunt een extern iCalendar-bestand opgeven door "http" of "ftp" als deel van de bestandsnaam te gebruiken, bijvoorbeeld http://www.mijnsite.com/mijndata/mijnwerk.ics</para>
<para><emphasis>Probleem:</emphasis> U bent een software-consultant met veel klanten. Sommige klanten hebben meerdere projecten. Gedurende een dag schakelt u heen en weer tussen de verschillende projecten. U moet uw tijd bijhouden om maandelijkse rekeningen te kunnen maken.</para>
<para><emphasis>Oplossing:</emphasis> Maak een topniveau-taak voor elke klant en een subtaak voor elk project. Voor projecten die gedetailleerder bijgehouden moeten worden, maakt u een lijst van project-subtaken. U houdt de tijd bij door te dubbelklikken op de taak waar u op het moment aan werkt.</para>
<para>&karm; biedt grote flexibiliteit in het bijhouden van uw tijd door een ongelimiteerd aantal taken en taakniveaus. Tijd kan bij elke taak worden bijgehouden en er kunnen meerdere taken tegelijkertijd actief zijn.</para>
<para>Om een topniveau-taak aan te maken kiest u <menuchoice> <shortcut> <keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo> </shortcut> <guimenu>Taak</guimenu> <guimenuitem>Nieuw</guimenuitem> </menuchoice>. Om een subtaak aan te maken kiest u de bovenliggende taak en kiest u <menuchoice> <shortcut> <keycombo action="simul">&Ctrl;&Alt;<keycap>N</keycap></keycombo> </shortcut> <guimenu>Taak</guimenu> <guimenuitem>Nieuwe subtaak</guimenuitem> </menuchoice>. </para>
<para>Als u &karm; afsluit wordt de takenlijst opgeslagen in het bestand dat opgegeven is in <menuchoice><guimenu>Instellingen</guimenu> <guimenuitem>KArm instellen</guimenuitem> </menuchoice>. Bij de volgende start wordt de takenlijst uit hetzelfde bestand geladen.</para>
<para>&karm; kan taken importeren en exporteren om uw werk te minimaliseren. Zie <link linkend="interfaces">Andere systemen</link>.</para>
<para><emphasis>Probleem:</emphasis> Om al uw uitgaven te kunnen doen moet u een gemiddelde van vijf uur per dag factureren. Om ervoor te zorgen dat u dit haalt, houdt u uw dag- en weektotalen in de gaten.</para>
<para><emphasis>Oplossing:</emphasis> Reset de sessie-timer aan het begin van elke werkdag en reset alle timers aan het begin van elke week.</para> </informalexample>
<para>&karm; maakt het bijhouden van tijd eenvoudig. Om de tijd die aan een taak besteed wordt bij te houden dubbelklikt u op de taak. Om het bijhouden te stoppen, dubbelklikt u opnieuw op de taak. Actieve taken worden aangegeven door een klokje in de kolom <guilabel>Sessietijd</guilabel>.</para>
<para>Een andere visuele aanwijzing van activiteit is het systeemvakpictogram van &karm;. Als er een taak actief is, beweegt de secondewijzer in het pictogram. Als u de muiswijzer op dit pictogram laat rusten, wordt de naam van de actieve taak in een hulpballon weergegeven. Als er meer dan één taak actief is, worden de taaknamen in de hulpballon gescheiden door komma's.</para>
<para>&karm; houdt twee timers bij voor elke taak: één voor de sessietijd en één voor de totale tijd. In de standaardinstelling geeft &karm; twee kolommen voor elke timer weer, hetgeen op vier kolommen voor elke taak uitkomt:</para>
<listitem><para>De tijd die aan de taak en alle subtaken ervan besteed is sinds het begin van de sessie.</para></listitem> </varlistentry>
<varlistentry> <term><guilabel>Tijd</guilabel></term> <listitem><para>De tijd die aan de taak is besteed sinds alle tijden gereset zijn.</para></listitem>
<para>Om een nieuwe sessie te starten, kiest u het menu <menuchoice> <guimenu>Bestand</guimenu> <guimenuitem>Nieuwe sessie starten</guimenuitem> </menuchoice>. </para>
<para>Om alle tijden te resetten, kiest u het menu <menuchoice> <guimenu>Bestand</guimenu> <guimenuitem>Alle tijden resetten</guimenuitem> </menuchoice>. </para>
<para><emphasis>Probleem:</emphasis> U hebt twee hoofdprojecten waartussen u elke dag heen en weer schakelt. Om uw werk te organiseren houdt u de bestanden van project 1 op bureaublad 1 en die van project 2 op bureaublad 2.</para>
<para><emphasis>Oplossing:</emphasis> Verbind de taak van project 1 met bureaublad 1 en de taak van project 2 met bureaublad 2. Als u van bureaublad 2 naar bureaublad 1 overschakelt, stopt &karm; automatisch de taak van project 2 en start de taak van project 1.</para>
<para>Om een taak met één of meer bureaubladen te verbinden, kiest u het menu <menuchoice> <shortcut> <keycombo action="simul">&Ctrl;<keycap>E</keycap></keycombo> </shortcut> <guimenu>Taak</guimenu> <guimenuitem>Bewerken</guimenuitem> </menuchoice>. Schakel <guilabel>Automatisch volgen</guilabel> in en kies de bureaubladen waaraan u de taak wilt verbinden. Als één van de gekozen bureaubladen actief wordt, begint &karm; na korte tijd automatisch de tijd voor die taak bij te houden.</para>
<informalexample> <para><emphasis>Probleem:</emphasis> U gaat vroeg van uw werk weg op vrijdag om een bericht te bezorgen en vergeet de timer stop te zetten. Als u terugkomt op maandag loopt de timer nog steeds.</para>
<para>&karm; kan ingesteld worden om inactiviteit van muis en toetsenbord te detecteren. Als de muis en het toetsenbord langer dan de ingestelde tijd inactief zijn, toont &karm; het volgende dialoogvenster:</para>
<varlistentry><term><guibutton>Terugdraaien & stoppen</guibutton></term>
<listitem><para>Trek de hoeveelheid inactieve tijd van alle actieve timers af en stop de timers.</para><para>U was niet aan de taken aan het werken toen uw computer inactief was en u bent nog steeds niet aan het werk.</para></listitem></varlistentry>
<varlistentry> <term><guibutton>Terugdraaien & doorgaan</guibutton></term>
<listitem><para>Trek de hoeveelheid inactieve tijd van alle actieve timers af maar laat ze wel lopen.</para><para>U was niet aan het werk toen uw computer inactief was, maar bent nu wel aan het werk. </para></listitem></varlistentry>
<varlistentry> <term><guibutton>Doorgaan met tijd opnemen</guibutton></term>
<listitem><para>Pas de inactieve tijd toe op alle actieve timers en laat ze lopen.</para><para>U was aan de taken aan het werk toen uw computer inactief was en bent nog steeds aan het werk. </para></listitem></varlistentry> </variablelist>
<para>&karm; biedt drie manieren om de bijgehouden tijd te rapporteren. U kunt de sessie- en tijdstotalen naar de printer sturen, de tijdstotalen naar het klembord kopiëren, of de tijdsgeschiedenis naar het klembord kopiëren.</para>
<sect2><title>Totalen afdrukken</title>
<para>Om het totalenrapport voor de printer te genereren, kiest u het menu <menuchoice> <shortcut> <keycombo action="simul">&Ctrl;<keycap>P</keycap></keycombo> </shortcut> <guimenu>Bestand</guimenu> <guimenuitem>Afdrukken</guimenuitem> </menuchoice>. Dit genereert een rapport met drie kolommen voor de complete takenlijst. De eerste kolom is de taaknaam, de tweede kolom is de <guilabel>Totale sessietijd</guilabel> en de derde kolom is de <guilabel>Totale tijd</guilabel>.</para>
<para>Om het totalenrapport naar het klembord te kopiëren, kiest u <menuchoice> <shortcut> <keycombo action="simul">&Ctrl;<keycap>C</keycap></keycombo> </shortcut> <guimenu>Bestand</guimenu> <guimenuitem>Totalen kopiëren naar klembord</guimenuitem> </menuchoice>. </para>
<para>Dit rapport wordt gegenereerd voor de huidige taak en alle subtaken ervan. Als de huidige taak een topniveau-taak is, vraagt &karm; u of u het rapport voor de huidige taak en subtaken wilt genereren, of voor de gehele takenlijst.</para>
<para>De eerste kolom is de <guilabel>Totale tijd</guilabel> en is ingesprongen (net als de taaknamen) om taak-/subtaak-relaties aan te geven. De gerapporteerde tijden zijn inclusief subtaaktijden.</para>
<para>Om het totalenrapport op het klembord te plaatsen, kiest u het menu <menuchoice> <shortcut> <keycombo action="simul">&Ctrl;<keycap>R</keycap></keycombo> </shortcut> <guimenu>Bestand</guimenu> <guimenuitem>Geschiedenis kopiëren naar klembord</guimenuitem> </menuchoice>. </para>
<important><para>U dient de optie <guilabel>Loggeschiedenis</guilabel> in <menuchoice> <guimenu>Instellingen</guimenu> <guimenuitem>KArm instellen</guimenuitem></menuchoice> in te schakelen. Anders houdt &karm; alleen totalen bij en niet de gedetailleerde taakgeschiedenis.</para></important>
<para>Dit rapport wordt voor de huidige taak en subtaken gegenereerd. In tegenstelling tot het totalenrapport kunt u bij dit rapport niet de hele takenlijst laten rapporteren. U kunt alleen rapporteren op de huidige taak en subtaken.</para>
<para>Als u het geschiedenisrapport kiest, vraagt &karm; u eerst om het datumbereik voor het rapport in te voeren.</para>
<para>De taakgeschiedenis wordt opgeteld voor elke dag en taak, gegroepeerd per week. De eerste zeven kolommen zijn maandag tot en met zondag. De achtste kolom is het weektotaal en de negende kolom is de taaknaam. De taaknamen worden ingesprongen om de taak-/subtaak-relaties aan te geven.</para>
<para>&karm; gebruikt net als KOrganizer en Apple's iCal de industriestandaard <ulink url="http://developer.kde.org/documentation/standards/index.html">iCalendar</ulink> als formaat voor gegevens. &karm; kan takenlijsten van deze twee toepassingen lezen en schrijven.</para>
<warning><para>Als zowel &karm; als KOrganizer hetzelfde bestand geopend hebben, riskeert u gegevensverlies als u het bestand met KOrganizer bewerkt. Bewerk voor de veiligheid het bestand slechts met één toepassing tegelijk.</para></warning>
<para>Als een typisch voorbeeld wilt u wellicht een project plannen met het projectbeheergereedschap Imendio Planner (van <ulink url="http://planner.imendio.org">planner.imendio.org</ulink>) en de taken daaruit importeren in &karm;, om ze in het industrie-standaardformaat <ulink url="http://developer.kde.org/documentation/standards/index.html">iCalendar</ulink> te hebben. Als u dat gedaan hebt, kunt u de taken in KOrganizer inroosteren en de tijd die u aan de taken besteed hebt in &karm; bijhouden. Dat is één manier om ervoor te zorgen dat uw project op tijd en binnen het budget afkomt.</para>
<para>&DCOP; is het mechanisme waarmee KDE-programma's met elkaar communiceren. Een KDE-programma biedt een lijst van functies (zoals een Bash-script) die andere programma's kunnen gebruiken.</para>
<para>&karm;'s huidige &DCOP;-interface wordt momenteel vooral gebruikt voor geautomatiseerd testen en is dus erg beperkt. Zie voor de volledige interfacedefinitie <link linkend="dcopappendix">&DCOP;-interface appendix</link>.</para>
<sect2 id="csv-export"><title>Totalen exporteren naar CSV</title>
<para>&karm; kan zowel totalen als geschiedenis naar een komma-gescheiden bestand exporteren. Om totalen te exporteren, kiest u het menu <menuchoice> <guimenu>Bestand</guimenu> <guisubmenu>Importeren/Exporteren</guisubmenu> <guimenuitem>Exporteren naar CSV-bestand...</guimenuitem> </menuchoice> en &karm; toont het volgende dialoogvenster:</para>
<para>Voer de bestandsnaam in waarnaar u de data wilt exporteren, en wijzig de andere instellingen indien nodig. Merk op dat het datumbereik niet ingesteld kan worden aangezien u de totalen exporteert, niet de geschiedenis. Klik op de knop <guibutton>Exporteren</guibutton> en &karm; exporteert de totalen voor alle taken naar het gekozen bestand.</para>
<para>Topniveau-taken staan in de eerste kolom, subtaken in de tweede, en zo door. De tijdsgegevens worden vermeld na de maximale taakdiepte (vijf in dit voorbeeld). De eerste tijdkolom is <guilabel>Sessietijd</guilabel>, de tweede <guilabel>Tijd</guilabel>, de derde <guilabel>Totale sessietijd</guilabel> en de vierde de <guilabel>Totale tijd</guilabel>. </para>
<sect2 id="csv-export-history"><title>Geschiedenis naar CSV exporteren</title>
<para>Om de taakgeschiedenis te exporteren, kiest u het menu <menuchoice> <guimenu>Bestand</guimenu> <guisubmenu>Importeren/exporteren</guisubmenu> <guimenuitem>Geschiedenis naar CSV-bestand exporteren...</guimenuitem> </menuchoice> en &karm; toont hetzelfde dialoogvenster als hierboven.</para>
<para>Voer de bestandsnaam in waarnaar u de data wilt exporteren, en kies een datumbereik waarvan u de taakgeschiedenis wilt. Wijzig de andere instellingen indien nodig. Klik op de knop <guibutton>Exporteren</guibutton> en &karm; exporteert de taakgeschiedenis voor alle taken naar het gekozen bestand.</para>
<para>Hier is een voorbeeld van het uitvoerformaat:</para>
<para>De eerste drie regels geven aan wanneer het rapport gegenereerd is en voor welk datumbereik. De vierde regel is een komma-gescheiden lijst met de datums in het bereik in ISO 8601 formaat (jjjj-mm-dd). Alle volgende rijen geven de tijd weer die per taak gelogd is. De laatste numerieke kolom is het rijtotaal over alle dagen. De taaknaam wordt afgedrukt na de totaalkolom en is ingesprongen om taak-/subtaakrelaties aan te geven. Namen van topniveau taken verschijnen in de eerste kolom na het totaal.</para>
<para>De verschillende taken worden in dit vak weergegeven, tezamen met de tijd die aan deze taak is besteed. Zowel de tijd van de sessie als de totaal besteedde tijd. Taken die op dit moment bijgehouden worden hebben een klokje bij de sessietijd staan.</para>
<para>Voor iedere taak kunnen er subtaken gecreërd worden. Door het plus- en minteken voor de hoofdtaak kan de weergave van de subtaken aan- en uitgezet worden. De totale tijd van een hoofdtaak is de tijd van de taak zelf tezamen met de tijden van de subtaken.</para>
<para><action>Importeer</action> een imendio planner-project (zie <ulink url="http://planner.imendio.org">planner.imendio.org</ulink>). Alle taken, subtaken en de vlag "voltooid" worden geïmporteerd uit een .planner-bestand. U kunt ze importeren als een subtaak door een subtaak te creëren, deze geselecteerd te laten en dan te importeren. </para>
<para><action>Exporteer</action> <guilabel>Totale sessietijd</guilabel>, <guilabel>Sessietijd</guilabel>, <guilabel>Tijd</guilabel>en <guilabel>Totale tijd</guilabel> naar een tekstbestand.</para>
<para><action>Wijzigt de naam of de tijden</action> van de huidige taak</para><para>Er zijn twee manieren waarop de tijden gewijzigd kunnen worden. Bij "Absolute tijd bewerken" kunnen de tijd en de sessietijd onafhankelijk van elkaar bewerkt worden. Bij "Relatieve tijd bewerken" is het mogelijk tijd bij de huidige sessie en totaaltijd op te tellen of af te trekken.</para><para>Het keuzevakje <guilabel>Automatisch volgen</guilabel> maakt het mogelijk om de klok automatisch te starten en te stoppen wanneer naar een bepaalde &kde;-desktop geschakeld wordt.</para>
<listitem><para><action>Opent</action> een dialoogvenster waarin u &karm; kunt instellen</para>
<para>Het venster bevat drie tabbladen. Bij <guilabel>Gedrag</guilabel> kunt u een waarschuwing voor inactiviteit opgeven en een waarschuwing voor het verwijderen van een verzameling taken, bij <guilabel>Weergave</guilabel> kunt u aangeven welke kolommen er getoond worden in het hoofdvenster, en <guilabel>Opslag</guilabel> geeft aan waar de gegevens moeten worden opgeslagen, of de gegevens automatisch moeten worden opgeslagen en hoe vaak.</para> </listitem>
<para>De auteur van &karm; is geinspireerd door de toepassing <application>titrax</application> van Harald Tveit Alvestrand. Het nadeel van die toepassing is echter dat het gebaseerd is op de Xt-toolkit.</para>
<para>Documentatie copyright 2000-2004 Jonathan Singer <email>jsinger@leeta.net</email> en Sirtaj Singh Kang <email>taj@kde.org</email>.</para>
<glossdef><para>GNU/Linux, FreeBSD en andere systemen die X Windows draaien hebben meerdere bureaubladen. U hebt normaal gesproken vier verschillende bureaubladen. Elk bureaublad kan een eigen verzameling programma's en bestanden weergeven. Als KDE opstart ziet u bureaublad 1. Als u <keycombo action="simul">&Alt;<keycap>F2</keycap></keycombo> drukt, ziet u bureaublad 2. Met <keycombo action="simul">&Alt;<keycap>F1</keycap></keycombo> brengt u bureaublad 1 terug. </para></glossdef> </glossentry>
<glossdef><para>Als &karm; ingesteld is om geschiedenis bij te houden, wordt elke start- of stopgebeurtenis onthouden. Deze geschiedenis wordt niet gewist als de tijden worden gereset en wordt onthouden totdat de taak wordt verwijderd.</para></glossdef>
<glossdef><para>Een gebruikergedefinieerd beginpunt voor de sessietimers. Een nieuwe sessie begint als u het menu <menuchoice> <guimenu>Bestand</guimenu> <guimenuitem>Nieuwe sessie starten</guimenuitem> </menuchoice> kiest. Sessiegegevens worden niet opgeslagen als u een nieuwe sessie start. </para></glossdef> </glossentry>
<glossentry id="gloss-system-time"> <glossterm><guilabel>Sessietijd</guilabel></glossterm> <glossdef><para>De tijd die aan de taak is besteed sinds het begin van de sessie.</para></glossdef> </glossentry>
<glossdef><para>Het systeemvak bevindt zich in de balk die standaard onderaan uw scherm verschijnt. In dit systeemvak <inlinemediaobject><imageobject><imagedata fileref="systray.png" format="PNG"/></imageobject></inlinemediaobject> bevindt het &karm;-pictogram zich uiterst rechts.</para></glossdef>
<glossentry id="gloss-total-session-time"> <glossterm><guilabel>Totale sessietijd</guilabel></glossterm> <glossdef><para>De tijd die aan de taak en alle subtaken ervan besteed is sinds het begin van de sessie.</para></glossdef> </glossentry>
<para><function>version()</function> is een &DCOP;-aanroep die &karm;'s versienummer retourneert; bijvoorbeeld 1.5.0. Het versienummer wordt geretourneerd als een tekenreeks in het standaard GNU-formaat hoofdversie.subversie.bugfix.</para>
<para><function>hastodo(QString taskname)</function> is een &DCOP;-aanroep die een gegeven naam opzoekt. Als deze gevonden wordt, wordt de bijbehorende iCalendar-UID van de taak geretourneerd. Als deze niet gevonden wordt, wordt een lege tekenreeks geretourneerd. </para>
<para>Het iCalendar-bestand dat &karm; momenteel open heeft is het bestand dat doorzocht wordt. Alle taakbomen worden doorzocht, niet alleen topniveau taken. Als meer dan één taak een overeenkomende naam heeft, wordt de eerste geretourneerd.</para>
<para><function>addtodo(QString todoname)</function> is een &DCOP;-aanroep die een nieuwe topniveau-taak aan het huidige bestand toevoegt. De UID van de nieuwe taak wordt geretourneerd. </para>