Terminverwaltung (Agenda-Mode)

Agenda-Mode

Im Emacs-Jargon heißt die Terminverwaltung »Agenda-Mode« . Auf unterschiedlichste Art lassen sich Termine verwalten.

../_images/agenda-view.webp

Es gibt zwei Strategien zur Verwaltung von TODO-Eingrägen:

  1. Verteilt auf alle Org-Roam-Notes (siehe Video).

  2. In zentralen Dateien, wie weiter unten erläutert.

Typ:    YouTube-Video
Dauer:  04:10
Autor:  System Crafters
Quelle  https://youtu.be/CUkuyW6hr18?t=301

Konfiguration: Tastatur

Die Anzeige vorhanderener Termine (Ctrl+a) und das Anlegen neuer Termine (Ctrl+t), soll möglichst schnell erfolgen. Dafür werden die folgenden Tastenkürzel definiert:

#+BEGIN_SRC emacs-lisp

(require 'org)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-ct" 'org-capture)

#+END_SRC

Konfiguration: in Deutsch

Wie so oft, sind die Bezeichnungen in »Neudeusch« abgefasst, mit einer Übersetzungsliste für Wochen und Monatstage wird es etwas angenehmer:

#+BEGIN_SRC emacs-lisp


(setq calendar-week-start-day 1
       calendar-day-name-array ["Sonntag" "Montag" "Dienstag" "Mittwoch"
                                "Donnerstag" "Freitag" "Samstag"]
       calendar-month-name-array ["Januar" "Februar" "März" "April" "Mai"
                                  "Juni" "Juli" "August" "September"
                                  "Oktober" "November" "Dezember"])

#+END_SRC

Konfiguration: Termine sammeln

Wo soll nach Agenda-Dateien gesucht werden?

#+BEGIN_SRC emacs-lisp

  (setq org-agenda-files (list "~/laderampe/"
                               "~/laderampe/zettelkasten/"
                               ))

#+END_SRC

Konfiguration: Templates

Sobald mehr als eine Entscheidung zu fällen ist, braucht man eine Templatestruktur. Zwei Angaben sind notwendig und wenn ein individuelles Template verwendet werden soll, noch eine dritte Konfigurationszeile:

  1. Ein Meüeintrag

  2. Das Ziel des Einstrags, also wo wird gespeichert.

  3. Das zu verwendende Template (optional).

#+BEGIN_SRC emacs-lisp

  (load-library "find-lisp")
  (custom-set-variables
  '(org-capture-templates
    (quote
     (
         ("l" "Protokolle" entry
          (file+datetree "/home/ram/disk/zettelkasten/main-log.org") "** %U - %^{Aktion} :LOG:")

         ("t" Termine)

         ("ta" "Termine (Arbeit)" entry
          (file+headline "~/laderampe/zettelkasten/termine-arbeit.org" "Arbeit")
          (file "~/laderampe/templates/tpl-todo.txt") :empty-lines-before 1)

          ("tp" "Termine (privat)" entry
          (file+headline "~/laderampe/zettelkasten/termine-privat.org" "Privat")
          (file "~/laderampe/templates/tpl-todo.txt") :empty-lines-before 1)
        )
      )
    )
  )


#+END_SRC

Konfiguration: Tag-Listen

Für die Anzeige bietet der Agenda-Mode schon eine Auswahl nützlicher Darstellungsformen. Diese Liste kann erweitert werden z.B. für die selbstdefinierten Tags:

#+BEGIN_SRC emacs-lisp

(setq org-agenda-custom-commands
   (quote (
     ("A" "Agenda + Arbeit"
       (
         (tags "arbeit")
           (agenda "")
       )
     )
     ("D" "Agenda + Privat"
       (
         (tags "privat")
           (agenda "")
       )
     )
   )))

   #+END_SRC

Template für TODO

Wer viele Katergorien unterscheidet, kann nach der Eingabe einer Beschreibung ((%^Description) auch noch ein Tag abfragen (%^G), Für das Protokoll wird noch festgehalten, wann der Eintrag erfasst worden ist (%U).

#+BEGIN_SRC emacs-lisp

* TODO %T %^{Description}  %^G
  %?
:ORDERED: t
:END:
:LOGBOOK:
- hinzugefügt:  %U
:END:

#+END_SRC

Template mit voreingestellter Kategorie

Die Kategorie kann auch voreingestellt werden, wie die einfache Unterscheidung in Arbeit/Privat zeigt.

Der Templateaufruf

Mit den passenden Kategrien (:arbeit: und :privat:).

#+BEGIN_SRC emacs-lisp

  (load-library "find-lisp")
  (custom-set-variables
  '(org-capture-templates
    (quote
     (
         ("l" "Protokolle" entry
          (file+datetree "/home/ram/disk/zettelkasten/main-log.org") "** %U - %^{Aktion} :LOG:")

         ("t" Termine)

         ("ta" "Termine (Arbeit)" entry
          (file+headline "~/laderampe/zettelkasten/termine-arbeit.org" "Arbeit" :arbeit:)
          (file "~/laderampe/templates/tpl-todo.txt") :empty-lines-before 1)

          ("tp" "Termine (privat)" entry
          (file+headline "~/laderampe/zettelkasten/termine-privat.org" "Privat" :privat:)
          (file "~/laderampe/templates/tpl-todo.txt") :empty-lines-before 1)
        )
      )
    )
  )


#+END_SRC

Das Template dann entspechend ohne die Abfrage (%^G).

#+BEGIN_SRC emacs-lisp

* TODO %T %^{Description}
  %?
:ORDERED: t
:END:
:LOGBOOK:
- hinzugefügt:  %U
:END:

#+END_SRC