Accueil > AbulEdu > Profils et menus personnalisés sous XFCE 4.6

Profils et menus personnalisés sous XFCE 4.6

dimanche 16 août 2009, par Francois Audirac

Ou comment gâcher plusieurs dizaines d’heures de boulot, par le simple choix de développeurs

Quelle heureuse nouvelle ont eu les nouveaux utilisateurs d’XFCE 4.6 en apprenant que leurs menus personnalisés avec la version précédente 4.4 ne sont plus valables sur cette version. Non seulement il faut tout recommencer car les fichiers de configurations ne sont plus pris en compte, mais qu’en plus il n’y a plus d’outils « humanisés » pour le faire.
Il faut donc éditer les fichiers de configuration à la main, selon cette doc succinte que je détaille ici.

L’objectif est de produire plusieurs menus différentes adaptés selon l’âge et les besoins des utilisateurs.

Le principe général

Selon les normes de freedesktop, les menus doivent être générés à partir des fichiers .desktop produits par chaque application, qui décident dans quel sous-menu ils doivent se trouver.

Par exemple, si le fichier audacity.desktop se trouve dans la catégorie AudioVideo et qu’une mise à jour le place dans la categorie Games, l’icone sera naturellement déplacée dans le menu.

Si cet aspect peut être intéressant de prime abord, il ne l’est certes pas sur un serveur éducatif car :
 il y a plusieurs centaines de programmes et on ne peut pas les proposer tous aux utilisateurs
 l’installation d’un nouveau programme ne doit pas obligatoirement être répercuté sur les menus des utilisateurs sans l’accord des responsables
 les mises à jour ne doivent pas pouvoir changer un ordre pré-établi à l’avance par choix.

Le principe technique

  1. Il faut d’abord dire à XFCE d’utiliser un menu « personnalisé »
  2. Puis il faut personnaliser ce menu (sous-menus, icones...)
  3. Enfin il faut personnaliser (et c’est là que c’est long) chaque entrée de menu (donc chaque fichier.desktop) pour la placer dans la bonne rubrique.

Astuce
 Pour personnaliser entièrement le menu, il ne faut pas tenir compte des catégories existantes (Games, Video, Developpement...), mais bien créer les siennes pour les affiner. Mais tout ceci devra se faire à la main.
 Pour générer plusieurs menus, différents il est conseiller de générer un menu complet comprenant la totalité des programmes, dans leur sous-menu respectif, puis de choisir s’il faut les afficher ou non (selon le profil souhaité).

Comment faire ?

1. Création d’un utilisateur « lambda »

Créez un utilisateur et logguez-vous avec une session XFCE

2. Utiliser un menu personnalisé
Création d’un dossier personnel pour le menu :

mkdir ~/.config}/menus/

Et copie du fichier contenant le détail du menu dans le dossier de l’utilisateur

cp /etc/xdg/menus/xfce-applications.menu ~/.config}/menus/abuledu-applications.menu

Et pour les nouvelles entrées de menus :

mkdir ~/.local/share/desktop-directories

Et pour les entrées des raccourcis :

mkdir ~/.local/share/applications

Puis faire un clic-droit sur l’icone du menu sur le bureau de « lambda » et choisir « Propriétés ».
 Vous pouvez modifier le titre(1), le fichier du menu(2) (cliquer sur parcourir, faire Ctrl+H pour afficher le dossier « .config », et pointer sur abuledu-applications.menu) et l’icone du bouton.
 Fermer pour Valider les changements.

Options du menu

3. Personnaliser le menu

Il faut ensuite retravailler le fichier pour l’adapter. Editez le fichier abuledu-applications.menu
Il est plutôt clair et contient quelque chose comme :

  • des balises « Menu », pour définir un menu ou sous-menu
  • des balises « Name » qui définissent le nom du champ (pas celui affiché)
  • des balises Category qui définissent quelles catégories d’icones seront affichées ici.
  • La première partie « Layout » permet de définir l’allure globale du menu :
    • Executer (run program)
    • Separateur
    • terminal (term)
    • Gestionaire de fichier (file-manager)
    • Navigateur Internet (Web browser)
    • Separateur
    • Menu Paramètres (Settings)
    • Separateur
    • Toutes les entrées classiques (Merge type=« all »)
    • Separateur
    • Aide (xfce4-help)
    • A propose d’XFCE (xfce4-about-xfce)
    • Déconnexion (xfce4-logout)

Vous pouvez déjà modifier (effacer) une de ces lignes, enregistrez le fichier et réactualiser le menu avec :

xfdesktop --reload

