Edubuntu - Menus ltsp personnalisés
Objectifs
La documentation d' EDUBUNTU permet, via MenuEditor, de créer les menus des clients légers et de les affecter aux comptes LTSP de son choix. En revanche on ne peut les relire et à fortiori les compléter.
Ce document a pour objectif de décrire une méthode permettant d'y parvenir.
Ressources
Les menus d'Ubuntu sont spécifiés dans le document suivant :
http://standards.freedesktop.org/menu-spec/menu-spec-latest.html
Il se présentent sous forme de structures XML en deux branches de répertoires pouvant se situer à différents endroits de l'arborescence du disque.
Ainsi, l'organisation du menu LTSP par défaut de menueditor se trouve dans :
/etc/edubuntu-menueditor/monmenu
Monmenu est le nom que l'on a donné à menueditor pour personnaliser le ou les menus clients. C'est ce menu qu'on ne peut relire, après qu'on l'ai créé.
Méthode
Première étape
La première étape consiste à créer, sur le serveur, un compte client de référence ayant le statut administrateur qui va servir de compte où sera bâti le menu client de référence à l'aide de menueditor. Ce menu, dans le sous-répertoire "xdg",
/etc/menu-editor/monmenu/xdg/application.menu
porte le nom par défaut de "application.menu". On ne peut pas le changer.
Deuxième étape
On quitte le serveur et on passe sur le compte client de référence du client léger. Avec un clic droit sur le menu Applications en haut à gauche, on édite le menu que l'on vient de créer dans le répertoire monmenu. Cette fois l'éditeur de menu par défaut est "Alacarte".
Les modifications apportées à ce menu initial se trouvent dans /home/compteREF/.config/menus. Ce menu secondaire s'appelle aussi application.menu.
Il comprend une balise <PARENT> qui renvoie à l'emplacement d'origine une balise <INCLUDE> qui renvoie vers les exécutables dans /home/compteREF/.local/share/applications et une balise <MENU> dans /home/compteREF/.local/share/desktop-directories où se trouvent les sous-menus.
Troisième étape
Les trois exemples suivants couvrent l'essentiel de la construction des menus :
Exemple de menu où un navigateur pointe vers un site Internet
Exemple de menu où une application ouvre un fichier
Exemple de menu de script
Quatrième étape
Voici deux méthodes de reproduction du menu de référence vers les autres menus d'un même groupe :
méthode n°1 :
script :
clear echo ls /home echo echo -n "Veuillez choisir le compte source: " read comptes while [ -z "$comptes" ] do echo echo "Saisie incorrecte" echo -n "Champs vide veuillez ressaisir le nom du compte: " read comptes done if [ -e "/home/$comptes" ] then f=f elif [ -z "$comptes" ] then echo "Entrée inconnue, appuyez sur une touche pour continuer" read touche else echo echo "Le compte $comptes n'éxiste pas" fi echo ls /home echo echo -n "Veuillez choisir le compte ou sera stocké les menus: " read compted while [ -z "$compted" ] do echo echo "Saisie incorrecte" echo -n "Champs vide veuillez ressaisir le nom du compte: " read compted done if [ -e "/home/$compted" ] then i=iii elif [ -z "$compted" ] then echo echo "Entrée inconnue, appuyez sur une touche pour continuer" read touch else echo echo "Le compte $compted n'éxiste pas" fi echo echo "Comme compte source vous avez choisi: $comptes" echo "Comme compte de destination vous avez choisi: $compted" echo echo -n "Vous confirmez ? [Y/n]: " read conf if [ "$conf" = Y ] || [ "$conf" = y ] || [ -z "$conf" ] then sudo apt-get install sl cp -R /home/$comptes/.config /home/$compted cp -R /home/$comptes/.local /home/$compted sl elif [ "$conf" = n ] || [ "$conf" = N ] then l=i else echo echo "Entre inconnue, appuyez sur une touche pour continuer" read touche fi
méthode n°2 :
manuellement :
cp -R /home/compteREF/.config /home/compteDESTINATAIRE cp -R /home/compteREF/.local /home/compteDESTINATAIRE
Contributeurs principaux : Thomas Casas, Ilyes Ben Kheder.