# Handbok &karm;

## Inledning

&karm; håller reda på tiden som används för olika aktiviteter. Det är användbar för att hålla reda på fakturerad kundtid och kan rapportera timmarna loggade enligt aktivitet och dag.

Denna tidshistorik kan exporteras till en textfil avgränsad med kommatecken, för att importera till andra fakturerings- eller projekthanteringsverktyg.

&karm; detekterar när tangentbordet och musen är inaktiva och kan koppla ihop olika aktiviteter med olika skrivbord, två verktyg som kan hjälpa till att hålla tidtagningen igång för den riktiga aktiviteten.

&karm; är ursprungligen skrivet av Sirtaj Singh Kang. Ordet karm betyder arbete eller gärning på upphovsmannens modersmål Punjabi, och är samma ord som karma (men en bättre transkribering).

## Att använda &karm;

### Starta &karm;

Skriv `karm` på kommandoraden eller välj Personlig tidmätare från gruppen Verktyg i KDE:s startmeny. De vanliga &Qt;- och &kde;-kommandoväljarna är tillgängliga, och kan listas genom att skriva ``karm` `--help`` på kommandoraden.

&karm; tillhandahåller ytterligare en kommandoradsväljare som låter dig ange namnet på den ICalendar-fil som används för att lagra din arbetshistorik. Du skriver in en fjärrkalenderfil genom att använda http eller ftp som en del av filnamnet, till exempel http://www.min_plats.se/min_data/mitt_arbete.ics.

### Aktiviteter

Problem: Du är en programvarukonsult med många kunder. Vissa kunder har flera projekt. Under en dag byter du fram och tillbaka mellan olika projekt. Du behöver hålla reda på din tid för att skapa månadsvisa fakturor.

Lösning: Skapa en toppnivåaktivitet för varje kund, och en delaktivitet för varje kundprojekt. För projekt som kräver mer detaljerad uppföljning, skapa en lista med delaktiviteter i projektet. Håll reda på tiden genom att dubbelklicka på aktiviteten som du för närvarande arbetar med.

&karm; tillhandahåller stor flexibilitet för att hålla reda på din tid, och tillåter obegränsat antal aktiviteter och aktivitetsdjup. Tid kan loggas för vilken aktivitet som helst, och mer än en aktivitet kan pågå vid en given tidpunkt.

För att skapa en toppnivåaktivitet, välj &Ctrl;N Aktivitet Ny . För att skapa en delaktivitet, markera överliggande aktivitet och välj &Ctrl;&Alt;N Aktivitet Ny delaktivitet .

När &karm; avslutas, sparas aktivitetslistan i filen som anges av Inställningar Anpassa Karm . När det öppnas nästa gång, laddas aktivitetslistan från samma fil.

&karm; kan importera och exportera uppgifter för att minimera ditt arbetet. Se Andra system.

### Tidtagning

Problem: För att förbli lönsam, måste du fakturera i medeltal fem timmar per dag. För att hålla dig på spåret, bevakar du dina dagliga och veckovisa totalvärden.

Lösning: Återställ sessionstiden vid början av varje arbetsdag, och återställ alla tider i början av varje vecka.

&karm; gör det enkelt att hålla reda på tid. För att börja logga tid för en aktivitet, dubbelklicka på aktiviteten. För att stoppa logga tid, dubbelklicka på aktiviteten igen. Pågående aktiviteter visar en liten klocka i kolumnen Sessionstid.

En annan synlig indikering att aktiviteter loggas är &karm;s ikon i systembrickan. När en aktivitet pågår, rör sig ikonens sekundvisare. Om du håller musen på ikonen, visas namnet på den pågående aktiviteten med ett verktygstips. Om mer än en aktivitet pågår, skiljs aktivitetsnamnen åt med kommatecken i verktygstipset.

&karm; hanterar två tider för varje aktivitet: en för sessionstiden och en för den totala tiden. Med normalinställningar, visar &karm; två kolumner för varje tid, vilket resulterar i totalt fyra kolumner för varje aktivitet:

Sessionstid

