Un environnement de bureau tout en Python (1ère partie : le menu principal)

Bonjour et bonne année 2019!

Malgré toutes les incertitudes qui pèsent sur nos têtes, explosion de la bulle financière, écroulement de notre système économique, conflit nucléaire généralisé, emballement incontrôlable du climat, malgré toutes les horreurs auxquelles nous sommes confrontés quotidiennement, je pense en particulier à la destruction de la porte du ministère de Benjamin Griveaux avec un char d’assaut Leclerc un chariot élévateur Fenwick, sachons garder espoir et réjouissons-nous d’être encore de ce monde.

Bref, la vie continue et aujourd’hui, j’ai envie de vous présenter mon nouveau « projet que j’ai », à savoir un environnement de bureau tout en Python. Ce projet qui appartient à la catégorie « Réinventons la roue puisqu’elle existe déjà », sera étalé sur quatre articles de blog. De quoi s’agit-il au juste? Eh bien, j’utilise depuis pas mal de temps le gestionnaire de fenêtres Openbox et il faut savoir qu’Openbox, à la base, c’est ça :

bureau 1_006

C’est-à-dire un fond d’écran inexistant, pas de barre de tâches, pas de menu d’application à l’exception d’une petite liste triste comme un jour de pluie, que l’on déroule avec un clic droit. Pour égayer tout ça, j’avais rajouté Plank (pour le dock), tint2 (pour la barre de tâches, feh pour le fond d’écran. J’aurais pu utiliser idesk pour les icônes de bureau mais je ne l’ai pas fait.

L’objectif de mon projet est donc de virer toutes ces fonctionnalités et de rajouter:

  • un menu principal qui ouvre les applications,
  • un fond d’écran,
  • une barre de tâches,
  • des icônes de bureau.

Le tout, bien sûr, codé en python.

Le menu principal

J’ai commencé par le menu principal qui est déjà fonctionnel. J’ai aussi codé l’ébauche de la barre de tâches mais mon petit doigt me dit que ce sera peut-être la partie la plus difficile.

Pour le menu principal, voila ce que ça donne :

bureau 1_007

Tout en bas, vous apercevez une bande noire qui est l’ébauche de la future barre de tâches. Tout à gauche, on trouve une icône qui est un bouton ouvrant et refermant le menu principal. Au-dessus de ce bouton, on trouve le menu constitué de douze catégories différentes. Certaines icônes ouvrent directement l’application, d’autres ouvrent un sous-menu d’applications. Voici une petite vidéo explicative. Veuillez m’excuser par avance pour ma diction hésitante. 

Pour celles et ceux que ça intéresse, le code est ici, dans mon dépôt framagit. Comme je le dis dans la vidéo, la partie la plus délicate est le rajout et le retrait d’une application. J’ai le sentiment que c’est un peu bancal et qu’il faudrait que je verrouille ça avec des try-except-else. Donc, le script est perfectible. Bon… je ne suis pas développeur professionnel. Ce n’est pas mon métier mais je m’efforce tout de même de faire les choses le mieux possible. Ça ne sert à rien de goretter son travail.

À la semaine prochaine pour le deuxième épisode qui consistera cette fois-ci à coder un script permettant de changer le fond d’écran toutes les dix minutes et ce, de manière aléatoire.

 

15 commentaires sur “Un environnement de bureau tout en Python (1ère partie : le menu principal)

Ajouter un commentaire

  1. Bonjour, j’ai hâte de suivre ton projet car moi-même, j’étais à la recherche pour l’expérimentation d’avoir un environnement de bureau full python mais manque de temps et de compétences (n’étant pas un pur dév mais plus un bidouilleur)
    mais j’ai une première question pourquoi ne pas prendre comme base, qtile qui est un windows manager en python?
    http://www.qtile.org/

    et xonsh pour le shell (Xonsh is a Python-powered, cross-platform, Unix-gazing shell language and command prompt.)?
    https://xon.sh/

    J'aime

    1. Bonjour,
      Merci pour ton commentaire,
      J’ai déjà commencé à modifier ce menu principal en supprimant toutes les fenêtres pop up qui me plaisaient moyennement. Il faudra que je fasse une autre vidéo. Je vais essayer de l’améliorer petit à petit.
      En ce qui concerne qtile et xonsh, je ne connaissais pas. Merci pour les liens. Je vais aller voir ça de plus près.
      Cordialement.

      J'aime

    1. Bonjour Pengouin,

      Non, je n’ai rien vu passé. je viens de vérifier dans ma boite mail. Est-ce que tu peux me les renvoyer en privé? Ou alors tu m’envoies juste un court message en privé. Je te réponds et comme ça tu auras mon adresse mail pour m’envoyer tes propositions de code. Je ne veux pas la mettre dans ce message publiquement.
      Benoît

      J'aime

    2. Bonsoir Stéphane,

      Je suis désolé. je n’arrivais pas à fusionner et j’étais complètement perdu avec cette histoire de commits en retard par rapport à la branche. Du coup, j’ai recréé un nouveau projet qui porte le même nom. L’ancien, je l’ai détruit. J’ai poussé mon dernier fichier menu.py avant que tu y apportes tes modifications puis j’ai poussé ton fichier menu.py que j’avais sauvegardé pour qu’on voit bien les modifications, et enfin j’ai poussé deux autres commits de menu.py.
      Je me rends compte qu’à part les commandes git add, git commit et git push, tout le reste est très obscur pour moi. Il va falloir que je m’y mette sérieusement.

      J'aime

  2. Juste pour info, le Leclerc (ou AMX-Leclerc) est le remplaçant de l’AMX30, donc l’AMX30 Leclerc n’existe pas (peut être le sais-tu et que cette « erreur » est en fait voulue ?) 😉
    En tout cas merci d’avoir partagé ce projet, très sympa.

    J'aime

    1. Bonjour Tux,
      Non, tu me l’apprends! Du coup, je vais corriger l’article. Il faut dire que je n’ai pas fait mon service militaire dans les blindés mais dans une unité spéciale de paras sous-marins. Malgré toute la volonté du monde, Je n’ai jamais réussi à ouvrir mon parachute sous l’eau. J’ai échappé de peu à la noyade 😉

      J'aime

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Créez un site ou un blog sur WordPress.com

Retour en haut ↑

%d blogueurs aiment cette page :