PAL : Un agenda en ligne de commande toujours là pour vous

Pour tout ceux qui souhaitent avoir un agenda toujours à porté de main, voici un outil bien pratique qui fonctionne en ligne de commande. Vous aurez accès à un calendrier en moins de deux, avec vos événements de surplus ! Voyons tout cela de plus près ...

Rédigé par Plonstic (que j'ai contacté suite à son commentaire, merci à lui !)

Avant propos :
Cet article contient quelques lignes de code. En tant qu'auteur j'ai pris soin de les vérifier sur mon système. Cependant, dans votre cas, il se peut que certains résultats ne soient pas ceux escomptés.
De manière générale, il faut TOUJOURS vérifier les lignes de code que l'on vous fait exécuter (c'est la première faille des OS ;D). Les risques restent toutefois limités, car rien n'est fait en root ici.
Toutes les actions peuvent être effectuées graphiquement (décompression d'archive, édition de fichiers, etc.). Pour des raisons "d'universalité" j'ai préféré présenter les lignes de commandes (de toute façon c'est un calendrier en ligne de commandes !)
Bonne lecture...

Présentation

pal est un calendrier en ligne de commande qui affiche des événements à la manière de la commande cal des distributions UNIX, de gcal de GNU ou de calendar des distributions BSD.

Les avantages :
  • Un calendrier avec mise en évidence des jours auxquels sont associés un/des événements
  • Organisation des événements par type et couleurs
  • Recherche d'événements par expressions régulières
  • Prise en charge des événements officiels (vacances, saints, journées historiques, etc.)
  • Les événements peuvent être ponctuels ou répétitifs (quotidiens, hebdomadaire, mensuels, annuels) avec date de début et date de fin
  • Ajout des événements en ligne (option -m ) ou en externe (éditions de fichiers)
  • Exportation en HTML ou LATeX.

Les inconvénients :
  • Ne peut pas récupérer les événements sur internet
  • N'est pas compatible vcal
  • En ligne de commande (hum mais c'est l'intérêt ça, non ?!)
Mais ça peut se faire avec des scripts (ce n'est pas expliqué ici).



1. Installation

Pour les distributions Debian ou Ubuntu, on installera le paquet pal :
sudo aptitude install pal


Pour les autres, vous trouverez les sources ici.

2. Utilisation

2.1. Lancement

pal se lance simplement avec
pal

2.2. Édition

Pour éditer les événements en ligne, on ajoutera l'option -m :
pal -m

Les flèches du clavier permettent de changer de jour.
[a] pour ajouter un événement
[e] pour entrer un descriptif
[Suppr] pour supprimer un événement
[q] pour quitter
[h] pour l'aide sur les autres options d'édition

2.3. Recherche

Pour rechercher un événement particulier on utilisera les option -s et -r :
pal -s formule -r nbrjours

formule est une chaîne de caractères (ou une expression régulière) comprise dans la description de l'événement recherché dans les nbrjours prochains jours

Example : Recherche le prochain jour le Pâques (en anglais ou en français)
pal -r 365 -s "(p.ques)|(easter)"

Ou, plus simplement, si vous avez vos événements en français :
pal -r 365 -s "pâques"

2.4. Exportation

Pour exporter en HTML, on utilisera l'option --html
cat >> mon_calendrier.html << EOF
<html>
<head>
<title>Mon calendrier généré depuis pal</title>
<link rel="stylesheet"
  type="text/css"
   href="http://www.generation-linux.fr/usr/share/doc/pal/examples/example.css"
   title="default" />
</head>
<body>$(pal --html -c 12)</body>
</html>
EOF


Note : l'option -c permet de spécifier le nombre de "lignes"
(exemple)

Pour exporter en LATeX, on utilisera l'option --latex
pal --latex -c 12 > mon_cal.tex
sed -i '5i\usepackage[latin1]{inputenc}' mon_cal.tex
sed -i '5i\usepackage[francais]{babel}' mon_cal.tex
sed -i 's/Monday/lundi/g' mon_cal.tex
sed -i 's/Tuesday/mardi/g' mon_cal.tex
sed -i 's/Wednesday/mercredi/g' mon_cal.tex
sed -i 's/Thursday/jeudi/g' mon_cal.tex
sed -i 's/Friday/vendredi/g' mon_cal.tex
sed -i 's/Saturday/samedi/g' mon_cal.tex
sed -i 's/Sunday/dimanche/g'mon_cal.tex
pdflatex mon_cal.tex || latex mon_cal.tex



Note :
la première ligne permet d'exporter le calendrier en LATeX. La dernière ligne permet de compiler en pdf. Les autres lignes permettent de mettre le calendrier en français.
(exemple)

2.5. Autres

Vous trouverez un tas d'autres options dans le manuel d'utilisation de pal
man pal

3. Configuration

Le dossier de configuration de pal pour les utilisateurs est .pal/ dans votre home ($HOME/.pal/).

3.1. Fichier de configuration pal.conf

Pour éditer les préférences de pal (nombre de lignes, jour du début de semaine, etc.), il faut éditer le fichier pal.conf

Avant tout, on part du fichier de configuration par défaut que l'on copie dans le dossier de configuration personnel :
cd
mkdir .pal
cp /etc/pal.conf ~/.pal/



Puis on l'édite avec un éditeur de textes (ici nano car il est fourni par défaut en général) :
nano ~/.pal/pal.conf


Le fichier étant très bien commenté, je vous laisse le parcourir et adapter pal comme bon vous semble.
Notons tout de même les lignes commençant par 'file'. Elles permettent d'ajouter des événements contenus dans des fichiers externes. Ces fichiers d'événements, par défaut, sont pour les États-Unis, commentez/supprimer toutes les lignes qui ne vous intéressent pas.

3.2. Fichiers d'événements

Les fichiers d'événements permettent de définir en externe des événements. Ils vont être plus pratiques que l'option -m pour ajouter un grand nombre d'événements au calendrier.
Pour vous montrer comment ça marche, on créera un fichier d'événements pour les jours notables en France (nouvel an, fêtes nationales, etc.).

Commençons par télécharger des définitions d'événements (bsdcalendar), ce qui nous facilitera la tâche :
cd /tmp #on se met dans le dossier temporaire
# téléchargement
wget http://downloads.sourceforge.net/project/bsdcalendar/bsdcalendar/0.9/bsdcalendar-0.9.tar.bz2?use_mirror=freefr
tar -xvjf bsdcalendar-0.9.tar.bz2 #décompression


Ainsi, le dossier /tmp/caledar/calendars/fr_FR.ISO-8859-1 contient des fichiers d'événements dont il nous faudra adapter le contenu pour pal.
Copions le fichier calendar.jferies dans le dossier de configuration de pal :
cp /tmp/calendar/calendars/fr_FR.ISO-8859-1/calendar.jferies ~/.pal/

Dans un premier temps, il faut changer les commentaires. En effet, les commentaires de pal sont des lignes commençant par #, tandis qu'ils sont délimités par /* ... */ dans le fichier que l'on a :
sed -i 's/^[ ]*/?*/?/#/' ~/.pal/calendar.jferies
sed -i 's/LANG/#LANG/' ~/.pal/calendar.jferies


Ensuite, pal définit les événements récursifs en mettant des zéros (0) pour les années (événement annuels) et pour les mois (événement mensuels) :
sed -i 's:([0-9][0-9])/([0-9][0-9])*?:000012:' ~/.pal/calendar.jferies


Continuons avec les événements référencés par rapport à Pâques (Easter). pal utilise le mot clé 'Easter' pour référencer par rapport à Pâques.  'Easter+nnn'  définit  un événement intervenant  nnn jours après Pâques (il faut mettre 3 chiffres) :
sed -i 's/Easter+([0-9])[ ]/Easter+001 /' ~/.pal/calendar.jferies
sed -i 's/Easter+([0-9][0-9])[ ]/Easter+01 /' ~/.pal/calendar.jferies


Occupons nous maintenant de la fête des mères (dernier dimanche de mai), celle des pères (troisième dimanche de juin) et les changements d'heures.
pal permet de définir un événement qui intervient le Nième jour d'un mois avec '*mmnd'. 'mm' est le mois (10 pour octobre), 'd' le jour (1=lundi, 7=dimanche).
Exemple : *0547  (06=mai; 4="quatrième";  7=dimanche  ==> dernier dimanche de mai).
On fait la modif avec :
sed -i 's/May Sun+2/*0547/' ~/.pal/calendar.jferies
sed -i 's/June Sun+2/*0637/' ~/.pal/calendar.jferies
sed -i 's:03/SundayLast:*0347:' ~/.pal/calendar.jferies
sed -i 's:10/SundayLast:*1047:' ~/.pal/calendar.jferies


Il faut aussi définir, en début du fichier, les caractères d'affichage des événements (de par et d'autre de la date) et leur type. Pour cela on ajoute en première ligne : 'FR France' où 'FR' sont les caractères d'affichage et 'France' le type :
sed -i '1iFR France' ~/.pal/calendar.jferies


Pour que les caractères accentués soient acceptés par pal il est nécessaire de convertir le fichier en utf-8 avec iconv (paquet du même nom sous Débian et dérivés)
iconv -f ISO8859-1 -t utf-8 ~/.pal/calendar.jferies calendar.jferies >temp
mv temp ~/.pal/calendar.jferies



Enfin on ajoute le fichier d'événements dans pal.conf pour qu'il le prenne en compte :
sed -i '1ifile calendar.jferies (magenta)' pal.conf


Il ne vous reste plus qu'à créer vos propres fichiers d'événements (pour les anniversaires c'est bien pratique :D).
N'oubliez pas de regarder le manuel de pal pour plus d'information (je n'ai pas tout décrit ici).

4. Conclusion

Voili, voilou, vous connaissez un nouveau logiciel bien sympathique.
J'ai essayé de vous montrer l'essentiel des fonctionnalités et configurations. Il en reste encore donc n'hésitez pas à consulter le manuel (je sais, je me répète, mais il y a tout dedans, ça évite les questions inutiles ...).

Vous pouvez l'ajouter dans votre .bashrc pour l'avoir au démarrage des terminaux.
Je vous conseillerai de ne pas trop abuser des événements (les saints et autres proverbes), ça devient vite ennuyeux et on ne voit plus l'essentiel. Mais bon, je dis ça, c'est à vous de voir !

Il existe d'autres calendriers en ligne de commande (voir le haut de l'article) et graphiques (je vous laisse le plaisir de chercher avec votre moteur de recherche favori :D).

À plus ..!
Vus : 345
Publié par Génération Linux : 126