- Tiden som använts för aktiviteten sedan sessionen började.

Total sessionstid

- Tiden som använts för aktiviteten och alla dess delaktiviteter sedan sessionen började.

Tid

- Tiden som använts för aktiviteten sedan all tidtagning återställdes.

Total tid

- Tiden som använts för aktiviteten och alla dess delaktiviteter sedan all tidtagning återställdes.

För att starta en ny session, välj Arkiv Starta nysession

För att återställa alla tider, välj Arkiv Återställ alla tider

#### Skrivbordsföljning

Problem: Du har två huvudprojekt som du byter mellan varje dag. För att hjälpa till att organisera arbetet, har du projektfilerna för det första projektet på det första skrivbordet, och projektfilerna för det andra projektet på det andra skrivbordet.

Lösning: Koppla ihop aktiviteten för det första projektet med det första skrivbordet och aktiviteten för det andra projektet med det andra skrivbordet. När du byter från det andra skrivbordet till det första, stoppar &karm; automatiskt aktiviteten för det andra projektet, och startar aktiviteten för det första projektet.

För att koppla ihop en aktivitet med ett eller flera skrivbord, välj &Ctrl;E Aktivitet Redigera . Aktivera Automatisk följning och välj skrivbordet eller skrivborden som ska kopplas ihop med aktiviteten. När något av de valda skrivborden visas, börjar &karm; automatiskt logga tid för aktiviteten efter en kort fördröjning.

#### Upptäckt inaktivitet

Problem: Du slutar arbetet tidigt på fredag för att göra ett ärende och glömmer att stoppa tidtagningen. När du kommer tillbaka på måndag, pågår tidtagningen fortfarande.

Lösning: Aktivera upptäckt inaktivitet.

&karm; kan ställas in att detektera när musen och tangentbordet är inaktiva. Om musen och tangentbordet är inaktiva längre än angivet antal minuter, visar &karm; följande dialogruta:

Upptäckt inaktivitet i &karm; &karm;s dialogruta Upptäckt inaktivitet

Återgå och stanna

- Subtrahera storleken på inaktiv tid från alla aktiva tidtagare och stoppa dem.

  Du arbetade inte med uppgifterna medan datorn var inaktiv, och du gör det fortfarande inte.

Återgå och fortsätt

- Subtrahera storleken på inaktiv tid från alla aktiva tidtagare men låt dem fortsätta att köra.

  Du arbetade inte med uppgifterna medan datorn var inaktiv, men du gör det nu.

Återuppta tidtagning

- Lägg till inaktiv tid för alla aktiva tidtagare och låt dem fortsätta att köra.

  Du arbetade med uppgifterna medan datorn var inaktiv, och den är det fortfarande.

### Rapportering

&karm; tillhandahåller tre sätt att rapportera tiden du har loggat. Du kan skicka sessions- och totaltider till skrivaren, kopiera totaltider till klippbordet eller kopiera tidshistoriken till klippbordet.

#### Skriv ut totalvärden

För att skapa totalrapporten för skrivaren, välj &Ctrl;P Arkiv Skriv ut . Det skapar en rapport med tre kolumner för hela aktivitetslistan. Den första kolumnen är aktivitetens namn, den andra är Total sessionstid och den tredje är Total tid.

#### Klipp ut totalvärden

För att skapa en rapport med totalvärden på klippbordet, välj &Ctrl;C Arkiv Kopiera totalvärden till klippbordet .

Rapporten skapas för aktiviteten som för närvarande är markerad, och alla dess delaktiviteter. Om nuvarande aktivitet är en toppnivåaktivitet, frågar &karm; om du vill skapa rapporten för nuvarande aktivitet och dess delaktiviteter eller för hela aktivitetslistan.

&karm; Kopiera denna aktivitet &karm;s dialogruta Kopiera denna aktivitet

När rapporten väl har skapats, öppna Kedit eller någon annan texteditor och klistra in rapportens data.

    Totalt aktiviteter
    2004-07-10 02:26

       Tid    Aktivitet
    ----------------------------------------------
      9:14    kde
       9:14    karm
        1:08    felrättning
        0:00    arkivera ändringar
       0:00    promotion
       0:00    webbsaker
    ----------------------------------------------
      9:14 Totalt

