# &karm;-håndbogen

## Indledning

&karm; holder øje med tiden som bruges til forskellige opgaver. Den er nyttig til at huske timer som skal beregnes for forskellige kunder pr opgave og pr dag.

denne tidshistorik kan eksporteres til en komma-adskilt tekstfil til import i andre regnings- og/eller projekthåndteringsværktøjer.

&karm; detekterer hvornør dit tastatur og mus er i tomgang og kan tilknytte forskellige opgaver til forskellige desktoppe, to værktøjer der kan hjælpe med at holde tidsmåleren kørende på den rigtige opgave.

&karm; er oprindelig skrevet af Sirtaj Singh Kang. Ordet karm betyder arbejde eller dåd på forfatterens modersmål Punjabi og det er det samme ord (men en bedre transliteration) som karma.

## Brug af &karm;

### Start &karm;

Skriv `karm` på kommandolinjen eller vælg Personlig tidsmåler fra gruppen Værktøj i KDE's startmenu. De almindelige &Qt;- og &kde;-kommandoflag er tilgængelige, og kan ses på en liste ved at skrive ``karm` `--help`` på kommandolinjen.

&karm; sørger for yderligere et kommandolinjeflag som lader dig angive navnet på den ICalendar-fil som bruges til at opbevare din arbejdshistorik. Du indskriver en fjernkalenderfil ved at bruge http eller ftp som en del af filnavnet, for eksempel http://www.min_arbejdsplads.dk/mine_data/mit_arbejde.ics.

### Opgaver

Problem: Du er en konsulent for fri software med mange klienter. Nogle klienter har flere projekter. I løbet af en dag, skifter du frem og tilbage mellem forskellige projekter. Du har brug for at holde styre den tid du bruger for at kunne generere månedlige regninger.

Løsning:Lav én opgave på øverste niveau for hver kunde og en underopgave for hver af kundens projekter. For projekter der kræver mere detaljeret forfølgning, lav en liste af underopgaver for projektet. Følg tiden ved at dobbeltklikke på den opgave du arbejder på for øjeblikket.

&karm; giver stor fleksibilitet i at følge din tid, tillader ubegrænsede opgaver og opgavedybde. Tiden kan følges til enhver opgave, og mere end en opgave kan være aktiv på et giver tidspunkt.

For at lave en opgave på øverste niveau vælges &Ctrl;N Opgave Ny . For at lave en underopgave vælges opgaven og så bruges &Ctrl;&Alt;N Opgave Ny underopgave

Når &karm; afslutter, bliver opgavelisten gemt til den fil der er angivet i Opsætning Indstil KArm . Når den åbnes næste gang, genindlæser den opgavelisten fra den samme fil.

&karm; kan importere og eksportere opgaver for at minimere arbejdet. Se Andre systemer.

### Tidsmålere

Problem: For ikke at gå fallit, må du udsende gennemsnitligt en regning for fem af dagens timer. For at styre dette overvåger du dine daglige og ugentlige timer i alt.

Løsning: Nulstil sessionsmåleren i begyndelsen af hver arbejdsdag og nulstil alle tidsmålere i begyndelsen af hver uge.

&karm; gør det nemt at følge tiden. For at starte med at logge tiden mod en opgave, dobbeltklikkes på opgaven. For at holde opmed at logge tiden, dobbeltklikkes på opgaven igen. Aktive opgaver viser et lille ur i søjlen Sessionstid.

En anden visuel indikation af at aktiviteten logges er &karm;'s statusikon. Når en opgave er aktiv, bevæger minutviseren i ikonen sig. Hvis du lader musemarkøren hvile over denne ikon, vil navnet på den aktive opgave blive vist som et værktøjsvink. Hvis mere end en opgave er aktiv, vil opgavernes navne i værktøjsvinket være adskilt af kommaer.

&karm; vedligeholder to tidsmålere for hver opgave: en for sessionstiden og en for den totale tid. I standardindstillingen viser &karm; to søjler for hver tidsmåler, resulterende i at der er fire søjler i alt for hver opgave:

Sessionstid

- Tiden brugt på opgaven siden sidste session begyndte.

Sessionstid i alt