Et ça prend effet (presque) tout de suite.

  • La seconde partie définit la contenu des entrées classiques mentionnées plus haut.
    Exemple simple :
    <Menu>
            <Name>Development</Name>
            <Directory>xfce-development.directory</Directory>
            <Include>
                <Category>Development</Category>
            </Include>
        </Menu>

    Ici le menu s’appelle « Development », il pourrait s’appeler n’importe comment.
    le fichier qui définit son nom et son icone s’appelle xfce-development.directory et il contient les raccourcis .desktop qui cont dans la catégorie Development.

Modifiions-le en

<Menu>
        <Name>Nouveau Developpement</Name>
        <Directory>abuledu-development.directory</Directory>
        <Include>
            <Category>²</Category>
        </Include>
    </Menu>

Enregistrons le fichier, et réactualisons avec « xfdesktop —reload ».
Il a disparu ! (En fait il est vide, donc non affiché).
Pour y intégrer nos programmes, il faut :
 créer un fichier .directory correspondant à cette entrée :

cp /usr/share/desktop-directories/xfce-development.directory /~/.local/share/desktop-directories/abuledu-development.directory

Modifiez cette entrée pour lui associer une icone et un nom (celui affiché) de votre choix :

Icon=/usr/share/icons/AbulEdu/dev.png
Name=Developpement sous AbulEdu

4. Ajouter des raccourcis

Pour ajouter des raccourcis dans ce menu, il est nécessaire de connaître son fichier .desktop qui peut se trouver dans :
 /usr/share/applications/
 /usr/share/applications/kde4
 /usr/share/applications/kde
ou ailleurs.

Pour la trouver, lancez la commande :

locate .desktop | grep "morceau du nom"

(où « morceau du nom » est un extrait du nom du programme comme tan pour Tangram).

Copier le fichier .desktop trouvé dans le dossier de l’utilisateur :

cp /usr/share/gnome/apps/Games/gtans.desktop ~/.local/share/applications

Editez ce fichier pour modifier son nom [1] :

Name=Nom General
Name[fr]=Nom francisé
GenericName[fr]=Nom générique français (?)
Icon=/usr/share/icon/monicone.png
Category=Games; (s'il est présent, par exemple)

Pour intégrer cette icone dans le menu Developpement, il faut ajouter ou compléter :

Category=Games;AbulEdu-Dev;

Enregistrez ce fichier et réactualiser le menu avec :

xfdesktop --reload

Le menu « Développement sous AbulEdu » devrait apparaitre et contenir l’entrée « gtans » avec l’icone et le nom voulu.

5. Et les sous sous-menus ?

Il faut les indiquer de la même manière dans le fichier principal : abuledu-applications.menu avec par exemple :

<Menu>
  <Name>Educatifs</Name>
  <Directory>abuledu-educatifs.directory</Directory>
  <Include>
    <Category>AbulEdu-Educatifs</Category>
  </Include>

  <Menu>
    <Name>Mathematiques</Name>
    <Directory>mathematiques.directory</Directory>
    <Include>
      <Category>AbulEdu-Mathematiques</Category>
    </Include>
  </Menu>

  <Menu>
    <Name>Sciences</Name>
    <Directory>sciences.directory</Directory>
    <Include>
      <Category>AbulEdu-Sciences</Category>
    </Include>
  </Menu>
</Menu>

Ce menu « Educatifs » contient deux sous-menus « Mathematiques » et « Sciences ». On peut donc définir 3 fichiers directory pour définir les noms des menus :
 abuledu-educatifs.directory
 mathematiques.directory
 sciences.directory
Et pour finir la place des raccourcis selon la categorie :
 Dans Educatifs (AbulEdu-Educatifs)
 Dasn Educatifs / Mathematiques (AbulEdu-Mathematiques)
 dans Educatifs / Sciences (AbulEdu-Sciences)

6. Pour affiner, et ceux qui ont suivi...
J’ai écrit au début qu’il fallait mieux créer un menu complet pour l’affiner ensuite, en cachant certaines entrées.
 On comprend qu’il suffit de modifier une ligne sur le fichier abuledu-applications.menu pour faire disparaitre une ligne du menu.
 Pour faire disparaitre un seul raccourci, il faut éditer le fichier .desktop et rajouter (corriger) la ligne :

NoDisplay=true

Cette option cachera le raccourci et permettra aussi de le faire apparaitre plus tard si besoin.

Premiers profils pour AbulEdu 9.x

 Cycle 3

Profil cycle 3 090816
Premier profil test cycle 3.
Copier les icones dans /usr/share/icons/AbulEdu
Aperçu profil XFCE cycle 3
Gnome-general
Profil général

[1Attention, parfois ceci ne semble pas fonctionner pour des problèmes de normes du fichier .desktop, je crois

Messages