MouTonLibre

2 commentaires

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&nbsp? » 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.

8 commentaires

Petite brève concernant le 3hg-menu (pour les articles de fond, il faudra encore attendre un peu)...

La publication des versions alpha du 3hg-menu a permis de passer à la vitesse supérieure pour le développement de cette application. Depuis la version alpha-2 quelques bugs ont encore été résolus :

  • meilleure navigation au clavier (exécution avec appui sur la touche entrée et déplacement via flèches directionnelles) ;
  • changement d'onglet possible via un scroll à la souris ;
  • correction du bug qui dupliquait les applications récentes.

Je pense que la version Gtk a maintenant atteint la maturité nécessaire pour une publication prochaine et c'est pourquoi je vous invite à tester la version bêta. :)

Comme d'habitude, la documentation est ici et vous pouvez télécharger la version bêta ici. :)

1 commentaire

Depuis le précédent article et grâce à quelques retours (merci trentanel) suite à la publication de la version alpha-1 du 3hg-menu, j'ai effectué quelques modifications.

La plus importante et la plus visible concerne l'interface graphique. L'ancien système à onglets (un StackSwitcher) avait une largeur fixe et ne permettait pas un redimensionnement du menu inférieur à cette largeur. Au delà de quelques onglets, on arrivait donc à un menu étiré et pouvant ne plus être contenu dans des écrans de petites tailles. J'ai donc basculé le menu vers un système à onglet plus classique (un Notebook) afin de permettre un redimensionnement libre.

Pour le reste, il s'agit surtout de corrections de bug :

  • en cas d'absence d'éditeur de texte, de terminal ou de lanceur d'application sur le système, un message d'avertissement est affiché ;
  • il n'est plus possible d'éditer les .desktop dans l'onglet "Récents" (car il n'existe pas physiquement dans l'arborescence) ;
  • et enfin les applications récentes sont mises à jour même en cas de liste pleine...

Pour plus d'informations, c'est toujours ici et pour télécharger une archive pour tester un peu le bousin c'est ici. :)

Amusez-vous bien !

Screenshot 3hg-menu 1Screenshot 3hg-menu 2
Screenshot 3hg-menu 3
Screenshot 3hg-menu 4
Screenshot 3hg-menu 5

8 commentaires

Il y a peu avec Thuban nous avons établi à peu près simultanément un fait indéniable : le HandyMenu actuel met trois plombes à démarrer. C'est devenu une vraie usine à gaz avec le temps. Nous nous sommes donc amusés à réécrire des menus reprenant globalement la même interface mais ayant des moteurs totalement différents. Cela a donné aujourd'hui deux nouveaux menus :

  • le tkmeν proposé par Thuban ;
  • et le 3hg-menu dont je vais vous parler grandement ici.

Ces menus, bien que issus de la même idées, sont finalement totalement différents et pourraient même être complémentaires. Le tkmeν a pour vocation d'être le plus léger possible : un fichier de configuration tout simple et une interface minimaliste et hyper légère reposant sur la bibliothèque Tk. Quant au 3hg-menu, mon idée était de créer une menu reposant sur une arborescence de fichiers .desktop, qui je le rappelle sont standardisés par freedesktop.org et permettent d'exécuter les applications. Ainsi, n'importe qui peut créer rapidement son menu personnalisé en collant les fichiers .desktop des applications installées, présentes dans le répertoire /usr/share/applications, dans différents dossiers et en faisant pointer le menu sur ce dossier.

Après avoir exprimé mon idée sur Debian-Facile, phlinux m'a alors orienté vers popdown, un menu reposant lui aussi sur des fichiers .desktop. La merveille du Libre : j'ai alors repris une partie du code du menu popdown pour l'intégrer à mon projet.

Après un long travail pour découpler ce dont j'avais besoin de l'interface du menu popdown, après couplage avec une interface type "HandyMenu" mais permettant de se déplacer dans l'arborescence, après l'ajout de nombreuses fonctionnalités comme la gestion des dernières applications exécutées (deuxième capture d'écran ci-dessous) ou la possibilité d'afficher une interface dédiée à l'aide aux débutants (dernière capture) et après finalisation du tout, j'ai donc le plaisir de vous appeler à tester tout ça en téléchargeant la version alpha-1 ici. Tout est expliqué sur cette page et vous pourrez télécharger une archive avec tout le nécessaire pour les tests. Ce serait un immense plaisir que de recevoir des remarques de votre part !

Ah et profitez-en pour tester également le tkmeν...

3hg-menu
Applications récentes

Assistance 3hg-menu