- Tiden brugt på opgaven og alle dens underopgaver siden sidste session begyndte.

Tid

- Tiden brugt på opgaven siden alle tider blev nulstillet.

Tid i alt

- Tiden brugt på opgaven og dens underopgaver siden alle tider blev nulstillet.

For at starte en ny session, vælges Fil Start ny session

For at nulstille alle tider vælges Fil Nulstil alle tider

#### Følgning af desktop

Problem: Du har to hovedprojekter som du skifter imellem hver dag. For athjælpemed at organisere dit arbejde, har du dine filer for projekt 1 på desktop 1 og for projekt 2 på desktop 2.

Løsning: Tilknyt projekt 1's opgave med desktop 1 og projekt 2 med desktop 2. Når du skifter fra desktop 2 til desktop 1, stopper &karm; automatisk projekt 2 opgaven og starter projekt 1 opgaven.

For at knytte en opgave til en eller flere desktoppe, vælges &Ctrl;E Opgave Redigér . Slå Auto-sporing til og vælg den desktop eller de desktoppe der skal knyttes til denne opgave. Når en af de valgte desktoppe bliver aktive, vil &karm; automatisk, efter en kort ventetid, begynde at logge tiden mod denne opgave.

#### Tomgangsdetektion

Problem: Du forlader dit arbejde tidligt fredag fordi du har et ærinde og glemmer at standse tidsmåleren. Når du vender tilbage mandag, kører tidsmåleren stadigvæk.

Løsning: Slå tomgangsdetektion til.

&karm; kan indstilles til at detektere hvornår mus og tastatur er i tomgang. Hvis musen og tastaturet ikke bliver brugt længere end et angivet antal minutter, viser &karm; følgende dialog:

&karm; tomgangsdetektion &karm; dialog for tomgangsdetektion

Vend tilbage & stop

- Træk tomgangstiden fra fra alle aktive tidsmålere og stop dem.

  Du arbejdede ikke på opgaverne mens din computer var i tomgang og du gør det stadigvæk ikke.

Vend tilbage og & fortsæt

- Træk den tomgangstiden fra alle aktive tidsmålere men hold em kørende.

  Du arbejdede ikke på opgaverne mens din computer var i tomgang men du gør det nu.

Fortsæt med at tage tid

- Anvend tomgangstiden på alle aktive tidsmålere og hold dem kørende.

  Du arbejdede på opgaverne mens din computer var i tomgang og du gør det stadigvæk.

### Rapportering

&karm; giver dig tre måder at rapportere den tid du har logget. Du kan sende summer for session og tid til printeren, kopiere tidssummer til klippebordet, eller kopiere tidshistorikken til klippebordet.

#### Udskriv totalsummer

For at generere sumrapporter til printeren, vælges &Ctrl;P Fil Udskriv . Dette genererer en tre-søjle-rapport for den fuldstændige liste af opgaver. Den første søjle er opgavens navn, den anden søjle er Sessionstid i alt og dne tredje søjle er Tid i alt.

#### Udklip summer

For at generere totalrapport til klippebordet vælges &Ctrl;C Fil Kopiér totalsummer til klippebordet .

Denne rapport bliver genereret for den opgave der er valgt nu og alle dens underopgaver. Hvis den nuværende opgave er på det øverste niveau, spørger &karm; dig om du ønsker at generere rapporten for denne opgaver og dens underopgaver eller for hele opgavelisten.

&karm; Kopiér denne opgave &karm;-dialogen Kopiér denne opgave

Når rapporten er genereret, åbnes KEdit eller en anden teksteditor og rapportens data indsættes.

    Opgavesummer
    2004-07-10 02:26

      Tid    Opgave
    ----------------------------------------------
      9:14    kde
       9:14    karm
        1:08    fejl
        0:00    tjek ændringer ind
       0:00    promo
       0:00    net ting
    ----------------------------------------------
      9:14 I alt

Den første søjle er Tid i alt og den er indrykket (ligesom opgavens navn) for at indikere opgave/underopgave-forhold. De rapporterede tider inkluderer tider for underopgaver.

#### Udklipshistorik