Den första kolumnen är Totaltiden och den är indenterad (som aktivitetsnamnen) för att ange förhållandet mellan aktiviteter och delaktiviteter. Tiden som rapporteras innefattar delaktiviteternas tider.

#### Klipp ut historik

För att skapa en rapport med totalvärden på klippbordet, välj &Ctrl;&Alt;C Arkiv Kopiera historik till klippbordet .

Du måste aktivera alternativet Logga historik under Inställningar Anpassa Karm . Annars håller &karm; bara reda på totaltider och inte den detaljerade aktivitetshistoriken.

Rapporten skapas för aktiviteten som för närvarande är markerad, och alla dess delaktiviteter. I motsats till totalrapporten, ger den här rapporten inte möjlighet att rapportera hela aktivitetslistan. Du kan bara rapportera den nuvarande aktiviteten och alla dess delaktiviteter.

När du väljer historikrapport, ber &karm; dig först att skriva in datumintervall för rapporten:

&karm;s skriv in datumintervall &karm;s skriv in datumintervall

Efter att ha skrivit in ett datumintervall, öppna Kedit eller någon annan texteditor och klistra in rapportens data.

    Aktivitetshistorik
    Fån torsdagen den 1 juli 2004 till måndagen den 12 juli 2004
    Utskriven den: 2004-07-12 17:18

                                   Vecka under måndagen den 05 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 funktionsplan
                  1:08                           1:08   felrättning
                                                 0:00   arkivera ändringar
                                                 0:00  promotion
                                                 0:00  webbsaker
    -------------------------------------------------------------------------
                  2:30  1:46  3:14  1:44         9:14 Totalt

Aktivitetshistoriken summeras för varje dag och vecka, grupperad per vecka. De första sju kolumnerna är måndag till söndag. Den åttonde kolumnen är totaltiden för veckan och den nionde kolumnen är aktivitetsnamnet. Aktivitetsnamnen är indenterade för att ange förhållandet mellan aktiviteter och delaktiviteter.

### Andra system

#### Korganizer

&karm;, som Korganizer och Apples iCal, använder industristandardformatet iCalendar för data. &karm; kan läsa och skriva att-göra-listor som skapas av dessa två program.

Om både &karm; och Korganizer har samma fil öppen, och du redigerar filen med Korganizer, riskerar du att förlora data. För att vara på säkra sidan, redigera bara filen antingen med det ena programmet eller med det andra.

#### Planner

Som ett typiskt användarfall, kan du vilja planera ett projekt med projekthanteringsverktyget Imendio Planner (från planner.imendio.org) och importera dess aktiviteter till &karm;, för att få dem på industristandard-formatet iCalendar. När du har gjort det kan du schemalägga aktiviteterna i Korganizer och hålla reda på tiden du arbetar med dem i &karm;. Det är ett sätt att kontrollera om projektet håller sig innanför budget- och tidsramarna.

#### &DCOP;

&DCOP; är mekanismen som KDE-program använder för att kommunicera med varandra. Ett KDE-program tillhandahåller en lista med funktioner som andra program (till exempel ett Bash-skript) kan använda.

##### Bash-skript som ekar &karm;s version

    DCOPID=`dcop | grep karm`
            if [ $DCOPID ]
            then
                    VERS=`dcop $DCOPID KarmDCOPIface version`
                    echo "&karm; version är $VERS"
            else
                    echo "&karm; kör inte"
            fi

&karm;s nuvarande &DCOP;-gränssnitt används för närvarande i huvudsak för automatiserade tester, så det är mycket begränsat. För den fullständiga definitionen av gränssnittet, se appendix &DCOP;-gränssnitt.

För att se det fullständiga &DCOP;-gränssnittet för versionen av &karm; som är installerad på ditt system, kör följande Bash-skript.

