Author: | Daguhh |
---|---|
Version: | 0.7.0 |
naïf, naïve n. adj.
1. LITTERAIRE Qui est naturel, sans artifice, spontané. Art naïf, art populaire, folklorique. — Un peintre naïf.
2. COURANT Qui est plein de confiance et de simplicité par ignorance, par inexpérience. ➙ candide, ingénu, simple. — Qui exprime des choses simples que tout le monde sait. Remarque naïve. ➙ simpliste.
Un popup calendrier avec rofi et python3 :
- Parcourez le calendrier de mois en mois
- Support de la langue locale ou forcer une langue
- Créez et éditez des notes liés à chaque date du calendrier. Une date possédant une note apparait colorée
- Créez plusieurs types de notes (c-à-d plusieurs dossier), créez des évenements récurrents, basculez entre elles.
- Personnalisez les thèmes, contenus, symboles, raccourcis avec de simples fichiers textes
- Changez de thème à la volée
- Intrégrez le à vos scripts et rendez les iinteracifs : ouvrir à une date particulière, demander une date, copier une date dans le presse papier.
- xclip (option "copier dans le presse papier)
- sensible-utils (sous-command "update" : choix de l'éditeur)
- fontawesome (icons)
Le naivecalendar utilise deux fichiers:
- naivecalendar.py : envoie la liste des entrées d'un calendrier vers la sortie standard
- naivecalendar.sh : lance rofi en mode script en interaction avec le fichier précedent.
Plus, deux fichiers de configuration:
- /themes/<theme>.rasi : fichier de configuration rofi (forme et couleurs)
- /themes/<theme>.cfg : un fichier .ini qui défini le contenu du calendrier
Copiez simplement les fichiers dans le même dossier (en respectant l'arborescece)
finallement, lancez avec:
./naivecalendar.sh
apt install ./naivecalendar_x.y.z_all.deb
Lancez avec:
naivecalendar
Executez le script, puis:
- Interagisez avec la souris ou le clavier
- Utlisez les flêches pour parcourir le calendrier
- Cliquez sur un date ou créer une note liée (Un jour avec une note attachée apparaitra colorée)
- Les notes sont enregistrée dans {HOME}/.naivecalendar_notes/ (Vous devez les supprimer manuellement)
Les raccourcis sont à entrer dans l'invite de commande rofi. La liste ci-dessous est à titre indicative et peut varier selon les themes. L'entièreté des symboles peut être modifée via les fichiers de configurations. Sym est le symbole affiché à l'écran. Sym et Keys peuvent être utilisés pour executer une action.
Sym | Keys | Action | ||
---|---|---|---|---|
◀◀ | << | pp | -- | année précédente |
◀ | < | p | - | mois précédent |
▶ | > | n | + | mois suivant |
▶▶ | >> | nn | ++ | année suivante |
| event | ee | montre les évenements du mois courant | |
| switch | ss | change le type d'evénement affiché | |
| help | hh | montre l'aide | |
| theme | tt | montre le selecteur de thème | |
☰ | menu | mm | montre le menu |
Les événements sont de simples fichiers (textes) créés par le calendrier à l'interaction avec un jour (clic/touche entée) Les noms de fichiers de ces evenenements doivent contenir des directives au format strftime (%d, %m ...).
note_%Y-%m-%d.txt
Ne pas donner de directive identifiant un jour et un mois permet par exemple de rendre récurrent l'évenement (parfait pour les anniversaires!).:
birthday_on_%d-%m.txt
Vous pouvez créer plusieurs types d'événements (qui ne sont que différents dossiers). Définir un nouveau type d'événement nécessite simplement la création d'un nouvelle entrée dans la section [EVENTS] des fichiers de configuration.:
[EVENTS] Notes = .naivecalendar_events/MyNotes/note_%Y-%m-%d.txt Birthday = .naivecalendar_events/Birthdays/birthday_on_%d-%m.txt
Les notes quant à elles supportent un léger format pour être correctement affichées lors de l'action "montrer les événements du mois" :
montrer section : si vous crééz des sections (format : [section]), toute ligne contenant cette directive sera affichées:
[9H30] rdv with truc <---- will be displayed Some text Some text again [14H30] rdv with muche <----- will be displayed Some text again again
montrer entête : si la note ne contient pas de [section], la première ligne sera affichée:
# Note Title <---- only first line is displayed Some text Some text again...
Dans le menu "montrer les événements du mois", si vous interagissez avec le nom du fichier, l'editeur rouvrira la note, autrement, cliquer sur une autre ligne vous rammenaera au calendrier:
notes_2021-01-05 : <---- reopen editor [9H30] rdv with truc <--- do nothing : back to calendar [14H30] rdv with muche
Des options sont disponibles en ligne de commande et peuvent être utiles lors de l'integration dans un script ou pour écraser temporairement certains paramètres. Les sous-commandes update et add-event peuvent vous permettre d'éditeren une fois un paramètre sur tous les thèmes de l'utilisateur.
usage: naivecalendar [-h] [-V] [-v] [-p] [-x] [-f FORMAT] [-e EDITOR] [-l LOCALE] [-c] [-t THEME] [-d DATE] A simple popup calendar subcommands: update Update a calendar parameter for all user themes at once add-event Add, modify, delete event in all user themes config at once optional arguments: -h, --help show this help message and exit -V, --version show program's version number and exit -v, --verbose direct rofi command errors to stdout -p, --print print date to stdout instead of opening a event -x, --clipboard copy date to clipboard -f FORMAT, --format FORMAT option '-p' or '-x' output format (datetime.strftime format, defaut='%Y-%m-%d') -e EDITOR, --editor EDITOR editor command to open events -l LOCALE, --locale LOCALE force system locale, for example '-l es_ES.utf8' -c, --read-cache force calendar to read old date from cache -t THEME, --theme THEME set calendar theme, default=classic_dark (theme file name without extention) -d DATE, --date DATE display calendar at the given month, format='%m-%Y'
Editer les paramètres dans les fichiers suivant:
- contenu du calendrier : ./themes/<theme>.cfg
- apparence du calendrier : ./themes/<theme>.rasi
Warning
modifier le contenu du calendrier peut demander la modification conjointe de l'apparence de ce dernier.
Des themes sont disponibles, vous pouvez les appliquer en tapant theme dans l'init de rofi ou les charger temporairement en précisnat l'arugment --theme. Vous pouvez créer vos propres fichiers de thème (rasi), placez les dans le dossier ./themes/
Vous pouvez commencer avec une copie des thèmes "officiels":
cp -r /usr/share/naivecalendar/themes/* ~/.config/naivecalendar/themes/
Note
Si vous créez un thème du même nom qu'existant dans le dossier /usr/share/naivecalendar/themes/, seul celui-ci sera prit en compte.
Puis, modifiez les thèmes, un par un avec votre éditeur favoris, ou, en masse à l'aide des sous commandes du naivecalendar (utilisez la complétion)
naivecalendar <subcommand> -h
Voici une brêve description des fichiers demandés/générés par le calendrier
Fonction | Fichier |
---|---|
commande rofi | /usr/share/naivecalendar/naivecalendar.sh |
script appellé par rofi | /usr/share/naivecalendar/naivecalendar.py |
fichiers de thèmes rofi | /usr/share/naivecalendar/themes/*.rasi |
configuration du contenu | /usr/share/naivecalendar/themes/*.cfg |
thèmes de l'utilisateur | ~/.config/naivecalendar/themes/*.rasi |
conf du contenu de l'utilisateur | ~/.config/naivecalendar/themes/*.cfg |
dossier des evenements (defaut) | ~/.naivecalendar_events/<event type>/<user date format>.txt |
fichier cache : date | ~/.cache/naivecalendar/date_cache.ini |
date au format -f|-format | ~/.cache/naivecalendar/pretty_print_cache.txt |
sauvegarde le thème | ~/.cache/naivecalendar/theme_cache.txt |
sauvegarder le type d'évenement | ~/.cache/naivecalendar/event_cache.txt |
log de la dernière commande rofi | ~/.cache/naivecalendar/rofi_log.txt |
sudo apt install devscripts cd naivecalendar-x.y.z/ debuild -us -uc
Note
Personnalisez vos thèmes avant construction, l'intrégralité du dossier "themes" sera inclut dans votre paquet.
Construisez la documentation
cd docs/ python3 -m pip install -r requirements.txt make html