For at generere totalrapporter til klippebordet vælges &Ctrl;&Alt;C Fil Kopiér historik til klippebord .

Du skal slå tilvalget Log historik til i Opsætning Indstil KArm . Ellers holder &karm; kun styr på summer og ikke den detaljerede opgavehistorik.

Denne rapport bliver genereret for den nuværende opgave og alle dens underopgaver. I modsætning til sum-rapporter, giver denne rapport dig ikkemuligheden for at rapportere om den fuldstændige opgaveliste. Du kan kun rapport den nuværende opgave og alle dens underopgaver.

Når du vælger historikrapporten, beder &karm; dig først om at indtaste datoområdet for rapporten:

&karm; indtast datoområde &karm; indtast datoområde

Efter at have indtastet et datoområde, åbnes KEdit eller en anden teksteditor og rapportens data indsættes.

    Opgavehistorik
    Fra torsdag den 1. juli, 2004 til mandag den 12. juli, 2004
    Udskrevet: 2004-07-12 17:18

                                   Ugen for mandag den 5. juli, 2004
         5     6     7     8     9    10    11
    -------------------------------------------------------------------------
                                                 0:00 kde
                                                 0:00  dc
                  !:22  1:46  3:14  1:44         8:06  karm
                                                 0:00   3.2 egenskabsplan
                  1:08                           1:08   fejl
                                                 0:00   tjek ændringer ind
                                                 0:00  promo
                                                 0:00  net ting
    -------------------------------------------------------------------------
                  2:30  1:46  3:14  1:44         9:14 I alt

Opgavehistorikken bliver summet op for hver dag og opgave, grupperet efter uge. De første syv søjler er mandag til søndag. Den ottende søjle er ugen i alt og den niende er opgavens navn. Opgavenavnene bliver indrykket for at indikere opgave/underopgave-forhold.

### Andre systemer

#### KOrganisator

&karm;, såvelsom KOrganizer og Apple's iCal, bruger industristandarden iCalendar-formatet til sine data. &karm; kan læse og skrive gøremålslister der er lavet af disse to programmer.

Hvis både &karm; og KOrganizer har åbnet den samme fil, og du redigerer filen med KOrganizer, risikerer du at miste data. For at være på den sikre side bør du kun redigere filen enten med det ene program, eller med det andet.

#### Planner

Som et typisk brugertilfælde, kunne du ville planlægge et projekt med projekthåndteringsværktøjet Imendio Planner (fra planner.imendio.org) og importere dets aktiviteter til &karm;, for at få dem på industristandard-formatet iCalendar. Når du har gjort det kan du skemalægge aktiviteterne i Korganizer og holde styr på tiden du arbejder med dem i &karm;. Dette er en måde at kontrollere om projektet holder sig indenfor budget- og tidsrammerne.

#### &DCOP;

&DCOP; er mekanismen som KDE-programmer bruger til at kommunikere med hinanden. Et KDE-program sørger for en liste med funktioner som andre programmer (for eksempel et Bash-script) kan bruge.

##### Bash-script som ekkoer &karm;s version

    DCOPID=`dcop | grep karm`
            if [ $DCOPID ]
            then
                    VERS=`dcop $DCOPID KarmDCOPIface version`
                    echo "&karm; version er $VERS"
            else
                    echo "&karm; kører ikke"
            fi

&karm;s nuværende &DCOP;-grænseflade bruges for øjeblikket i hovedsagen til automatiserede tester, så det er meget begrænset. For den fuldstændige definitionen af grænsefladen, se appendix &DCOP;-grænseflade.

For at se den fuldstændige &DCOP;-grænseflade for versionen af &karm; som er installeret på dit system, kør følgende Bash-script.

##### Vis liste med &karm;s &DCOP;-grænseflade på terminalen

    DCOPID=`dcop | grep karm`
            if [ $DCOPID ]
            then
                    dcop $DCOPID KarmDCOPIface
            else
                    echo "&karm; kører ikke"
            fi

#### Eksportér totalsummer til CSV

&karm; kan både eksportere totalsummer og historik til et komma-adskilt filformat. For at eksportere totalsummer, vælges Fil Import/Eksport Eksport til CSV-fil... så vil &karm; vise følgende eksportdialog:

&karm; CSV eksportdialog &karm; CSV eksportdialog

Indtast den fil du gerne vil eksportere data til, og ændre den anden dialogs forvalg om nødvendigt. Bemærk at datoområdets kontrol er deaktiveret idet du eksporterer totalsummer angående tid, ikke historikdata. Klik på Eksportér så vil &karm; eksportere totalsummer for alle opgaver til den fil du valgte.

Her er et eksempel på uddataformatet:

    "kde",,,,,0.00,0.00,6.88,9.83
    ,"karm",,,,6.88,8.70,6.88,9.83
    ,,"3.2 plan over egenskaber",,,0.00,0.00,0.00,0.00
    ,,"fejl",,,0.00,1.13,0.00,1.13
    ,,"tjek ændringer ind - oversættelsesstrenge",,,0.00,0.00,0.00,0.00
    ,,"rapport over tidskort",,,0.00,0.00,0.00,0.00
    ,"kopete",,,,0.00,0.00,0.00,0.00
    ,"promo",,,,0.00,0.00,0.00,0.00
    ,"netting",,,,0.00,0.00,0.00,0.00

Opgaver på top-niveau skrives i første søjle, underopgaver i anden og så videre. Tidsdata skrives efter den maksimale opgavedybde (fem i dette eksempel). Den første tidssøjle er Sessionstid, den anden Tid, den tredje er Sessionstid i alt og den fjerde er Tid i alt.

#### Eksportér historik til CSV

For at eksportere opgavehistorikken vælges Fil Importér/Eksportér Eksportér historik til CSV-fil... og &karm; viser så den samme eksportdialog som vist ovenfor.

Indtast den fil du gerne vil eksportere data til, og vælg det datoområde som du ønsker for opgavehistorikken. Ændr de andre forvalg i dialogen om nødvendigt. Klik på Eksportér så vil &karm; eksportere opgavehistorikken for alle opgaver til den fil du valgte.

Her er et eksempel på uddataformatet:

    Opgavehistorik
    Fra tirsdag den 6. juli, 2004 til tirsdag den 13. juli, 2004
    Udskrevet den: 2004-07-13 18:10
    2004-07-06,2004-07-07,2004-07-08,2004-07-09,2004-07-10,2004-07-11,2004-07-12,2004-07-13,
    ,,,,,,,,0.00,"kde"
    ,,1.77,3.23,1.73,,1.37,0.82,8.95,,"karm"
    ,,,,,,,,0.00,,,"3.2 plan over egenskaber"
    ,1.13,,,,,,,1.13,,,"fejl"
    ,,,,,,,,0.00,,,"tjek ændringer ind -oversættelsesstrenge"
    ,,,,,,,,0.00,,,"rapport over tidskort"
    ,,,,,,,,0.00,,"kopete"
    ,,,,,,,,0.00,,"promo"
    ,,,,,,,,0.00,,"netting"

De tre linjer identificerer hvornår rapporten blev genereret og for hvilket datoområde. Den fjerde række er en komma-afgrænset liste af datoerne i datoområdet, i ISO 8601 format (ÅÅÅÅ-MM-DD). Alle efterfølgende rækker er en liste af tiden logget mod hver opgave. Den sidste numeriske søjle er rækkesummen henover alle dage. Opgavens navn udskrives efter total-søjlen, og indrykkes for at indikere opgavek/underopgave-forholdet. Navne på opgaver på øverste niveau ses i første søjle efter totalsummen.

## &karm;s grænseflade

Hovedvinduet for &karm; har følgende dele: menulinje, værktøjslinje, opgave/tidsvindue og en statuslinje.

&karm;s vindue &karm;s vindue

### Opgave/tidsvinduet

De forskellige opgaver vises i dette vindue, sammen med tiden som er gået for hver i den nuværende session og i alt. Opgaver som tidsmåless har et lille ur ved siden af sessionstiden.

Underopgaver kan laves for hver opgave. Klik på plus-tegnet eller minus-tegnet foran hovedopgaven skifter visningen af de tilknyttede underopgaver. Den totale tid som gået med en opgave indeholder tiderne for dens underopgaver samt dens egen akkumulerede tid.

