Autoblog du Mouton Libre

Ce site n'est pas le site officiel moutonlibre.net.
C'est un blog automatisé qui réplique les articles de moutonlibre.net

3hg-menu : réorganisation des briques

Thursday 29 December 2016 at 08:48

J'étais tranquillement en train de prendre ma douche quand j'ai eu une révélation. Ne me demandez pas pourquoi, je ne le sais pas moi même, je me suis représenté le 3hg-menu dans sa version actuelle sous forme d'un schéma. Et en gros ça donne ça :

Alors juste pour information, il faut voir un « tuple » comme une liste d'objets immuables comprenant les informations nécessaires à la création d'un lanceur (commande, icône, adresse, etc.).

Et c'est à ce moment là que je me suis dit qu'un truc n'allait pas. Regardez bien en haut à gauche... La création des tuples via une arborescence de fichiers .desktop n'a finalement rien à faire dans la bibliothèque du 3hg-menu.

Donc voilà, je me lance dans un petit refactoring du code afin de bien segmenter le tout et de mettre en place un petit système de briques (plus ou moins) indépendantes et qui me semble beaucoup plus cohérent :

Cela peut sembler bizarre car le 3hg-menu a initialement été créé dans le but de gérer une arborescence de fichiers .desktop... Mais bon c'est bête de se limiter à ça quand on peut offrir bien plus avec le même outil finalement.

« Mais quel est donc l'intérêt pour l'utilisateur ? » allez vous me dire. Eh bien à vrai dire, pas grand chose. Dans un premier temps... Car cela va faciliter énormément le travail d'éventuels développeurs pour proposer une version personnalisée du 3hg-menu. Ce qui peut donc fournir à l’utilisateur moult variantes dont une qui pourrait lui convenir.

Prenez par exemple le tkmenu, il devient facile de créer un équivalent avec le 3hg-menu. :) Pour cela, il faut juste créer le plugin qui se charge de lire le fichier de configuration pour fournir une liste de tuples, et ensuite de créer une interface Tk. Mais celui qui le souhaite peut aussi créer un menu basé sur ce système de fichier de configuration mais basé sur Gtk, ou Qt, ou destiné à FluxBox, etc. Ou bien reprendre l'interface Tk mais avec la création des lanceurs basée sur l'arborescence de .desktop.

Et la bibliothèque du 3hg-menu se charge, elle, de la gestion des tuples. À savoir la création de l'arborescence qui sera fournie à l'interface, le tri des applications, la mise en cache pour accélérer l'ouverture, la création de fichiers d'icône binaires (toujours pour accélérer l'ouverture), etc.

Il y a quelques lignes de code à ré-écrire mais rien de bien méchant. :) Donc je vous fourni une version d'essai d'ici peu.

Allez je file.

Source: https://moutonlibre.net/blog/?d=2016/12/29/08/48/32-3hg-menu-reorganisation-des-briques