Bonsoir !
GenAemenuPekwm, v.06
---------------------
Le paquet ci-joint crée un "aemenu" en français imbriqué dans le menu pekwm.
Justification : le plaisir d'avoir un menu efficace et logique dans sa
langue pour lancer des programmes sous pekwm.
Intérêt : on fait d'une pierre trois coups.
* On localise le menu;
* On allège le menu pekwm, donc on simplifie sa gestion;
* Le script spm2-w12n peut s'utiliser séparément, dans un
gestionnaire de fenêtre qui n'offre aucun menu, wmx ou
echinus, par exemple.
Défis relevés
1) Que le nom localisé reste dans le menu
Ce script est basé sur l'excellent travail que technosaurus et al.
ont fait pour accélérer et détailler le menu de jwm.
Aragon en a produit une adaptation pour aemenu et pekwm. Il avait vu
le problème, l'avait mentionné dans une remarque, mais sans suggérer
de solution.
Le problème en question était que dans la série de commandes "case"
qui balise les fichiers *.desktop, la variable "NAME" accordait la
priorité au noms en anglais. L'efficacité du script original tient
justement à ce balisage rapide. Mais deux éléments, quels qu'ils
soient ne peuvent occuper le même espace en même temps, c'est une
loi de la nature, et c'est, je crois, ce qui se passait. Le script
découvrait bien le nom localisé, mais tout de suite après, le nom
anglais l'écrasait.
J'ai donc placé la découverte du nom du programme avant la boucle
"case", et fait en sorte que le nom anglais ne soit utilisé que si
le programme n'offrait pas de nom en français.
Je devrais plutôt dire "localisé", car je crois bien que le moyen
que j'ai utilisé vaut pour toutes les langues ayant une entrée
"Name[xy]" dans un fichier *.desktop.
2) Un tri
Le premier problème ici, c'est d'abord trouver le moyen de trier
par ordre alphabétique, qui est le plus simple des tris. On
l'apprend au primaire, n'est-ce pas ?
Or, tout se passe au niveau des variables dans ce script, et les
variables ne se trient pas facilement, donc pas rapidement non plus.
Solution : envoyer la variable se faire trier dans un fichier texte
par la commande "sort" et la rattraper tout de suite après pour
continuer le processus.
3) Une logique facile à suivre dans le menu
Le deuxième problème à ce niveau a été d'organiser les variables triées
sous une présentation facilement reconnaissable par un humain. J'ai
donc opté pour la logique suivante, qui me semblait aller de soi :
programmes principaux sous un thème (sous-menu "Graphiques", par ex.)
Donc on y met mtpaint, disons.
utilitaires de ce groupe (sous-sous-menu)
Donc gcolor2 vient ici, par exemple.
Sauf l'exception d'une liste extra longue, il n'y a pas de niveau
inférieur à sous-sous-menu.
4) Éliminer les scories.
Car dans le répertoire /usr/share/applications des nouveaux puppies,
on trouve des fichiers *.desktop comprenant la mention "NoDisplay=true".
C'est ici que l'utilitaire "replaceit" intervient. Il rend inactives,
dans le "aemenu" définitif, les lignes de ces programmes que le script
de création de menu a ramassées.
5) Ne pas recréer le menu inutilement.
J'ai ajouté un petit moniteur qui ne relance le générateur de menu que
si le nombre total de bytes a changé dans /usr/share/applications. Une
copie de réserve placée dans ~/.pekwm est aussi comparée avant de
lancer le générateur. Le générateur ne sera donc lancé que s'il n'y
a pas du tout de menu à disposition ou si on a installé un nouveau
programme qui a un fichier *.desktop. Ce gain de rapidité compense
la lenteur relative imposée par les deux lignes de découverte du
"Name[xy]. Remarquez, ce script était loin d'être un traînard, mais
il est encore plus rapide.
6) Faciliter le redimensionnement.
wmctrl et plusieurs scripts sont joints pour cela.
~~~~~~~~~~~
Que les applications de Puppy soient présentées dans un menu efficace
et à logique agréable n'est pas tout.
Le menu pekwm, le menu de gestion même de ce gestionnaire de fenêtres,
pour excellent qu'il est, avait un manque au niveau de la reconnaissance
des bureaux. Souvent, dans pekwm on ne savait plus dans quel bureau on
était à moins d'aller dans le bureau suivant et de revenir, ce qui est
ennuyeux et fait perdre du temps. Car pekwm est conçu sans barre sur
un côté de l'écran, on n'a pas ce genre d'info sous les yeux.
J'ai tenté de pallier ce manque en composant un script "Vous êtes ici.",
qui est mû par le "less" incorporé à tous les Puppies, et en incorporant
l'utilitaire "aedesk". On peut désormais savoir clairement où on est et
passer d'un bureau à l'autre plus facilement à partir du menu pekwm.
Enfin, j'ai fait se lancer au démarrage de pekwm le panier "stalonetray".
Un peu pour la même raison, avoir sous les yeux les principaux moniteurs
du Puppy en l'absence d'une barre de référence.
pekwm n'a pas que des faiblesses, oh que non ! J'ai inclus l'utilitaire
"date-et-heure" propre à pekwm, très pratique, qui indique l'heure et
la date à chaque fois qu'on lance le menu pekwm. Il en existe d'autres,
de ces greffons pour pekwm, si vous cherchez un peu dans Internet. Mais
j'ai voulu m'en tenir à l'essentiel.
~~~~~~~~~~~~
Quelques remarques pratiques :
* le "aemenu" s'appelle dans le menu pekwm sous "Applis", mais il est
aussi accessible directement par un clic sur le bouton du milieu
sur la souris, ou par Ctrl-Escape.
* pour enrouler ou dérouler une fenêtre : Alt-Ctrl-Z
* clic gauche : menu pekwm
* clic droit : programmes en cours
* le sous-menu "Quitter" est vis-à-vis "Menu Puppy" dans le "aemenu"
* on peut accéder à quatre fichiers d'aide :
aide "Puppy", dans le menu "Applis", sous "Menu Puppy";
aide "spm2-w12n", c'est-à-dire le "aemenu", au même endroit,
sous "spm2". On y explique entre autres comment ajouter
ses "favoris" au menu.
aide "pekwm", dans le menu de gestion "pekwm", sous-menu "pekwm";
un fichier "Touches pratiques", au même endroit, qui est un
sommaire des combinaisons de touches clavier sous pekwm.
* on peut afficher les deux menus en même temps, si jamais c'est utile.
Séquence : clic droit, clic milieu.
* pour fermer un menu, recliquez sur le bouton qui l'a appelé, ou
tapez sur "Escape".
* Le panier "stalonetray" s'affichera par défaut en bas à droite de
l'écran. Pour le changer de place, modifiez la ligne "geometry"
dans le fichier ~/.stalonetrayrc. (Il y a des instructions.)
* Il ne devrait n'y avoir qu'une ligne dans le sous-menu "Autres".
Si un programme apparaît à cet endroit, reclassez-le dans un
sous-menu utile au niveau de son fichier *.desktop en modifiant
sa catégorie. Le script générateur de menu n'y est pour rien.
* Des redimensionnements préfabriqués de fenêtre sont inclus. Faites
un clic droit sur la barre de titre d'une fenêtre et cliquez sur
"Redim." : un choix de dimensions apparaîtra. Choisissez celle
qui convient; amenez la croix sur la fenêtre et cliquez; la
fenêtre sera retaillée à la dimension choisie; bougez un tant
soit peu un des côtés pour conserver cette taille jusqu'à ce
que vous fermiez le programme.
* Enfin, ai-je besoin de vous dire que le présent paquet rend caducs
ceux présentés en page 1 de ce fil.
~~~~~~~~~~~~
Alors voilà. Je me sens comme le 1er aviateur à franchir le mur du son !
Mais l'important, c'est que ce générateur de menu aemenu/pekwm facilite
la vie des amateurs de pekwm. C'est mon souhait.
Bonne fin de soirée !