### &karm;s menulinje

#### Fil-menuen

&Ctrl;S Fil Gem

- Gemmer de nuværende opgaver og underopgaver og deres totale tid.

&Ctrl;P Fil Udskriv

- Udskriver &karm;s vindue

Fil Start ny session

- Sætter alle sessionstider til nul

Fil Nulstil alle tidspunkter

- Sætter alle tidspunkter til nul

File Import/Eksport Importér gammeldags flad fil...

- Importerer gemte &karm;-filer i gammeldags stil (&karm; bruger nu at gemme filer i iCalendar-stil.)

File Import/Eksport Importér opgaver fra Planner

- Importér et Imendio Planner-projekt (se planner.imendio.org). Alle aktiviteter, delaktiviteter og deres "færdig" markering importeres fra en .planner-fil. Du kan importere dem som en delopgave ved at oprette en delopgave, efterladende den som markeret, og derefter importere.

Fil Import/Eksport Eksportér til CSV-fil...

- Eksportér Sessionstid i alt, Sessionstid, Tid, og Tid i alt til en tekstfil.

Fil Import/Eksport Eksport historik til CSV-fil...

- Eksportér opgavehistorik til en tekstfil.

&Ctrl;C Fil Kopiér totale summer til klippebord

- Kopierer den nuværende totale tid for en task or all tasks to the &kde; clipboard

&Ctrl;&Alt;C Fil Kopiér historik til klippebord

- Kopierer daglige tider for en given periode til &kde;'s klippebord

&Ctrl;Q Fil Afslut

- Lukker &karm;

#### Ur-menuen

S Ur Start

- Starter tidsmåling for den markerede opgave

Ur Stop

- Stopper tidsmåling for den markerede opgave

&Esc; Ur Stop alle tidsmålere

- Stopper tidsmåling af alle opgaver

#### Opgave-menuen

&Ctrl;N Opgave Ny

- Tilføjer en ny opgave

&Ctrl;&Alt;N Opgave Ny underopgave

- Tilføjer en ny underopgave til den markerede opgaven

Del Opgave Slet

- Sletter den markerede opgave eller underopgave

&Ctrl;E Opgave Redigér

- Ændrer navn eller total tid for den nuværende opgave

  Der er to måder at ændre tiden: Redigér absolut, hvor sessionstiden og totale tider kan ændres separat; og Redigér relativt, hvor en vis ændring lægges til eller fjernes både fra sessionstiden og den totale tid.

  Autosporing tillader tidsmåling at starte og stoppe automatisk når du skifter til eller fra et bestemt af &kde;'s desktoppe.

#### Opsætningsmenuen

Opsætning Indstil genveje

- Åbner en dialog til at lade brugeren indstille genvejstaster

Opsætning Indstil KArm

- Åbner en dialog til at lade brugeren indstille &karm;

  Dialogen har tre ruder i faneblade: Opførsel , som tillader dig at angive en advarsel for ingen aktivitet og give en advarselsbesked når du sletter et sæt opgaver, Visning , som indstiller felterne vist i hovedvinduet Opbevaring, som indstiller stedet hvor filer gemmes, om automatisk gemning er aktivere og intervallet mellem at gemme automatisk.

#### Hjælpemenuen

&help.menu.documentation;

### Værktøjslinjen

Værktøjslinjen indeholder ikoner for følgende kommandoer:

(Alle opfører sig på samme måde som menukommandoen.)

- Start

- Stop

- Ny

- Ny underopgave

- Slet

- Redigér

### Statuslinjen

Rapporterer den totalt tid der er gået for en session.

## Medvirkende og licens

&karm;

Program ophavsret:

- 1997-2000 Sirtaj Singh Kang taj@kde.org.

- 2001-2002 Tomas Pospisek tpo_deb@sourcepole.ch

- 2003-2004 Mark Bucciarellimark@hubcapconsulting.com

Bidragydere (i alfabetisk rækkefølge)

- Allen Winter winterz@verizon.net

- David Faure faure@kde.org

- Espen Sand espen@kde.org

- Gioele Barabucci gioele@gioelebarabucci.com

