Outils d'utilisateurs

Outils du Site


generateur_de_menus

Générateur de menus fvwm

Fvwm n'est qu'un gestionnaire de fenêtres, donc il n'a aucunes raison de vous fournir des menus crées automatiquement comme le font GNOME ou KDE…

Toutes fois, gérer son menu à la main n'est pas vraiment pratique ainsi il est possible de créer des programmes ou des script qui créent des menus. Personnellement j'ai utilisé pendant longtemps un script qui testait si l'application existe (which appli) et qui créait le menus approprié à l'aide du module FvwmCommand (qui permet de lancer une commande fvwm dans un shell). Mais le code était lourd et illisible car j'avais des tableau immense qui contenait des liste d'applications et les informations qui vont avec (catégorie de menus, application à lancer dans un terminal ou non, application à lancer en tant que root ou non etc…).

Je me suis donc mis à l'écriture d'un programme en C qui effectuais les même actions mais plus rapidement et avec plus de flexibilité. Il fonctionne avec une base de donnée des applications donc je vais vous apprendre à vous en servir.

Installation, compilation

Tout d'abord il faut que le module FvwmCommand soit lancée, dans votre StartFunction rajoutez le :

+I Module FvwmCommandS

Récupérez le programme ici : http://fvwm.tuxfamily.org/pub/wiki/FvwmMenuGen.c —> visualisation web ici : FvwmMenuGen.c.

Récupérez aussi le Makefile : http://fvwm.tuxfamily.org/pub/wiki/Makefile.

Ensuite compilez le programme avec la commande make.

Soit en langage shell :

wget http://fvwm.tuxfamily.org/pub/wiki/FvwmMenuGen.c
wget http://fvwm.tuxfamily.org/pub/wiki/Makefile
make

Ce programme fonctionne avec un fichier de base de donnée, vous pouvez utiliser le mien ou bien créer le votre From Scratch.

Pour lancer le programme il suffit de faire :

./FvwmMenuGen fichier_de_données

Le fichier de données doit avoir la syntaxe suivante :

# Ceci est un commentaire
# Ceci est une entrée classique :
utilitaires:nautilus --no-desktop:nautilus:0:0
# Si nautilus est dans le $PATH, ceci lancera la commande suivante : AddToMenu utilitaires "%32x32/nautilus.png%nautilus" Exec exec nautilus --no-desktop
# En gros, la première entrée est le menus en question, la deuxième est la commande à rentrer, la 3ème est le Nom à afficher
# La quatrième entrée doit être 0 si on veut le lancer normalement, ou 1 s'il faut la lancer dans un terminal (pour les appli non graphiques
# La 5ème entrée doit être 0 si on veut lancer en tant qu'utilisateur, ou 1 s'il faut le lancer avec les droits root.
#
@Main:internet:internet.png:Internet
# Cette ligne correspond à un popup (liens d'un menu vers un autre), elle commence par un @
# Celui ci crée un popup de Main vers internet avec l'image internet.png et avec nom Internet.
#
>AddToMenu Main "%16x16/penguin.png%Fvwm $[version.num]"    Title
# Cette ligne est une injection directe de code fvwm (elle commence par un >), la commande est immédiatement exécutée.

Quelques remarques :

Les appli root en consoles sont lancée avec Exec exec $fvwm_term -e sudo appli. Donc je vous conseille d'avoir cette variable d'environnement correctement fixée. Par exemple moi j'ai ça dans mon fvwm2rc :

SetEnv fvwm_term urxvt

Les appli root graphiques sont lancées avec gksu, kdesu ou sudo (au debut du programme il teste gksu, puis kdesu et il utilise sudo si aucuns des deux autres n'a marché).

Vous pouvez très bien mettre des variable d'environnements dans votre fichier de base de donnée. Par exemple moi j'ai ça :

Main:$fvwm_term:Terminal:0:0

Le programme cherche si la valeur de $fvwm_term est dans le path.

Si vous avez des questions ou si vous avez des problèmes, n'hésitez pas à me contacter par mail ou sur fvwm-fr@irc.freenode.org !

generateur_de_menus.txt · Dernière modification: 2008/10/10 18:15 par 82.234.40.34