##### Visa lista med &karm;s &DCOP;-gränssnitt på terminalen

    DCOPID=`dcop | grep karm`
            if [ $DCOPID ]
            then
                    dcop $DCOPID KarmDCOPIface
            else
                    echo "&karm; kör inte"
            fi

#### Exportera totalvärden till CSV

&karm; kan både exportera totalvärden och historik till ett filformat avgränsat med kommatecken. För att exportera totalvärden, välj Arkiv Importera och exportera Exportera till CSV-fil... , så visar &karm; följande exportdialogruta:

&karm;s CSV-exportdialogruta &karm;s CSV-exportdialogruta

Skriv in filen du vill exportera data till, och ändra övriga förvalda värden i dialogrutan om det behövs. Observera att datumintervallet är inaktiverat, eftersom du exporterar totaltider, inte historikdata. Klicka på Exportera, så exporterar &karm; totaltiderna för alla aktiviteter till filen du valde.

Här är ett exempel på utmatningsformatet:

    "kde",,,,,0.00,0.00,6.88,9.83
    ,"karm",,,,6.88,8.70,6.88,9.83
    ,,"3.2 funktionsplan",,,0.00,0.00,0.00,0.00
    ,,"felrättning",,,0.00,1.13,0.00,1.13
    ,,"arkivera ändringar - översättningar",,,0.00,0.00,0.00,0.00
    ,,"tidrapport",,,0.00,0.00,0.00,0.00
    ,"kopete",,,,0.00,0.00,0.00,0.00
    ,"promotion",,,,0.00,0.00,0.00,0.00
    ,"websaker",,,,0.00,0.00,0.00,0.00

Toppnivåaktiviteter skrivs ut i första kolumnen, delaktiviteter i den andra och så vidare. Tidsdata skrivs ut efter maximalt aktivitetsdjup (fem i exemplet). Den första tidskolumnen är Sessionstid, den andra är Tid, den tredje är Total sessionstid och den fjärde är Total tid.

#### Exportera historik till CSV

För att exportera aktivitetshistorik, välj Arkiv Importera och exportera Exportera historik till CSV-fil... , så visar &karm; samma exportdialogruta som visas ovan.

Skriv in filen du vill exportera data till, och välj det datumintervall du vill ha aktivitetshistorik för. Andra övriga förvalda värden i dialogrutan om det behövs. Klicka på Exportera, så exporterar &karm; aktivitetshistoriken för alla aktiviteter till filen du valde.

Här är ett exempel på utmatningsformatet:

    Aktivitetshistorik
    Från tisdagen den 06 juli 2004 till tisdagen den 13 juli 2004
    Utskriven 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 funktionsplan"
    ,1.13,,,,,,,1.13,,,"felrättning"
    ,,,,,,,,0.00,,,"arkivera ändringar - översättningar"
    ,,,,,,,,0.00,,,"tidrapport"
    ,,,,,,,,0.00,,"kopete"
    ,,,,,,,,0.00,,"promotion"
    ,,,,,,,,0.00,,"webbsaker"

De tre raderna anger när rapporten skapades och för vilket datumintervall. Den fjärde raden är en lista med datum i datumintervallet, åtskilda med kommatecken, på ISO 8601-format (ÅÅÅÅ-MM-DD). Alla följande rader listar tiden som loggats för varje aktivitet. Den sista numeriska kolumnen är radens totaltid för alla dagar. Aktivitetsnamnet skrivs ut efter totaltidskolumnen, och är indenterad för att ange förhållandet mellan aktiviteter och delaktiviteter. Namn på toppnivåaktiviteter visas i den första kolumnen efter totaltiderna.

## &karm;s gränssnitt

Huvudfönstret för &karm; har följande delar: menyrad, verktygsrad, aktivitets/tidsfönster och en statusrad.

&karm;s fönster &karm;s fönster

### Aktivitets/tidsfönstret

De olika aktiviteterna visas i det här fönstret, tillsammans med tiden som har gått åt för var och en i den nuvarande sessionen och totalt. Aktiviteter som tidsmäts har en liten klockikon intill sessionstiden.

