Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 16-11-2020 19:23:24

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Calendrier Rofi

Voici un p'tit calendrier fait avec rofi et python3
    - Parcourez le calendrier de mois en mois à la souris ou au clavier
    - Créez et éditez des notes liés à chaque date du calendrier. Une date possédant une note apparaît colorée. (Éditeur de texte à modifier, sinon c'est kate)

naivecalendar_screenshot.png

le code : le code (raw - framagit)
le git     : le git (git - framagit)
la doc   : la doc (sphinx - framagit)

Dernière modification par David5647 (Aujourd'hui 16:06:39)

Hors ligne

#2 21-11-2020 12:22:43

Nietzsche
Adhérent(e)
Lieu : Sarthe
Distrib. : Debian Buster 10.6
Noyau : Linux 4.19.0-12-amd64
(G)UI : Xfce
Inscription : 18-11-2020

Re : Calendrier Rofi

David5647 a écrit :

Voici un p'tit calendrier fait avec rofi et python3

Bonjour,

Petite question comme ça, je suis nouveau sur le site DF et sur l'univers GNU/Linux.
Comment fais tu pour lancer ton logiciel, sur quel support dois-je coller le code ? Je vais l'essayer de mon côté, si ça te dis, je te ferais un retour si besoin wink

Dernière modification par Nietzsche (21-11-2020 12:28:36)


Peinture avatar: Ici
“Mieux vaut ne rien savoir que beaucoup savoir à moitié !”
"Ce n'est pas le doute, c'est la certitude qui rend fou."
-Nietzsche

Hors ligne

#3 21-11-2020 14:18:11

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : Calendrier Rofi

Salut smile

Python est un langage interprété, c'est un dire qu'un programme, l'interpréteur (qui a de forte chance de se trouver installer par défaut en même temps que pas mal d'environnement de bureau, car plein d'outils y sont codés en Python) va lire directement le fichier contenant le code tel qu'on le voit pour l’exécuter.

La présence de l'interpréteur python3 peut se vérifier avec

apt policy python3



Une fois ça fait, il faut donc copier le texte du code donné par David, et le coller dans un fichier texte, à l'aide d'un éditeur de texte de ton choix. Par convention, on donne l'extension .py aux fichiers source écrits en python, donc, par exemple programme.py

Il faudra ensuite lui donner les droits d’exécution, ce qui permettra au système de lancer l’interpréteur python3 avec ce code source de la façon suivante

./programme.py


Si on ne donne pas ces droits, il est possible de lancer l'interpréteur en lui donnant en paramètre le script (le fichier  texte contenant le code source) de la façon suivante

python3 programme.py



Attention cependant, ce programme peut avoir besoin de bibliothèque (nommés modules en python) pour fonctionner, et il faudra les installer si elles ne sont pas présente sur ton installation (et l, c'est galère des fois wink ).



Autre remarque, ce programme précis est une sorte de addon à un autre programme, rofi qui doit donc être aussi installé smile


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#4 21-11-2020 14:20:41

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : Calendrier Rofi

Salut!

====== edit : grillé par bendia tongue ===============
Bon, jlaisse mon texte qd même,
pour les dépendances, c'est du python3 sans bibliothèque externes (les import c'est uniquement du build-in et de la lib standard)
Voilà, ce qui suit à déjà parfaitement été dis... tan-pis
========================================

Procédons par étapes ! =P

Les dépendances
===============

Le script a deux dépendances :

      - python3 : c'est le langage employé dans le script, conventionnellement indiqué par l'extension '.py'
Il n'y rien à faire pour cette dépendance, python3 est installé par défaut
      - rofi : un utilitaire qui, grossièrement, permet d'afficher une liste de mots/d'options à sélectionner et largement détourné/amélioré pour faire toute sorte de menu
Celui là, il faut l’installer:

apt install rofi



Lancer le script
================

Tu peux directement télécharger le script depuis l'url avec la commande wget :

wget https://framagit.org/Daguhh/naivecalendar/-/raw/master/naivecalendar.py


Tu obtiendras le fichier naivecalendar.py
Tu peux aussi copier-coller le texte dans un fichier au nom quelconque (sous linux les extensions c'est uniquement pour les humains)
Et tu peux lancer le script de deux manières.

En spécifiant l'utilisation de python3:
---------------------------------------

python3 naivecalendar.py



ou

En utilisant une manière plus générique:
----------------------------------------

on rend le script exécutable:

chmod +x naivecalendar.py


et on le lance

./naivecalendar.py

(ce qui se cache derrière le ./ c'est le chemin du fichier (preuve : ls ./)

Cette deuxième méthode est permise par la présence d'un "shebang" au début de fichier:

#!/usr/bin/env python3


qui spécifie au système l'outil avec lequel il doit interpréter le script.

Voilà! wink

Dernière modification par David5647 (21-11-2020 14:26:22)

Hors ligne

#5 21-11-2020 14:43:38

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : Calendrier Rofi

Ah, oui

et pour ce qui est de la partie "notes"
On peut modifier quelques variables dans le script :

# Do what you want!
EDITOR = "kate"
NOTES_PATH = f"{HOME}/.naivecalendar_notes"
 


EDITOR étant l'éditeur de texte que tu souhaite utiliser, chez moi c'est kate
et NOTES_PATH le chemin où seront enregistrés les notes ({HOME} = /home/nom_utilisateur)

et le lien du dépôt git : https://framagit.org/Daguhh/naivecalendar

Dernière modification par David5647 (21-11-2020 14:45:15)

Hors ligne

#6 21-11-2020 17:36:10

Nietzsche
Adhérent(e)
Lieu : Sarthe
Distrib. : Debian Buster 10.6
Noyau : Linux 4.19.0-12-amd64
(G)UI : Xfce
Inscription : 18-11-2020

Re : Calendrier Rofi

Super! Merci beaucoup les gars big_smile Je connaissais un peu python de nom, mais sa m'a appris plusieurs choses aujourd'hui et c'est grâce à vous smile
-chmod
-apt install (ça c'est la base lol)
Et trouver la capture d'écran sous Linux
Pour l'éditeur j'utilise mousepad

Je suis en train de potasser Les cahiers du débutant.. Tous une éducation à refaire lol

file-R1d0f1b5c6169248ab432f099a1047975

Tadam!
Merci à vous pour les détails smile

Peinture avatar: Ici
“Mieux vaut ne rien savoir que beaucoup savoir à moitié !”
"Ce n'est pas le doute, c'est la certitude qui rend fou."
-Nietzsche

Hors ligne

#7 22-11-2020 12:44:22

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : Calendrier Rofi

Hop! Nickel, ça à l'air de fonctionner!

Nietzsche a écrit :

Pour l'éditeur j'utilise mousepad


Au passage, c'est un peu étrange de citer Nietzsche dans ce contexte ^^, bref!
Si tu ne l'as pas déjà fait, tu peux remplacer la ligne :

EDITOR = "kate"

par

EDITOR = "mousepad"


Ça devrait te permettre, en cliquant sur une date ou en appuyant sur "entrée", d'ouvrir l'éditeur mousepad
(Les notes ne peuvent être supprimées depuis le programme, il faut les supprimer la main dans le dossier défini par NOTES_PATH
Il y a aussi quelques "raccourcis" que je n'ai pas détaillés ici : voir liens du premier post

Et puis, voici quelques corrections :

   - Correction de la "transposée calendrier <=> rofi" (corrige 'un bug avec les dimanches, si c'est pas malheureux)
   - Suppression de l"écriture en sortie standard si la fenêtre rofi est fermée
   - Ajout de docstrings (~= commentaires)
   - Créé variables pour gérer la géométrie de la fenêtre rofi => plus facile à régler pour l'utilisateur
   - largeur en pixel pour supprimer l'effet d'étirement

Dernière modification par David5647 (22-11-2020 12:47:19)

Hors ligne

#8 22-11-2020 14:41:25

Nietzsche
Adhérent(e)
Lieu : Sarthe
Distrib. : Debian Buster 10.6
Noyau : Linux 4.19.0-12-amd64
(G)UI : Xfce
Inscription : 18-11-2020

Re : Calendrier Rofi

David5647 a écrit :

Au passage, c'est un peu étrange de citer Nietzsche dans ce contexte ^^, bref!

Ah bon pourquoi ça ? ^^
Alors oui ça fonctionne, j'ai pu ajouter mousepad sans problème. Mais est-ce normal que la fenêtre du calendrier se ferme si je clique sur une autre fenêtre ? C'est parce que je le lance par le terminal ?
Ok je vais voir ça pour les corrections.


Peinture avatar: Ici
“Mieux vaut ne rien savoir que beaucoup savoir à moitié !”
"Ce n'est pas le doute, c'est la certitude qui rend fou."
-Nietzsche

Hors ligne

#9 22-11-2020 16:25:44

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : Calendrier Rofi

Nietzsche a écrit :

Mais est-ce normal que la fenêtre du calendrier se ferme si je clique sur une autre fenêtre ?


Oui, c'est le comportement par défaut de rofi, et je n'ai pas vérifié mais si cela n'est pas une caractéristique intrinsèque, c'en est au moins la philosophie.

Pour contextualiser un peu :
rofi à été crée pour servir de "menu démarrer" ou de "menu alt-tab', puis étendu avec d'autres fonctionnalités,
grossièrement, rofi permet d'afficher une liste, sélectionner des éléments et "faire un truc" à partir de ces éléments. Le tout étant très paramétrable.

D'autre part, dans le monde gnu/linux on aime bien bidouiller, tu connais sûrement quelques uns des environnement de bureaux (gnome, kde, xfce, cinnamon, lxde...),
ce sont des environnements complets où tout est préconfiguré :
il y a un menu démarrer, un lanceur d'applications, une barre de statut pour régler le son, la wifi, les mises à jour, afficher la date...

Mais dans leur attitude jusqu'au-boutiste, certains se mettent à dédaigner ces environnements et utilisent des outils moins complexes, plus léger, plus configurables et parfois aux philosophies très différentes.
On n'utilise plus alors un environnement complet, mais on agence entres eux des composants tel que des gestionnaires de fenêtres (openbox, i3wm, fluxbox, dwm), des barres de statut (i3bar, polybar, xfce-panel...), des menus (dmenu, rofi...). Bref.

Tout ça pour dire que rofi est construit dans l'esprit de remplacer les menus disponibles dans les interfaces "classiques",
qu'il doit : s'ouvrir, afficher une liste, effectuer une action rapidement et se fermer.
De fait, avec des quelques entourloupes, on peut le ré-ouvrir (comme je le fais déjà dans le programme), mais à la perte de focus (sélection d'une autre fenêtre), il se ferme forcément.

Hors ligne

#10 22-11-2020 21:55:02

Nietzsche
Adhérent(e)
Lieu : Sarthe
Distrib. : Debian Buster 10.6
Noyau : Linux 4.19.0-12-amd64
(G)UI : Xfce
Inscription : 18-11-2020

Re : Calendrier Rofi

David5647 a écrit :

tu connais sûrement quelques uns des environnement de bureaux (gnome, kde, xfce, cinnamon, lxde...)

Oui, j'ai essayé GNOME avant de revenir sur Xfce qui me convient pour le moment.
Ah d'accord, j'ai bien fait de posé la question, je t'en remercie.
J'essayerai de me former sur ça, car c'est intéressant.
Au fait tu en pense quoi de mon pseudo ?

Dernière modification par Nietzsche (22-11-2020 21:56:18)


Peinture avatar: Ici
“Mieux vaut ne rien savoir que beaucoup savoir à moitié !”
"Ce n'est pas le doute, c'est la certitude qui rend fou."
-Nietzsche

Hors ligne

#11 23-11-2020 17:41:25

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : Calendrier Rofi

Nietzsche a écrit :

J'essayerai de me former sur ça, car c'est intéressant.


J'me doutais que ça pouvait intéresser,  l'explication c'était aussi un peu de la pub déguisée. =P
Mais prend ton temps...

Nietzsche a écrit :

“Mieux vaut ne rien savoir que beaucoup savoir à moitié !”
-Nietzsche

Car on apprend petit à petit aussi, non? lol

Nietzsche a écrit :

Au fait tu en pense quoi de mon pseudo ?


Bah pourquoi pas! tongue Ça raconte un peu de toi, c'est aussi ça le but d'un pseudo! Bon pas le mien... roll

Et pour finir, j'ai enfin(!!!!) réussi à faire une (auto)documentation avec sphinx:
https://daguhh.github.io/

Dernière modification par David5647 (23-11-2020 17:49:30)

Hors ligne

#12 23-11-2020 19:16:26

Nietzsche
Adhérent(e)
Lieu : Sarthe
Distrib. : Debian Buster 10.6
Noyau : Linux 4.19.0-12-amd64
(G)UI : Xfce
Inscription : 18-11-2020

Re : Calendrier Rofi

David5647 a écrit :

J'me doutais que ça pouvait intéresser,  l'explication c'était aussi un peu de la pub déguisée. =P

Mais il faut oser poser des questions, pour avoir des réponses smile Et surtout ça te permet de développer tes connaissances, et moi d''apprendre. Et on est tous les deux, là pour ça!

David5647 a écrit :

Car on apprend petit à petit aussi, non? big_smile

Autre citation pertinente de Gustave Parking (humoriste français, et clown-poète (si si ça existe! ^^)), pour paraphraser celle de Friedrich Nietzsche: "Des fois, il vaut mieux ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet."
Garde la bien au chaud celle-là, car elle a son petit effet... Je ne vais pas t'apprendre à te faire des amis lol
Donc c'est surtout, quand on ne sait pas de quoi on parle, vaut mieux se taire et passer pour ignorant, que pour un véritable con... En racontant des conneries.

Oui, après c'est une passion comme une autre... J'ai beaucoup à apprendre, il faut engloutir pas mal de bouquins...
Si tu veux tu peux m'en raconter plus sur toi, par mp wink

Je vais jeté un œil wink

Dernière modification par Nietzsche (23-11-2020 19:18:31)


Peinture avatar: Ici
“Mieux vaut ne rien savoir que beaucoup savoir à moitié !”
"Ce n'est pas le doute, c'est la certitude qui rend fou."
-Nietzsche

Hors ligne

#13 26-11-2020 19:15:29

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : Calendrier Rofi

Hop!

Nietzsche a écrit :

Autre citation pertinente de Gustave Parking [...]


Mouais, je me demande si il y a des situations adaptées où la sortir.... ^^

Mise à jour:

1) Je comprends maintenant pourquoi les dépôts AUR de arch ne sont pas sûrs : https://aur.archlinux.org/packages/naivecalendar-git/
2) On peut se servir du calendrier dans un script avec l'option '-p' qui retourne la date vers la sortie standard

./naivecalendar.py -p

On selectionne une date et :

2020-11-26



naivecalendar.py -h


usage: naivecalendar.py [-h] [-p] [-f FORMAT] [-e EDITOR]

A simple popup calendar

optional arguments:
  -h, --help            show this help message and exit
  -p, --print           print date to stdout instead of opening a note
  -f FORMAT, --format FORMAT
                        option '-p' output format (datetime.strftime format, defaut='%Y-%m-%d')
  -e EDITOR, --editor EDITOR
                        editor command to open notes

Hors ligne

#14 28-11-2020 09:10:09

Nietzsche
Adhérent(e)
Lieu : Sarthe
Distrib. : Debian Buster 10.6
Noyau : Linux 4.19.0-12-amd64
(G)UI : Xfce
Inscription : 18-11-2020

Re : Calendrier Rofi

David5647 a écrit :

Mouais, je me demande si il y a des situations adaptées où la sortir.... ^^

Je plaisante bien sûr, faut être gentil! lol


Peinture avatar: Ici
“Mieux vaut ne rien savoir que beaucoup savoir à moitié !”
"Ce n'est pas le doute, c'est la certitude qui rend fou."
-Nietzsche

Hors ligne

Pied de page des forums