CALCURSE - textbasierter Terminkalender

Abstract

This manual describes calcurse functionnalities, and how to use them. The installation from source is first described, together with the available command line arguments. The user interface is then presented, with all of the customizable options that change calcurse behavior. Last, bug reporting procedure is explained, as well as the way one can contribute to calcurse development.

Inhaltsverzeichnis

1. Einleitung

calcurse ist ein textbasierender Kalender, der Ihnen bei der Organisation von Ereignissen, Terminen und täglichen Aufgaben hilft. Ein konfigurierbares Notitzsystem erinnert Benutzer an bevorstehende Termine. Die curses basierende Benutzeroberflache kann auf eigene die Bedürfnisse angepaßt werden. Alle Programmbefehle sind in einem online Hilfesystem dokumentiert.

2. Überblick

2.1 Anlass

Nachdem ich mein Diplom in Astrophysik absolviert hatte, kam mir die Idee dieses Programm zu schreiben. Alles begann etwas unorganisiert zu werden. Ein Programm, dass mir bei meiner Terminplanung etwas hilft, war wirklich vonnöten. ;)

Ich mag Programme mit Textinterfaces, weil sie einfach, schnell, portabel und effizient sind. Also dachte ich darüber nach ein Programm mit textorientiertem Benutzer-Interface zu entwickeln. Darüber hinaus wollte ich meine Kenntnisse in der Programmiersprache C erweitern. Im Grundstudium kam ich mit C erstmals in Kontakt. Ich denke es ist eine gute Idee ein solches Projekt zu beginnen und dabei meine Kenntnisse in C zu erweitern!

Mein Diplom habe ich nun absolviert, calcurse ist aber noch immer nicht fertig. Nach wie vor entwickle ich dieses Programm weiter, in der Hoffnung, dass es für andere von Nutzen sein wird. Also hier ist es...

Doch warum nenne ich es 'calcurse'? Nun, es ist einfach zusammengesetzt aus den Wörtern 'CALendar' und 'nCurses', dem Namen der Bibliothek die für das Benutzer-Interface verwendet wird.

2.2 Wichtige Eigenschaften

Calcurse ist portabel und setzt sich zum Ziel klein, schnell und sicher zu sein. Es ist auf einer Konsole oder einem Terminal zu verwenden, entweder lokal oder auf einem entfernten System mithilfe einer ssh-Verbindung (oder Ähnlichem).

Calcurse kann in zwei unterschiedlichen Modi gestartet werden: Im interaktiven und im nicht-interaktiven Modus. Der erste Modus erzeugt Dank des textbasierten Interfaces die Ansicht eines eigenen persönlichen Terminkalenders. Mit dem zweiten Modus ist es möglich sich ein Erinnerungstool (Reminder) zu erstellen, wenn calcurse mit den entsprechenden Argumenten in 'cron tab' oder einem 'init script' eingebunden wird.

Darüber hinaus ist calcurse für Benutzer erstellt worden, mit der Absicht so benutzerfreundlich wie möglich zu sein. Das bedeutet, dass eine komplette Onlinehilfe im Programm zu Verfügung steht, sowie alle mögliche Aktionen jederzeit in einer Statuszeile ersichtlich sind. Das Benutzer-Interface ist ebenfalls einstellbar. Ebenso kann man verschiedene Textfarben und Layouts wählen. Key bindings are also configurable, to fit everyone's needs. Ein konfigurierbares Notizsystem erinnert den Benutzer an bevorstehende Termine. The reminders are sent even if the user's interface is not running, as calcurse is able to run in background.

3. Installation

3.1 Voraussetzungen

3.1.1 ncurses Bibliothek

Calcurse benötigt einen C-Compiler wie etwa cc oder gcc. Ferner wird die ncurses-Bibliothek benötigt, die jedoch auf den meisten Unix-Systemen verfügbar sein sollte. Falls nicht, können Sie sie von folgender URL herunter laden:

http://ftp.gnu.org/pub/gnu/ncurses/

Note: It is also possible to link calcurse against the ncursesw library (ncurses with support for unicode). However, UTF-8 is not yet supported by calcurse.

3.1.2 gettext Bibliothek

calcurse unterstützt die Internationalisierung (künftig i18n) durch gettext. Das bedeutet, dass calcurse mehrsprachige Mitteilungen erzeugen kann, wenn es mit der entsprechenden Sprachunterstützung kompiliert wurde (z.B. NLS).

Dennoch, NLS ist optional und wenn keine mehrsprachigen Mitteilungen gewünscht sind, kann diese Eigenschaft abgestellt werden. Rufen Sie hierzu einfach das configure Skript mit der Option --disable-nls auf (siehe Abschnitt Installationsprozess). Um zu überprüfen, ob gettext auf dem System installiert ist, kann man nach der libintl.h Datei suchen:

locate libintl.h

Wurde diese Datei nicht gefunden, kann gettext von folgender URL herunter geladen werden:

http://ftp.gnu.org/pub/gnu/gettext/

Beachte: Auch wenn libintl.h auf dem System gefunden wurde, kann es erforderlich sein den Pfad dieser Datei während des Installationsprozesses anzugeben. Die entsprechende Option für das configure Skript lautet dann --with-libintl-prefix. Das configure Skript wird natürlich vorzeitig abbrechen, wenn die dazugehörige Bibliothek nicht gefunden wurde.

3.2 Installationsprozess

Als erstes müssen die Dateien entpackt werden:

tar zxvf calcurse-2.8.tar.gz

Ist diese Voraussetzung erfüllt und das Archiv entpackt, sind nur noch die drei üblichen Schritte erforderlich:

  1. ./configure
  2. make
  3. make install (mit Root-Rechten)

Rufen Sie ./configure --help auf, um die verfügbaren Optionen aufgelistet zu bekommen.

4. calcurse Grundlagen

4.1 Programmaufruf

4.1.1 Programmargumente

Calcurse kann mit den folgenden Optionen aufgerufen werden. Es werden sowohl kurze als auch lange Optionsangaben unterstützt.

-a, --appointment
Gibt die Termine des heutigen Tags aus.

Beachte: Die Kalender-Datei, aus der die Termine gelesen werden sollen, kann mit mit Hilfe der '-c' Option angegeben werden.

-c <file>, --calendar <file>
Gibt die zu lesende Kalender-Datei an. Der Standardkalender ist ~/.calcurse/apts (beachte auch Abschnitt: calcurse Dateien).
-d <date|num>, --day <date|num>
Gibt die Termine eines angegebenen Datums oder alle Termine der anzugebenden nachfolgenden Tage aus. Somit sind zwei Formate möglich:
  • Datum: (possible formats described below).
  • Anzahl der Tage: 'n'.
Im ersten Fall wird eine Liste mit allen Terminen des angegebenen Datums ausgegeben. Der zweite Fall listet alle folgenden Termine auf, die in den nächsten 'n' Tagen zu erledigen sind. Beispiel: Die Eingabe calcurse -d 3 gibt alle Termine des heutigen und der beiden folgenden Tage aus.
Possible formats for specifying the date are defined inside the general configuration menu (see General options), using the input_datefmt variable.

Note: as for the '-a' flag, the calendar from which to read the appointments can be specified using the '-c' flag.

-D <dir>, --directory <dir>
Specify the data directory to use. This option is incompatible with -c. If not specified, the default directory is '~/.calcurse/'.
-h, --help
Gibt eine Hilfe zu den unterstützten Optionen aus.
-i <file>, --import <file>
Import the icalendar data contained in file.
-n, --next
Gibt den Termin aus, der innerhalb der kommenden 24 Stunden als nächstes stattfindet. Die dargestellte Zeitangabe weist darauf hin, in wie viel Stunden und Minuten der Termin beginnen wird.

Beachte: Die Kalender-Datei, aus der die Termine gelesen werden sollen, kann mit mit Hilfe der '-c' Option angegeben werden.

-N, --note
When used with the '-a' or '-t' flag, also print note content if one is associated with the displayed item.
-r[num], --range[=num]
Print events and appointments for the num number of days and exit. If no num is given, a range of 1 day is considered.
-s[date], --startday[=date]
Print events and appointments from date and exit. If no date is given, the current day is considered.
-S<regex>, --search=<regex>
When used with the '-a', '-d', '-r', '-s', or '-t' flag, print only the items having a description that matches the given regular expression.
--status
Display the status of running instances of calcurse. If calcurse is running, this will tell if the interactive mode was launched or if calcurse is running in background. The process pid will also be indicated.
-t[num], --todo[=num]
Gibt die 'todo' Liste aus. Wird die optionale Angabe num übergeben, werden nur diejenigen Aufgaben angezeigt, denen die Prioriät num zugewiesen wurde.
The priority number must be between 1 (highest) and 9 (lowest). It is also possible to specify '0' for the priority, in which case only completed tasks will be shown.

-v, --version
Gibt die aktuelle Version von Calcurse aus.
-x[format], --export[=format]
Export user data to specified format. Events, appointments and todos are converted and echoed to stdout. Two possible formats are available: ical and pcal (see section Links below). If the optional argument format is not given, ical format is selected by default.

Beachte: leiten Sie die Ausgabe in eine Datei, etwa wie im folgenden Beispiel: $ calcurse --export > my_data.dat

4.1.2 Umgebungsvariable für i18n

calcurse kann mit Unterstützung für verschiedene Sprachen kompiliert werden (siehe gettext Bibliothek). Um Meldungen in anderen Sprachen zu erhalten, sollte zunächst geprüft werden, ob die po/LINGUAS Datei verfügbar ist. Diese Datei zeigt alle verfügbaren Sprachen durch zweibuchstabige Kürzel an (beispielsweise steht fr für Französisch). Ist Ihre Muttersprache nicht aufgeführt, wäre es natürlich großartig, wenn Sie sich an der Übersetzung von calcurse in andere Sprachen beteiligen könnten (siehe Abschnitt Wie kann ich einen Beitrag leisten?).

Wird Ihre Sprache bereits unterstützt, können Sie calcurse mit dem folgenden Aufruf starten:

LC_ALL=fr_FR calcurse

wobei fr_FR der Name der gewünschten Spracheausgabe ist und durch das Kürzel Ihrer Sprache ersetzt werden kann.

Zusätzlich sollten Sie den verwendeten Zeichensatz angeben, da in einigen Fällen Sonderzeichen wie etwa Akzente und Umlaute nicht korrekt dargestellt werden. Auf den der entsprechende Sprache gewünschten Zeichensatz wird am Anfang der po-Datei hingewiesen. Der Datei fr.po können Sie beispielsweise entnehmen, dass der Zeichensatz iso-8859-1 verwendet wird. Sie könnten calcurse folgendermaßen aufrufen:

LC_ALL=fr_FR.ISO8859-1 calcurse

4.1.3 Other environment variables

The following environment variables affect the way calcurse operates:

VISUAL
Specifies the external editor to use for writing notes.
EDITOR
If the VISUAL environment variable is not set, then EDITOR will be used as the default external editor. If none of those variables are set, then /usr/bin/vi is used instead.
PAGER
Specifies the default viewer to be used for reading notes. If this variable is not set, then /usr/bin/less is used.

4.2 Benutzer-Interface

4.2.1 Nicht interaktiver Modus

Wird calcurse mit den Optionen: -a, -d, -h, -n, -t, -v, -x gestartet, wird das Programm im nicht-interaktiven Modus ausgeführt. Das bedeutet, dass die gewünschten Informationen ausgegeben werden und das Programm anschließend sofort wieder beendet wird.

Durch das Einbinden von calcurse --todo --appointment in eine init config Datei ist es beispielsweise möglich, sich seine zu erledigenden Aufgaben und alle Termine des heutigen Tages beim Logon anzeigen zu lassen.

4.2.2 Interaktiver Modus

Note: Key bindings that are indicated in this manual correspond to the default ones, defined when calcurse is launched for the first time. If those key bindings do not suit user's needs, it is possible to change them within the keys configuration menu (see key bindings).

Wird keine, oder nur Option -c angegeben, startet calcurse im interaktiven Modus. In diesem Modus erhält man ein Interface mit drei unterschiedlichen Panels, einer Benachrichtigungszeile, sowie einer Status-Zeile (siehe unten). Die einzelnen Panels lassen sich durch die 'TAB'-Taste ansteuern.


      Termin-Panel---.                                   .---Kalender-Panel
                     |                                   |
                     v                                   v
 +------------------------------------++----------------------------+
 |          Termine                   ||          Kalender          |
 |------------------------------------||----------------------------|
 |                 (|)  6. April 2006 ||         April 2006         |
 |                                    || Mo  Di  Mi  Do  Fr  Sa  So |
 |                                    ||                      1   2 |
 |                                    ||  3   4   5   6   7   8   9 |
 |                                    || 10  11  12  13  14  15  16 |
 |                                    || 17  18  19  20  21  22  23 |
 |                                    || 24  25  26  27  28  29  30 |
 |                                    ||                            |
 |                                    |+----------------------------+
 |                                    |+----------------------------+
 |                                    ||          Aufgaben          | todo-
 |                                    ||----------------------------| Panel
 |                                    ||                            |   |
 |                                    ||                            |   |
 |                                    ||                            |<--.
 |                                    ||                            |
 +------------------------------------++----------------------------+
 |---[ So 2006-10-22 | 10:11:43 ]---(apts)----> 01:20 :: lunch  <---|<--.
 +------------------------------------------------------------------+ Benachrichtigungszeile
 | ? Hilfe     S Speichern H/L -/+1 Tag    Tab ändere Ansicht       |
 | Q Beenden   G Gehe zu   J/K -/+1 Woche   C Einstellung           |<-.
 +------------------------------------------------------------------+  |
                                                                       |
                                                                 Statuszeile

Das Kalender-Panel hebt den gewünschten Tag farblich hervor, während das Termin-Panel die Liste mit Terminen des angesteuerten Tags anzeigt. Das todo-Panel dagegen zeigt eine Liste mit den zu erledigenden Aufgaben, die keinem bestimmten Tage zugeordnet sind.

Depending on the selected view, the calendar could either display a monthly (default as shown in previous figure) or weekly view. The weekly view would look like the following:


+------------------------------------+
|              Calendar              |
|----------------------------(# 13)--|
|    Mon Tue Wed Thu Fri Sat Sun     |
|     29  30  31  01  02  03  04     |
|                               <----+--  slice 1: 00:00 to 04:00 AM
|       --  --  --  --  --  --       |
|                               <----+--  slice 2: 04:00 to 08:00 AM
|       --  --  --  --  --  --       |
|                               <----+--  slice 3: 08:00 to 12:00 AM
|    -  --  --  --  --  --  --  -  <-+--  midday
|                               <----+--  slice 4: 12:00 to 04:00 PM
|       --  --  --  --  --  --       |
|                               <----+--  slice 5: 04:00 to 08:00 PM
|       --  --  --  --  --  --       |
|                               <----+--  slice 6: 08:00 to 12:00 PM
+------------------------------------+

        

The current week number is displayed on the top-right side of the panel (# 13 meaning it is the 13th week of the year in the above example). The seven days of the current week are displayed in column. Each day is divided into slices of 4 hours each (6 slices in total, see figure above). A slice will appear in a different color if an appointment falls into the corresponding time-slot.

Im Termin-Panel kann man '(|)' Symbol vor das Datum setzen. Dies zeigt die aktuelle Mondfase. Je nach Mondfase können die folgenden Symbole erscheinen:

' |) ':
Halbmond, erste Hälfte
' (|) ':
Vollmond
' (| ':
Halbmond, letzte Hälfte
' | ':
Neumond
Kein Symbol:
die Mondfase ist keinem der oberen zuzuordnen

Die letzten beiden Zeilen des Interfaces zeigen die Status-Zeile, die über die möglichen Befehle und ihre entsprechenden Tasten informiert.

Direkt über der Statuszeile befindet sich die Benachrichtigungszeile, die von links nach rechts gesehen die folgenden Elemente anzeigt: Das aktuelle Datum, die aktuelle Uhrzeit, die momentan verwendete Kalenderdatei (im obigen Beispiel die standardmäßig verwendete Kalenderdatei apts [Vergleiche hierzu den folgenden Abschnitt]) und der nächste Termin, der in den kommenden 24 Stunden ansteht. Im Beispiel ist dies der Termin lunch, der in 1 Stunde und zwanzig Minuten beginnt.

Beachte: Einige Handlungen, wie beispielsweise das Verändern oder Hinzufügen eines Termins, benötigen Texteingaben, die mithilfe des eingebauten Eingabeeditors eingegeben werden.

Geht eine Zeile über die Bildschirmzeile hinaus, wird dies innerhalb des Editors durch die Zeichen '>', '*', und '<' dargestellt. Dadurch wird in der letzten Spalten darauf hingewiesen, dass sich vor, vor und hinter, beziehungsweise nur hinter der momentanten Position weiterer Text befindet. Gegebenenfalls wird Zeile horizontal gescrollt.

Darüberhinaus sind einigen Editierfunktionen spezielle Tastenkürzel zugewiesen, die in der folgenden Übersicht zusammengefasst sind. Hierbei steht '^' für die Taste 'Strg' beziehungsweise 'Ctrl':

^a:
Positioniert den Cursor an den Anfang der Eingabezeile
^b:
Bewegt den Cursor rückwärts
^d:
Löscht das folgende Zeichen
^e:
Positioniert den Cursor an das Ende der Eingabezeile
^h:
Löscht das vorhergehende Zeichen
^k:
Löscht die Eingabe von der aktuellen Cursorposition bis an das Zeileende
ESCAPE:
Bricht die Bearbeitung ab

4.3 Background mode

When the daemon mode is enabled in the notification configuration menu (see Notify-bar settings), calcurse will stay in background when the user interface is not running. In background mode, calcurse checks for upcoming appointments and runs the user-defined notification command when necessary. When the user interface is started again, the daemon automatically stops.

calcurse background activity can be logged (set the notify-daemon_log variable in the notification configuration menu), and in that case, information about the daemon start and stop time, reminders' command launch time, signals received... will be written in the daemon.log file (see section files).

Using the --status command line option (see section Command line arguments), one can know if calcurse is currently running in background or not. If the daemon is running, a message like the following one will be displayed (the pid of the daemon process will be shown):

calcurse is running in background (pid 14536)

Note: To stop the daemon, just send the TERM signal to it, using a command such as: 'kill daemon_pid', where daemon_pid is the process id of the daemon (14536 in the above example).

4.4 calcurse Dateien

Die folgende Verzeichnisstruktur wird im $HOME-Verzeichnis angelegt,

(or in the directory you specified with the -D option)
wenn calcurse das erste Mal gestartet wird:

$HOME/.calcurse/
           |___notes/
           |___conf
           |___keys
           |___apts
           |___todo
notes/:
this subdirectory contains descriptions of the notes which are attached to appointments, events or todos. One text file is created per note, whose name is built using mkstemp(3) and should be unique, but with no relation with the corresponding item's description.
conf:
Datei enthält die Informationen zur Benutzerkonfiguration.
keys:
this file contains the user-defined key bindings
apts:
Datei enthält alle Termine.
todo:
Datei enthält die todo-Liste.

Note: If the logging of calcurse daemon activity was set in the notification configuration menu, the extra file daemon.log will appear in calcurse data directory. This file contains logs about calcurse activity when running in background.

4.5 Import/Export capabilities

The import and export capabilities offered by calcurse are described below.

4.5.1 Import

Data in icalendar format as described in the rfc2445 specification (see links section below) can be imported into calcurse. Calcurse ical parser is based on version 2.0 of this specification, but for now on, only a subset of it is supported.

The following icalendar properties are handled by calcurse:

The icalendar "DESCRIPTION" property will be converted into calcurse format by adding a note to the item. If a "VALARM" property is found, the item will be flagged as important and the user will get a notification (this is only applicable to appointments).

Here are the properties that are not implemented:

4.5.2 Export

Two possible export formats are available: ical and pcal (see section Links below to find out about those formats).

4.6 Online Hilfe

Das integrierte Hilfe-System kann jederzeit mit '?' aufgerufen werden. Informationen über bestimmte Befehle können mit der entsprechenden Taste des Befehls aufgerufen werden.

5. Optionen

Sämtliche in calcurse veränderbaren Parameter lassen sich Konfigurationsmenü einstellen. Drücken Sie hierzu die Taste 'C'. Daraufhin erscheint ein Untermenü mit vier weiteren Wahlmöglichkeiten: Das erneute Betätigen von 'C' führt Sie zu den Farbeinstellungen und über 'L' gelangen Sie in ein Untermenü, in dem Sie die Anordnung der drei Panel ändern können. Drücken Sie 'G' um ins Auswahlmenü der allgemeinen Optionen zu gelangen. pressing 'K' opens the key bindings configuration menu. Zu guter Letzt können Sie die Einstellungen der Benachrichtigungszeile ändern, indem Sie die Taste 'N' betätigen.

5.1 Allgemeine Optionen

Die im Folgenden beschriebenen Optionen steuern calcurses allgemeines Verhalten.

automatisches_Speichern (Voreinstellung: ja)
Ist diese Option aktiviert, werden die Benutzerdaten automatisch beim Verlassen gespeichert.

warnung: Beim Verlassen werden keine Daten gespeichert, wenn automatisches_Speichern auf nein gesetzt wurde. Um Ihre Eingaben dennoch zu speichern, müssen Sie als Nutzer die Taste 'S' betätigen.

period>calcurse folgendermaßen aufrufen:

LC_ALL=fr_FR.ISO8859-1 calcurse

4.1.3 Other environment variables

The following environment variables affect the way calcurse operates:

VISUAL
Specifies the external editor to use for writing notes.
EDITOR
If the VISUAL environment variable is not set, then EDITOR will be used as the default external editor. If none of those variables are set, then /usr/bin/vi is used instead.
PAGER
Specifies the default viewer to be used for reading notes. If this variable is not set, then /usr/bin/less is used.

4.2 Benutzer-Interface

4.2.1 Nicht interaktiver Modus

Wird calcurse mit den Optionen: -a, -d, -h, -n, -t, -v, -x gestartet, wird das Programm im nicht-interaktiven Modus ausgeführt. Das bedeutet, dass die gewünschten Informationen ausgegeben werden und das Programm anschließend sofort wieder beendet wird.

Durch das Einbinden von calcurse --todo --appointment in eine init config Datei ist es beispielsweise möglich, sich seine zu erledigenden Aufgaben und alle Termine des heutigen Tages beim Logon anzeigen zu lassen.

4.2.2 Interaktiver Modus

Note: Key bindings that are indicated in this manual correspond to the default ones, defined when calcurse is launched for the first time. If those key bindings do not suit user's needs, it is possible to change them within the keys configuration menu (see key bindings).

Wird keine, oder nur Option -c angegeben, startet calcurse im interaktiven Modus. In diesem Modus erhält man ein Interface mit drei unterschiedlichen Panels, einer Benachrichtigungszeile, sowie einer Status-Zeile (siehe unten). Die einzelnen Panels lassen sich durch die 'TAB'-Taste ansteuern.


      Termin-Panel---.                                   .---Kalender-Panel
                     |                                   |
                     v                                   v
 +------------------------------------++----------------------------+
 |          Termine                   ||          Kalender          |
 |------------------------------------||----------------------------|
 |                 (|)  6. April 2006 ||         April 2006         |
 |                                    || Mo  Di  Mi  Do  Fr  Sa  So |
 |                                    ||                      1   2 |
 |                                    ||  3   4   5   6   7   8   9 |
 |                                    || 10  11  12  13  14  15  16 |
 |                                    || 17  18  19  20  21  22  23 |
 |                                    || 24  25  26  27  28  29  30 |
 |                                    ||                            |
 |                                    |+----------------------------+
 |                                    |+----------------------------+
 |                                    ||          Aufgaben          | todo-
 |                                    ||----------------------------| Panel
 |                                    ||                            |   |
 |                                    ||                            |   |
 |                                    ||                            |<--.
 |                                    ||                            |
 +------------------------------------++----------------------------+
 |---[ So 2006-10-22 | 10:11:43 ]---(apts)----> 01:20 :: lunch  <---|<--.
 +------------------------------------------------------------------+ Benachrichtigungszeile
 | ? Hilfe     S Speichern H/L -/+1 Tag    Tab ändere Ansicht       |
 | Q Beenden   G Gehe zu   J/K -/+1 Woche   C Einstellung           |<-.
 +------------------------------------------------------------------+  |
                                                                       |
                                                                 Statuszeile

Das Kalender-Panel hebt den gewünschten Tag farblich hervor, während das Termin-Panel die Liste mit Terminen des angesteuerten Tags anzeigt. Das todo-Panel dagegen zeigt eine Liste mit den zu erledigenden Aufgaben, die keinem bestimmten Tage zugeordnet sind.

Depending on the selected view, the calendar could either display a monthly (default as shown in previous figure) or weekly view. The weekly view would look like the following:


+------------------------------------+
|              Calendar              |
|----------------------------(# 13)--|
|    Mon Tue Wed Thu Fri Sat Sun     |
|     29  30  31  01  02  03  04     |
|                               <----+--  slice 1: 00:00 to 04:00 AM
|       --  --  --  --  --  --       |
|                               <----+--  slice 2: 04:00 to 08:00 AM
|       --  --  --  --  --  --       |
|                               <----+--  slice 3: 08:00 to 12:00 AM
|    -  --  --  --  --  --  --  -  <-+--  midday
|                               <----+--  slice 4: 12:00 to 04:00 PM
|       --  --  --  --  --  --       |
|                               <----+--  slice 5: 04:00 to 08:00 PM
|       --  --  --  --  --  --       |
|                               <----+--  slice 6: 08:00 to 12:00 PM
+------------------------------------+

        

The current week number is displayed on the top-right side of the panel (# 13 meaning it is the 13th week of the year in the above example). The seven days of the current week are displayed in column. Each day is divided into slices of 4 hours each (6 slices in total, see figure above). A slice will appear in a different color if an appointment falls into the corresponding time-slot.

Im Termin-Panel kann man '(|)' Symbol vor das Datum setzen. Dies zeigt die aktuelle Mondfase. Je nach Mondfase können die folgenden Symbole erscheinen:

' |) ':
Halbmond, erste Hälfte
' (|) ':
Vollmond
' (| ':
Halbmond, letzte Hälfte
' | ':
Neumond
Kein Symbol:
die Mondfase ist keinem der oberen zuzuordnen

Die letzten beiden Zeilen des Interfaces zeigen die Status-Zeile, die über die möglichen Befehle und ihre entsprechenden Tasten informiert.

Direkt über der Statuszeile befindet sich die Benachrichtigungszeile, die von links nach rechts gesehen die folgenden Elemente anzeigt: Das aktuelle Datum, die aktuelle Uhrzeit, die momentan verwendete Kalenderdatei (im obigen Beispiel die standardmäßig verwendete Kalenderdatei apts [Vergleiche hierzu den folgenden Abschnitt]) und der nächste Termin, der in den kommenden 24 Stunden ansteht. Im Beispiel ist dies der Termin lunch, der in 1 Stunde und zwanzig Minuten beginnt.

Beachte: Einige Handlungen, wie beispielsweise das Verändern oder Hinzufügen eines Termins, benötigen Texteingaben, die mithilfe des eingebauten Eingabeeditors eingegeben werden.

Geht eine Zeile über die Bildschirmzeile hinaus, wird dies innerhalb des Editors durch die Zeichen '>', '*', und '<' dargestellt. Dadurch wird in der letzten Spalten darauf hingewiesen, dass sich vor, vor und hinter, beziehungsweise nur hinter der momentanten Position weiterer Text befindet. Gegebenenfalls wird Zeile horizontal gescrollt.

Darüberhinaus sind einigen Editierfunktionen spezielle Tastenkürzel zugewiesen, die in der folgenden Übersicht zusammengefasst sind. Hierbei steht '^' für die Taste 'Strg' beziehungsweise 'Ctrl':

^a:
Positioniert den Cursor an den Anfang der Eingabezeile
^b:
Bewegt den Cursor rückwärts
^d:
Löscht das folgende Zeichen
^e:
Positioniert den Cursor an das Ende der Eingabezeile
^h:
Löscht das vorhergehende Zeichen
^k:
Löscht die Eingabe von der aktuellen Cursorposition bis an das Zeileende
ESCAPE:
Bricht die Bearbeitung ab

4.3 Background mode

When the daemon mode is enabled in the notification configuration menu (see Notify-bar settings), calcurse will stay in background when the user interface is not running. In background mode, calcurse checks for upcoming appointments and runs the user-defined notification command when necessary. When the user interface is started again, the daemon automatically stops.

calcurse background activity can be logged (set the notify-daemon_log variable in the notification configuration menu), and in that case, information about the daemon start and stop time, reminders' command launch time, signals received... will be written in the daemon.log file (see section files).

Using the --status command line option (see section Command line arguments), one can know if calcurse is currently running in background or not. If the daemon is running, a message like the following one will be displayed (the pid of the daemon process will be shown):

calcurse is running in background (pid 14536)

Note: To stop the daemon, just send the TERM signal to it, using a command such as: 'kill daemon_pid', where daemon_pid is the process id of the daemon (14536 in the above example).

4.4 calcurse Dateien

Die folgende Verzeichnisstruktur wird im $HOME-Verzeichnis angelegt,

(or in the directory you specified with the -D option)
wenn calcurse das erste Mal gestartet wird:

$HOME/.calcurse/
           |___notes/
           |___conf
           |___keys
           |___apts
           |___todo
notes/:
this subdirectory contains descriptions of the notes which are attached to appointments, events or todos. One text file is created per note, whose name is built using mkstemp(3) and should be unique, but with no relation with the corresponding item's description.
conf:
Datei enthält die Informationen zur Benutzerkonfiguration.
keys:
this file contains the user-defined key bindings
apts:
Datei enthält alle Termine.
todo:
Datei enthält die todo-Liste.

Note: If the logging of calcurse daemon activity was set in the notification configuration menu, the extra file daemon.log will appear in calcurse data directory. This file contains logs about calcurse activity when running in background.

4.5 Import/Export capabilities

The import and export capabilities offered by calcurse are described below.

4.5.1 Import

Data in icalendar format as described in the rfc2445 specification (see links section below) can be imported into calcurse. Calcurse ical parser is based on version 2.0 of this specification, but for now on, only a subset of it is supported.

The following icalendar properties are handled by calcurse:

  • VTODO items:
    "PRIORITY", "VALARM", "SUMMARY", "DESCRIPTION"
  • VEVENT items:
    "DTSTART", "DTEND", "DURATION", "RRULE", "EXDATE", "VALARM", "SUMMARY", "DESCRIPTION"

The icalendar "DESCRIPTION" property will be converted into calcurse format by adding a note to the item. If a "VALARM" property is found, the item will be flagged as important and the user will get a notification (this is only applicable to appointments).

Here are the properties that are not implemented:

  • negative time durations are not taken into account (item is skipped)
  • some recurence frequences are not recognize:
    "SECONDLY" / "MINUTELY" / "HOURLY"
  • some recurrence keywords are not recognized (all those starting with 'BY'):
    "BYSECOND" / "BYMINUTE" / "BYHOUR" / "BYDAY" / "BYMONTHDAY"
    "BYYEARDAY" / "BYWEEKNO" / "BYMONTH" / "BYSETPOS"
    plus "WKST"
  • the recurrence exception keyword "EXRULE" is not recognized
  • timezones are not taken into account

4.5.2 Export

Two possible export formats are available: ical and pcal (see section Links below to find out about those formats).

4.6 Online Hilfe

Das integrierte Hilfe-System kann jederzeit mit '?' aufgerufen werden. Informationen über bestimmte Befehle können mit der entsprechenden Taste des Befehls aufgerufen werden.

5. Optionen

Sämtliche in calcurse veränderbaren Parameter lassen sich Konfigurationsmenü einstellen. Drücken Sie hierzu die Taste 'C'. Daraufhin erscheint ein Untermenü mit vier weiteren Wahlmöglichkeiten: Das erneute Betätigen von 'C' führt Sie zu den Farbeinstellungen und über 'L' gelangen Sie in ein Untermenü, in dem Sie die Anordnung der drei Panel ändern können. Drücken Sie 'G' um ins Auswahlmenü der allgemeinen Optionen zu gelangen. pressing 'K' opens the key bindings configuration menu. Zu guter Letzt können Sie die Einstellungen der Benachrichtigungszeile ändern, indem Sie die Taste 'N' betätigen.

5.1 Allgemeine Optionen

Die im Folgenden beschriebenen Optionen steuern calcurses allgemeines Verhalten.

automatisches_Speichern (Voreinstellung: ja)
Ist diese Option aktiviert, werden die Benutzerdaten automatisch beim Verlassen gespeichert.

warnung: Beim Verlassen werden keine Daten gespeichert, wenn automatisches_Speichern auf nein gesetzt wurde. Um Ihre Eingaben dennoch zu speichern, müssen Sie als Nutzer die Taste 'S' betätigen.

period>calcurse folgendermaßen aufrufen:

LC_ALL=fr_FR.ISO8859-1 calcurse

4.1.3 Other environment variables

The following environment variables affect the way calcurse operates:

VISUAL
Specifies the external editor to use for writing notes.
EDITOR
If the VISUAL environment variable is not set, then EDITOR will be used as the default external editor. If none of those variables are set, then /usr/bin/vi is used instead.
PAGER
Specifies the default viewer to be used for reading notes. If this variable is not set, then /usr/bin/less is used.

4.2 Benutzer-Interface

4.2.1 Nicht interaktiver Modus

Wird calcurse mit den Optionen: -a, -d, -h, -n, -t, -v, -x gestartet, wird das Programm im nicht-interaktiven Modus ausgeführt. Das bedeutet, dass die gewünschten Informationen ausgegeben werden und das Programm anschließend sofort wieder beendet wird.

Durch das Einbinden von calcurse --todo --appointment in eine init config Datei ist es beispielsweise möglich, sich seine zu erledigenden Aufgaben und alle Termine des heutigen Tages beim Logon anzeigen zu lassen.

4.2.2 Interaktiver Modus

Note: Key bindings that are indicated in this manual correspond to the default ones, defined when calcurse is launched for the first time. If those key bindings do not suit user's needs, it is possible to change them within the keys configuration menu (see key bindings).

Wird keine, oder nur Option -c angegeben, startet calcurse im interaktiven Modus. In diesem Modus erhält man ein Interface mit drei unterschiedlichen Panels, einer Benachrichtigungszeile, sowie einer Status-Zeile (siehe unten). Die einzelnen Panels lassen sich durch die 'TAB'-Taste ansteuern.


      Termin-Panel---.                                   .---Kalender-Panel
                     |                                   |
                     v                                   v
 +------------------------------------++----------------------------+
 |          Termine                   ||          Kalender          |
 |------------------------------------||----------------------------|
 |                 (|)  6. April 2006 ||         April 2006         |
 |                                    || Mo  Di  Mi  Do  Fr  Sa  So |
 |                                    ||                      1   2 |
 |                                    ||  3   4   5   6   7   8   9 |
 |                                    || 10  11  12  13  14  15  16 |
 |                                    || 17  18  19  20  21  22  23 |
 |                                    || 24  25  26  27  28  29  30 |
 |                                    ||                            |
 |                                    |+----------------------------+
 |                                    |+----------------------------+
 |                                    ||          Aufgaben          | todo-
 |                                    ||----------------------------| Panel
 |                                    ||                            |   |
 |                                    ||                            |   |
 |                                    ||                            |<--.
 |                                    ||                            |
 +------------------------------------++----------------------------+
 |---[ So 2006-10-22 | 10:11:43 ]---(apts)----> 01:20 :: lunch  <---|<--.
 +------------------------------------------------------------------+ Benachrichtigungszeile
 | ? Hilfe     S Speichern H/L -/+1 Tag    Tab ändere Ansicht       |
 | Q Beenden   G Gehe zu   J/K -/+1 Woche   C Einstellung           |<-.
 +------------------------------------------------------------------+  |
                                                                       |
                                                                 Statuszeile

Das Kalender-Panel hebt den gewünschten Tag farblich hervor, während das Termin-Panel die Liste mit Terminen des angesteuerten Tags anzeigt. Das todo-Panel dagegen zeigt eine Liste mit den zu erledigenden Aufgaben, die keinem bestimmten Tage zugeordnet sind.

Depending on the selected view, the calendar could either display a monthly (default as shown in previous figure) or weekly view. The weekly view would look like the following:


+------------------------------------+
|              Calendar              |
|----------------------------(# 13)--|
|    Mon Tue Wed Thu Fri Sat Sun     |
|     29  30  31  01  02  03  04     |
|                               <----+--  slice 1: 00:00 to 04:00 AM
|       --  --  --  --  --  --       |
|                               <----+--  slice 2: 04:00 to 08:00 AM
|       --  --  --  --  --  --       |
|                               <----+--  slice 3: 08:00 to 12:00 AM
|    -  --  --  --  --  --  --  -  <-+--  midday
|                               <----+--  slice 4: 12:00 to 04:00 PM
|       --  --  --  --  --  --       |
|                               <----+--  slice 5: 04:00 to 08:00 PM
|       --  --  --  --  --  --       |
|                               <----+--  slice 6: 08:00 to 12:00 PM
+------------------------------------+

        

The current week number is displayed on the top-right side of the panel (# 13 meaning it is the 13th week of the year in the above example). The seven days of the current week are displayed in column. Each day is divided into slices of 4 hours each (6 slices in total, see figure above). A slice will appear in a different color if an appointment falls into the corresponding time-slot.

Im Termin-Panel kann man '(|)' Symbol vor das Datum setzen. Dies zeigt die aktuelle Mondfase. Je nach Mondfase können die folgenden Symbole erscheinen:

' |) ':
Halbmond, erste Hälfte
' (|) ':
Vollmond
' (| ':
Halbmond, letzte Hälfte
' | ':
Neumond
Kein Symbol:
die Mondfase ist keinem der oberen zuzuordnen

Die letzten beiden Zeilen des Interfaces zeigen die Status-Zeile, die über die möglichen Befehle und ihre entsprechenden Tasten informiert.

Direkt über der Statuszeile befindet sich die Benachrichtigungszeile, die von links nach rechts gesehen die folgenden Elemente anzeigt: Das aktuelle Datum, die aktuelle Uhrzeit, die momentan verwendete Kalenderdatei (im obigen Beispiel die standardmäßig verwendete Kalenderdatei apts [Vergleiche hierzu den folgenden Abschnitt]) und der nächste Termin, der in den kommenden 24 Stunden ansteht. Im Beispiel ist dies der Termin lunch, der in 1 Stunde und zwanzig Minuten beginnt.

Beachte: Einige Handlungen, wie beispielsweise das Verändern oder Hinzufügen eines Termins, benötigen Texteingaben, die mithilfe des eingebauten Eingabeeditors eingegeben werden.

Geht eine Zeile über die Bildschirmzeile hinaus, wird dies innerhalb des Editors durch die Zeichen '>', '*', und '<' dargestellt. Dadurch wird in der letzten Spalten darauf hingewiesen, dass sich vor, vor und hinter, beziehungsweise nur hinter der momentanten Position weiterer Text befindet. Gegebenenfalls wird Zeile horizontal gescrollt.

Darüberhinaus sind einigen Editierfunktionen spezielle Tastenkürzel zugewiesen, die in der folgenden Übersicht zusammengefasst sind. Hierbei steht '^' für die Taste 'Strg' beziehungsweise 'Ctrl':

^a:
Positioniert den Cursor an den Anfang der Eingabezeile
^b:
Bewegt den Cursor rückwärts
^d:
Löscht das folgende Zeichen
^e:
Positioniert den Cursor an das Ende der Eingabezeile
^h:
Löscht das vorhergehende Zeichen
^k:
Löscht die Eingabe von der aktuellen Cursorposition bis an das Zeileende
ESCAPE:
Bricht die Bearbeitung ab

4.3 Background mode

When the daemon mode is enabled in the notification configuration menu (see Notify-bar settings), calcurse will stay in background when the user interface is not running. In background mode, calcurse checks for upcoming appointments and runs the user-defined notification command when necessary. When the user interface is started again, the daemon automatically stops.

calcurse background activity can be logged (set the notify-daemon_log variable in the notification configuration menu), and in that case, information about the daemon start and stop time, reminders' command launch time, signals received... will be written in the daemon.log file (see section files).

Using the --status command line option (see section Command line arguments), one can know if calcurse is currently running in background or not. If the daemon is running, a message like the following one will be displayed (the pid of the daemon process will be shown):

calcurse is running in background (pid 14536)

Note: To stop the daemon, just send the TERM signal to it, using a command such as: 'kill daemon_pid', where daemon_pid is the process id of the daemon (14536 in the above example).

4.4 calcurse Dateien

Die folgende Verzeichnisstruktur wird im $HOME-Verzeichnis angelegt,

(or in the directory you specified with the -D option)
wenn calcurse das erste Mal gestartet wird:

$HOME/.calcurse/
           |___notes/
           |___conf
           |___keys
           |___apts
           |___todo
notes/:
this subdirectory contains descriptions of the notes which are attached to appointments, events or todos. One text file is created per note, whose name is built using mkstemp(3) and should be unique, but with no relation with the corresponding item's description.
conf:
Datei enthält die Informationen zur Benutzerkonfiguration.
keys:
this file contains the user-defined key bindings
apts:
Datei enthält alle Termine.
todo:
Datei enthält die todo-Liste.

Note: If the logging of calcurse daemon activity was set in the notification configuration menu, the extra file daemon.log will appear in calcurse data directory. This file contains logs about calcurse activity when running in background.

4.5 Import/Export capabilities

The import and export capabilities offered by calcurse are described below.

4.5.1 Import

Data in icalendar format as described in the rfc2445 specification (see links section below) can be imported into calcurse. Calcurse ical parser is based on version 2.0 of this specification, but for now on, only a subset of it is supported.

The following icalendar properties are handled by calcurse:

  • VTODO items:
    "PRIORITY", "VALARM", "SUMMARY", "DESCRIPTION"