Delaktiviteter kan skapas för varje aktivitet. Genom att klicka på plus- och minustecknen framför huvudaktiviteten visas eller döljs motsvarande delaktiviteter. Den totala tiden som gått åt för en aktivitet innehåller tiderna för dess delaktiviteter samt dess egen åtgångna tid.

### &karm;s menyrad

#### Menyn Arkiv

&Ctrl;S Arkiv Spara

- Sparar de nuvarande aktiviteterna och delaktiviteterna och deras totala tid.

&Ctrl;P Arkiv Skriv ut

- Skriver ut &karm;s fönster

Arkiv Starta nysession

- Återställer alla sessionstider till noll

Arkiv Återställ alla tider

- Återställer alla tider till noll

Arkiv Importera och exportera Importera gammal flat fil...

- Importera &karm;-filer sparade med gammalt format (&karm; använder nu filer med iCalendar-format för att spara).

Arkiv Importera och exportera Importera aktiviteter från Planner...

- Importera ett Imendio Planner-projekt (se planner.imendio.org). Alla aktiviteter, delaktiviteter och deras "färdig" markering importeras från en .planner-fil. Du kan importera dem som en delaktivitet genom att skapa en delaktivitet, låta den vara markerad, och därefter importera.

Arkiv Importera och exportera Exportera till CSV-fil...

- Exporterar Total sessionstid, Sessionstid, Tid och Total tid till en textfil.

Arkiv Importera och exportera Exportera historik till CSV-fil...

- Exportera aktivitetshistoriken till en textfil.

&Ctrl;C Arkiv Kopiera totalvärden till klippbordet

- Kopierar aktuell total tid för en aktivitet eller för alla aktiviteter till &kde;:s klippbord.

&Ctrl;&Alt;C Arkiv Kopiera historik till klippbordet

- Kopierar dagliga tider för en given period till &kde;:s klippbord

&Ctrl;Q Arkiv Avsluta

- Stänger &karm;

#### Menyn Klocka

S Klocka Starta

- Startar tidmätning för den markerade aktiviteten

Klocka Stoppa

- Stannar tidmätning för den markerade aktiviteten

&Esc; Klocka Stoppa all tidtagning

- Stoppar tidmätning för alla aktiviteter

#### Menyn Aktivitet

&Ctrl;N Aktivitet Ny

- Lägger till en ny aktivitet

&Ctrl;&Alt;N Aktivitet Ny delaktivitet

- Lägger till en ny delaktivitet till den markerade aktiviteten

Del Aktivitet Ta bort

- Tar bort den markerade aktiviteten eller delaktiviteten

&Ctrl;E Aktivitet Redigera

- Ändrar namn eller total tid för den nuvarande aktiviteten

  Det finns två alternativ för att ändra tiden: Redigera absolut, där sessionstiden och totala tiden kan ändras separat, och Redigera relativ, där en viss ändring läggs till eller tas bort från både sessionstiden och den totala tiden.

  Alternativet för automatisk följning gör det möjligt att automatiskt starta och stoppa när du byter till eller från ett visst &kde;-skrivbord.

#### Menyn Inställningar

Inställningar Anpassa genvägar

- Öppnar en dialogruta för att låta användaren anpassa snabbtangenter

Inställningar Anpassa KArm

- Öppnar en dialogruta för att låta användaren anpassa &karm;

  Dialogrutan har tre flikrutor: Uppträdande, som låter dig ange varning vid ingen aktivitet och ett varningsmeddelande när du tar bort en aktivitetsuppsättning, Skärm, som ställer in fälten som visas i huvudfönstret, och Lagring, som ställer in platsen för filen att spara i, om spara automatiskt är aktiverat och intervallet för spara automatiskt.

#### Menyn Hjälp

&help.menu.documentation;

### Verktygsraden

Verktygsraden innehåller ikoner för följande kommandon:

(Alla beter sig på samma sätt som menykommandot.)

- Starta

- Stanna

- Ny

- Ny delaktivitet

- Ta bort

- Redigera

### Statusraden

