Table des matières

, ,

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.