Avant de commencer je rappelle que vous pouvez trouver le menu openbox de Crunchbang en francais ici
Le menu Openbox est très flexible, et utilise ce que l'on appelle des “pipe menu” ou vous pouvez virtuellement afficher ce que vous voulez. Hélas les applications que vous installez ne sont pas mises à jour automatiquement dans ce menu et vous devez le faire à la main.
Il y a 2 manières d'éditer le menu Openbox, une interface graphique “Obmenu”, ou en éditant directement le fichier menu.xml.
Vous pouvez accéder à Obmenu via le menu, Préférences –> Configurer Openbox –> Editeur graphique du menu.
L'utilisation d'Obmenu est assez intuitive, je ne m'étendrais donc pas sur le sujet.
Pour éditer une entrée, sélectionnez la et éditez les détails dans le bas de la fenêtre, pour ajouter une nouvelle entrée cliquez sur “new item” dans le menu.
Une item correspond a un lanceur, donc a un programme que vous souhaitez exécuter. Et un menu… et bien c'est un menu quoi.
Label : Texte qui sera affiché dans le menu
Action : Action de cette entrée lors d'un clic
-Execute : pour executer un programme
-Reconfigure : demande a Openbox de relire ses fichier de configuration
-Restart : Ferme complètement Openbox et le relance (ainsi que tout les processus enfant d'Openbox)
-Exit : Ferme Openbox
Execute : chemin vers le programme qui dois être exécuter.
pour plus d'informations sur Obmenu
http://obmenu.sourceforge.net/index.html (en)
Le fichier menu.xml est accessible depuis le menu via Préférences –> Configurer Openbox –> Editer menu.xml. mais vous pouvez le trouver dans /home/$USER/.config/openbox/menu.xml
Ce fichier utilise la syntaxe XML, sa structure est simple :
<?xml version="1.0" encoding="utf-8"?> <openbox_menu xmlns="http://openbox.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openbox.org/ file:///usr/share/openbox/menu.xsd">
Les deux premieres lignes définissent le format XML et ouvre ainsi”<openbox_menu>”
<menu id="root-menu" label="Openbox 3">
Ceci créer le menu racine qui contiendra les lanceurs et les sous menus.
Voici comment est constitué un lanceur
<item label="Exécuter"> <action name="Execute"> <execute> gmrun </execute> </action> </item>
<item label="Exécuter">
Le label est le nom que vous verrez s'afficher dans le menu, dans ce cas 'Exécuter'
<action name="Execute">
Action défini ce qu'il doit se passer lorsque l'entrée est cliquée.
<execute> gmrun </execute>
Voici la commande qui est exécutée lorsque vous cliquer sur l'entrée dans le menu.
</action> </item>
Ces tags sont les tags de fermeture de l'action et de l'item. Ce sont en quelques sorte des conteneurs. Chaque tag ouvert doit être fermé avant d'en ouvrir un nouveau.
Créer un menu
<menu id="monMenu" label="Menu perso"> ##vous pouvez inclure ici d'autre menu <menu id="monMenu" label="Menu perso"> ## mais aussi des items <item label="Mon Programme"> <action name="Execute"> <execute> monProgram </execute> </action> </item> </menu> </menu>
Plus d'informations sur le menu Openbox http://openbox.org/wiki/Help:Contents#Menus(en)
Les “Pipe menus” (prononcer “païp”) lorsqu'ils sont utilisés, exécutent une commande en terminal et affichent le résultat dans le menu. Il peut s'agir d'informations aussi diverses que l'heure ou la météo, un calendrier, une to-do list ou encore afficher la musique que vous écouter actuellement. Dans le menu par défaut se trouvent déjà quelques pipe-menus. Le sous menu “Places” ou “Raccourcis” (si vous avez francisé votre #!) génère un menu contenant les dossiers de votre dossier personnel, si vous cliquez sur une image une visionneuse d'image s'ouvrira, si vous cliquez sur un fichier texte il s'ouvrira dans un éditeur de texte.
Cette partie est destinée a couvrir l'installation d'un script qui sera exécuté en tant que menu pipe dans openbox. (pour l'exemple une todo list sources:http://www.davisd.com/blog/2010/11/28/openbox-pipe-menu-todo-task-list/ qui s'appuie sur le script de gina trapani todo-txt cli sources:https://github.com/ginatrapani/todo.txt-cli/wiki/Quick-Start-Guide)
#! possède un répertoire ~/bin qui contient les scripts et programmes personnels.
Commençons par y mettre le script de gestion des tâches
wget --no-check-certificate https://github.com/downloads/ginatrapani/todo.txt-cli/todo.txt_cli-2.7.tar.gz tar -xvzf todo.txt_cli-2.7.tar.gz -C ~/bin mv ~/bin/todo.txt*/todo.sh ~/bin/todo.sh && chmod +x ~/bin/todo.sh mkdir ~/.todo mv ~/bin/todo.txt*/todo.cfg ~/.todo/config && chmod +x ~/.todo/config rm -Rf ~/bin/todo.txt*
Edition du menu de configuration
gedit ~/.todo/config
Changer le dossier par défaut
#export TODO_DIR="/Users/gina/Documents/todo" export TODO_DIR="C:/Documents and Settings/gina/My Documents"
par
export TODO_DIR="/home/$USER/.todo" #export TODO_DIR="C:/Documents and Settings/gina/My Documents"
A présent vous pouvez ajouter ou supprimer des tâches grace a la commande
todo.sh add "La tache que vous souhaitez ajouter"
A présent revenons au sujet d'origine, le pipe-menu qui affichera les tâches créées dans le menu openbox
wget --no-check-certificate https://github.com/davisd/todo.txt-cli-openbox-pipe-menu/tarball/master && mv master ~/bin/todo_menu.tar.gz tar -xvzf ~/bin/todo_menu.tar.gz && rm ~/bin/todo_menu.tar.gz mv davisd*/todo_menu.sh ~/bin/
le dossier david-todo-txt contient les fichiers de licence et de l'auteur. Ils ne sont pas necessaires pour l'execution du script et vous pouvez les supprimer après en avoir pris connaissance
rm -Rf ~/bin/davisd*
une fois le script téléchargé, il faut le rendre executable
chmod +x ~/bin/todo_menu.sh
Vous pouvez éditer le script afin de le franciser
gedit ~/bin/todo_menu.sh
la ligne 43 affiche l’entête du menu remplacez
echo "<separator label=\"Tasks\" />"
par
echo "<separator label=\"Tâches\" />"
Maintenant que le script est installé il faut créer l'entrée dans le menu.
Si vous utilisez Obmenu
Cliquer sur la ligne ou vous souhaitez insérer l'item, puis selectionnez 'Pipemenu' dans le menu “Add” donner un nom dans la section “label” et enfin dans la section “execute” tapez le chemin complet de votre script ex. ~/bin/todo_menu.sh. Il ne vous reste qu'a sauvegarder et a recharger Openbox.
En éditant directement menu.xml
Rendez-vous dans la section où vous souhaitez placer votre pipe-menu et ajoutez ceci :
<menu execute="~/bin/todo_menu.sh" id="todo_menu" label="Liste de tâches"/>
Sauvegardez et quittez.
Recharger
Il faut ensuite recharger le menu via Préférences –> Configurer Openbox –> Reconfigurer
ou alors dans un terminal
openbox --reconfigure
Si vous voulez que les applications que vous installez s'ajoutent automatiquement dans le menu, un menu pipe existe pour cela. Ouvrez le fichier menu.xml et ajoutez :
<menu id="/Debian" />
à l'endroit où vous souhaitez que le menu apparaisse.
Ouvrez le fichier ~/.config/openbox/rc.xml via Préférences –> Configurer Openbox –> éditer rc.xml ou en passant par un terminal. Puis trouvez la partie contenant :
<!-- system menu files on Debian systems <file>/var/lib/openbox/debian-menu.xml</file> <file>debian-menu.xml</file> -->
et changez le en :
<!-- system menu files on Debian systems --> <file>/var/lib/openbox/debian-menu.xml</file> <file>debian-menu.xml</file>
Il vous faut ensuite installer l'application “menu”, via Synaptic: Systeme –> Gestionnaire de paquets Synaptic - faite une recherche sur “menu” - clic droit → “selectionner pour installation” - appliquez
ou alors via un terminal
sudo apt-get install menu
Pour finir rechargez Openbox
openbox --reconfigure
Pipemenus sur le Forum Crunchbang (fr)
Pipemenus sur le Forum Crunchbang (en)
Documentation et scripts sur les pipemenu Openbox (en)
Contributeur: aphelion