{{tag>edubuntu personnalisation À_RECYCLER}} ====== 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. {{:carte11.png}} **__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". {{:carte2.png}} 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 qui renvoie à l'emplacement d'origine une balise qui renvoie vers les exécutables dans /home/compteREF/.local/share/applications et une balise dans /home/compteREF/.local/share/desktop-directories où se trouvent les sous-menus. {{:carte3.png}} **__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 {{:carte4.png}} Exemple de menu où une application ouvre un fichier {{:carte5.png}} Exemple de menu de script {{:carte6.png}} **__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 : [[utilisateurs:faco06|Thomas Casas]], [[utilisateurs:faco06|Ilyes Ben Kheder]].//