- Jan Schaumann jschauma@netmeister.org

- Jesper Pedersen blackie@ifad.dk

- Kalle Dalheimer kalle@kde.org

- Klarälvdalens Datakonsult AB

- Mark Bucciarelli mark@hubcapconsulting.com

- Thorsten Stärk dev@staerk.de

- Tomas Pospisek tpo_deb@sourcepole.ch

- Willi Richert w.richert@cox.net

&karm; er inspireret af Harald Tveit Alvestrands meget nyttige værktøj som hedder titrax, hvis eneste fejl er at det er baseret på Xt-værktøjskassen.

Dokumentation ophavsret 2000+2004 Jonathan Singer jsinger@leeta.net og Sirtaj Singh Kang taj@kde.org.

&underFDL; &underGPL;
aktiv opgave

En opgave der har tidsmåleren kørende.

&DCOP;

Protokollen for kommunikation mellem processer som bruges i KDE. Kort for Desktop COmmunication Protocol.

desktop

GNU/Linux, FreeBSD og andre systemer der kører X-Windows har flere desktoppe. Du har typisk fire forskellige desktoppe installeret som standard. Hver desktop kan vise sit eget sæt programmer og filer. Når KDE først startes op, er den desktop du ser Desktop 1. Hvis du trykker på &Alt;F2, ser du Desktop 2. Tryk på &Alt;F1 vil få Desktop 1 tilbage.

historik

Hvis &karm; er indstillet til at logge historik, vil den optage hver start/stop tidsmålingsbegivenhed. Denne historik bliver aldrig ryddet når tider nulstilles, men forbliver i filen indtil opgaven bliver slettet.

session

Et brugerdefineret startpunkt for sessionens tidsmålere. En ny session begynder when you select File Start New Session . Session data is not saved when you create a new session.

Sessionstid

Tiden brugt på opgaven siden sidste session begyndte.

statusfelt

Statusfeltet er som standard er i panelet for neden. I dette statusfelt er &karm;-ikonen længst til højre.

opgave på øverste niveau

En opgave uden overopgave.

Sessionstid i alt

Tiden brugt på opgaven og alle dens underopgaver siden sidste session begyndte.

Tid

Tiden brugt på opgaven siden alle tider blev nulstillet.

Tid i alt

Tiden brugt på opgaven og dens underopgaver siden alle tider blev nulstillet.

## Installation

### Hvordan får man fat på &karm;

&install.intro.documentation; &install.compile.documentation;

## &DCOP;-grænseflade

version

version

Returnerer &karm;s version.

    QString version()

#### Beskrivelse

`version()` er et &DCOP;-kald som returnerer &karm;s versionsnummer, for eksempel 1.5.0. Versionsnummeret returneres som en streng med det typiske GNU-format hovedversion.delversion.fejlretning.

quit

quit

Returnerer &karm;s afslutning.

    QString quit()

#### Beskrivelse

`quit()` er et &DCOP;-kald som sørger for en måde for et eksternt program at afslutte &karm; på en pæn måde.

hastodo

hastodo

Tjek om en aktivitet på topniveau findes.

    QString hastodo(QString aktivitetsnavn)

#### Parametre

`opgavenavn`

- Navnet på gøremålet at lede efter.

#### Beskrivelse

`hastodo(QString taskname)` er et &DCOP;-kald som leder efter en opgave med angivet navn. Hvis den findes, returneres iCalendar-brugerid som identifierer opgaven. Hvis den ikke findes, returneres en tom streng.

Filen som gennemsøges er iCalendar-filen som &karm; for øjeblikket har åben. Alle opgavetræer gennemsøges, ikke kun opgaver på øverste niveau. Hvis mere end en opgave har et matchende navn, returneres den første som findes.

addtodo

addtodo

Tilføj et nyt gøremål.

    QString addtodo(QString gøremålsnavn)

#### Parametre

`gøremålsnavn`

- Navnet på det nye gøremål.

#### Beskrivelse

`addtodo(QString todoname)` er en &DCOP;-funktion som tilføjer en ny opgave på øverste niveau i nuværende lagringsobjekt. Den nye opgaves brugerid returneres.

&documentation.index;