[[Vorlage(Getestet, noble)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Versteckte_Dateien: Versteckte Dateien] [:Editor: Einen Editor öffnen] [:Autostart: Automatischer Start von Programmen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [sourceforge:birthday:] {en} ist ein Kommandozeilen-Programm, das an Geburtstage oder andere Ereignisse erinnert und diese auf der Kommandozeile (auf Wunsch auch in einem textbasierten Kalender) ausgibt. Bei Geburtstagen erfolgt die Ausgabe in Englisch, andere Ereignisse werden in der Sprache ausgegeben, die man bei der Eingabe verwendet hat. = Installation = Folgendes Paket muss installiert [1] werden: {{{#!vorlage Paketinstallation birthday, universe }}} = Benutzung = Die allgemeine Syntax sieht wie folgt aus [2]: {{{#!vorlage Befehl birthday [OPTIONEN] }}} Da das Programm in der Voreinstellung Einträge aus der versteckten Datei [3] '''~/.birthdays''' liest, muss diese zuerst angelegt werden. Mit einem Editor [4] können Geburtstage oder andere Ereignisse eingetragen werden. Ein einfacher Eintrag für eine Geburtstagserinnerung kann folgendermaßen aussehen: {{{ Max Mustermann=25/10/1998 }}} Der anschließende Aufruf von {{{#!vorlage Befehl birthday }}} im Terminal erzeugt am 05.10.2011 folgende Ausgabe: {{{Max Mustermann is 13 years old in 2 weeks and 6 days' time.}}} == Optionen == Wie oben bereits erwähnt, kennt birthday einige Optionen, die hier aufgeführt werden. {{{#!vorlage Tabelle Programmoptionen +++ Option Beschreibung +++ `-w` Listet die bevorstehenden Ereignisse auf +++ `-c` Zeigt die Kalenderansicht +++ `-f file` Liest die Ereignisse aus der Datei `file` anstatt aus '''~/.birthdays'''. Die Datei `file` sollte in diesem Fall mit absolutem Pfad angegeben werden. }}} Mehr zu den Optionen von birthday erfährt man in der [:man:Manpage]. == Format Datendatei == Jede Zeile in der Datei '''~/.birthdays''', die mit einer Raute (`#`) beginnt, ist ein Kommentar und wird nicht beachtet. Jede andere Zeile besteht aus dem Namen, einer Person oder eines Ereignisses, gefolgt von einem Gleichheitszeichen (`=`) und einem Datum in der Form `TT/MM` oder `TT/MM/JJJJ` (`TT, MM`: Tag/Monat zweistellig; `JJJJ`: Jahr, vierstellig). Zum Schluss folgt ein Kürzel, das die Art des Ereignisses beschreibt. {{{#!vorlage Tabelle Optionen innerhalb der Datendatei +++ Kürzel Beschreibung Beispiel +++ `bd` Diese Zeile ist ein Geburtstag (Standard). Das Jahr sollte das Jahr der Geburt sein. `Max Mustermann=25/10/1998 bd` +++ `ann` Diese Zeile ist ein Jahrestag. `Hochzeitstag=25/10/2011 ann` +++ `ev` Diese Zeile ist ein Ereignis irgend einer Art. Wenn das Jahr angegeben wird, wird das Ereignis nur in diesem Jahr angezeigt, ansonsten jedes Jahr. `Konzert=25/10/2011 ev` +++ `w[x]` Warnt x Tage im voraus. Voreinstellung: 21 Tage. `Hochzeitstag=25/10/2011 ann w10` +++ `to[x]` Das Ereignis dauert bis Datum x. Das angegebene Datum sollte das selbe Format wie das Datum des Ereignisses haben. `GP Deutschland=25/10/2011 ev to28/10/2011` +++ `for[x]` Das Ereignis dauert x Tage. `GP Deutschland=25/10/2011 ev for3` }}} == Automatische Anzeige der Ereignisse nach dem Anmelden == === Methode 1 === Man legt einen Eintrag im Autostart [5] an und trägt als Befehl folgendes ein: {{{#!vorlage Befehl x-terminal-emulator -e "bash -c '/usr/bin/birthday; read'" }}} Nun öffnet sich nach dem Anmelden am Desktop das jeweilige Standard-Terminalprogramm und zeigt die anstehenden Ereignisse an. Durch Drücken der Taste [[Vorlage(Tasten, enter)]] wird das Terminalfenster geschlossen. [[Bild(./birthday_notify.png, 210, align=right)]] === Methode 2 === Man lässt sich die Ereignisse über den [:Benachrichtigungsdienst:] anzeigen. Dazu muss das folgende Paket installiert werden [1]: {{{#!vorlage Paketinstallation libnotify-bin, main }}} Entweder man legt einen Eintrag im Autostart an und trägt folgenden Befehl ein: {{{#!vorlage Befehl bash -c '/usr/bin/notify-send -t 0 "Geburtstage" "$(/usr/bin/birthday)"' }}} Oder man erstellt sich ein Skript unter '''/usr/local/bin''' mit folgendem Inhalt: {{{#!code bash #!/bin/bash OUTPUT=$(/usr/bin/birthday) /usr/bin/notify-send -t 0 "Geburtstage" "$OUTPUT" }}} speichert es z.B. unter dem Namen '''birthday_notification.sh''' und macht es ausführbar: {{{#!vorlage Befehl sudo chmod +x /usr/local/bin/birthday_notification.sh }}} Nun legt man einen Eintrag im Autostart an und trägt als Befehl folgendes ein: `/usr/local/bin/birthday_notification.sh` Nach dem Anmelden werden die Ereignisse nun über den Benachrichtigungsdienst angezeigt. Falls man das automatische Schließen der Anzeige bevorzugt, kann man `-t 0` weglassen. = Tipps = Hat man mehrere Ereignisse an einem Tag und möchte, dass diese in chronologischer statt in alphabetischer Reihenfolge angezeigt werden, so kann man diese Einträge folgendermaßen gestalten {{{ 18:00 Uhr Konzert=08/10/2011 ev 14:00 Uhr Probe=08/10/2011 ev 20:00 Uhr Konzert=08/10/2011 ev 15:00 Uhr Probe=08/10/2011 ev 12:00 Uhr Lesung=08/10/2011 ev }}} Die Ausgabe sähe dann so aus: {{{ 12:00 Uhr Lesung in 2 days' time. 14:00 Uhr Probe in 2 days' time. 15:00 Uhr Probe in 2 days' time. 18:00 Uhr Konzert in 2 days' time. 20:00 Uhr Konzert in 2 days' time. }}} = Links = * [sourceforge:birthday:Projektseite] {en} * [:when:] - Terminkalender für die Konsole * [:Osmo:] - grafischer Terminkalender, der bei Geburtstagen benachrichtigen kann * [sourceforge2:gbirthday:GBirthday] {en} - GTK-Panel-Applet * [http://www.elmar-baumann.de/Birthdays/ JBirthdays] {en} - weitere grafische Alternative auf Basis von Java 7 # tag: Shell