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

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

est un calendrier en ligne de commande qui affiche des événements à la manière de la commande des distributions UNIX, de de GNU ou de 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 .

    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 ) 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



    Mon calendrier généré depuis pal

    $(pal –html -c 12)

    EOF

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

    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.
    () #### 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 (), ce qui nous facilitera la tâche :
    cd /tmp #on se met dans le dossier temporaire

    téléchargement

    wget
    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/^[ t]/?/?/#/’ ~/.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])[ t]/Easter+001t/’ ~/.pal/calendar.jferies
    sed -i ‘s/Easter+([0-9][0-9])[ t]/Easter+01t/’ ~/.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 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 ..!