Rapporterar den totala förflutna tiden för en session.

## Tack till och licens

&karm;

Program copyright:

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

- 2001-2002 Tomas Pospisek tpo_deb@sourcepole.ch

- 2003-2004 Mark Bucciarellimark@hubcapconsulting.com

Bidragsgivare

- 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; inspirerades av Harald Tveit Alvestrands mycket användbara verktyg som heter titrax, vars enda fel är att det är baserat på Xt-verktygslådan.

Dokumentation copyright 2000-2004 Jonathan Singer jsinger@leeta.net och Sirtaj Singh Kang taj@kde.org.

&underFDL; &underGPL;
pågående aktivitet

En aktivitet som har tidtagning igång.

&DCOP;

Protokollet för kommunikation mellan processer som används i KDE. Kort för Desktop COmmunication Protocol.

skrivbord

GNU/Linux, FreeBSD och andra system som kör X-windows har flera skrivbord. Du har typiskt fyra olika skrivbord installerade som standard. Varje skrivbord kan visa sin egen uppsättning med program och filer. När KDE först startas, är skrivbordet du ser det första. Om du trycker på &Alt;F2, visas det andra skrivbordet. Tryck på &Alt;F1 går tillbaka till det första.

historik

Om &karm; är inställd för att logga historik, lagras varje start och stopp av tidtagning som en händelse. Historiken rensas aldrig när tider återställs, utan förblir i filen till aktiviteten tas bort.

session

En användardefinierad startpunkt för sessionstider. En ny session börjar när du väljer Arkiv Starta ny session . Sessionsdata sparas inte när du skapar en ny session.

Sessionstid

Tiden som använts för aktiviteten sedan sessionen började.

systembricka

Systembrickan finns i raden som (normalt) visas längst ner på skärmen. På den här systembrickan finns &karm;s ikon längst till höger.

toppnivåaktivitet

En aktivitet utan överliggande aktiviteter.

Total sessionstid

Tiden som använts för aktiviteten och alla dess delaktiviteter sedan sessionen började.

Tid

Tiden som använts för aktiviteten sedan all tidtagning återställdes.

Total tid

Tiden som använts för aktiviteten och alla dess delaktiviteter sedan all tidtagning återställdes.

## Installation

### Hur man skaffar &karm;

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

## &DCOP;-gränssnitt

version

version

Returnerar &karm;s version.

    QString version()

#### Beskrivning

`version()` är ett &DCOP;-anrop som returnerar &karm;s versionsnummer, till exempel 1.5.0. Versionsnumret returneras som en sträng med det typiska GNU-formatet huvudversion.delversion.felrättning.

quit

quit

Returnerar &karm;s avslutning.

    QString quit()

#### Beskrivning

`quit()` är ett &DCOP;-anrop som tillhandahåller ett sätt för ett externt program att avsluta &karm; på ett snyggt sätt.

hastodo

hastodo

Kontrollera om en aktivitet på toppnivå finns.

    QString hastodo(QString aktivitetsnamn)

#### Parametrar

`aktivitetsnamn`

- Namnet på aktiviteten att leta efter.

#### Beskrivning

`hastodo(QString taskname)` är ett &DCOP;-anrop som letar efter en uppgift med angivet namn. Om den hittas, returneras iCalendar-användarid som identifierar uppgiften. Om den inte hittas, returneras en tom sträng.

Filen som söks igenom är iCalendar-filen som &karm; för närvarande har öppen. Alla uppgiftsträd söks igenom, inte bara uppgifter på översta nivån. Om mer än en uppgift har ett matchande namn, returneras den första som hittas.

addtodo

addtodo

Lägg till en ny aktivitet.

    QString addtodo(QString aktivitetsnamn)

#### Parametrar

`aktivitetsnamn`

- Namnet på den nya aktiviteten.

#### Beskrivning

`addtodo(QString todoname)` är en &DCOP;-funktion som lägger till en ny uppgift på översta nivån i nuvarande lagringsobjekt. Den nya uppgiftens användarid returneras.

&documentation.index;