Dérouler un répertoire utilisateur dans le menu d’Openbox

Bonjour,

Après trois semaines de vacances sur la côte vendéenne, me voici de retour dans mon antre, rechargé à 100 % et des projets plein la tête. Bref, c’est reparti pour de nouveaux articles. Et aujourd’hui, j’ai envie de vous présenter un script que j’ai codé en bishon, un hybride de python et de bash, dont je doute qu’il soit enseigné dans les écoles d’informatique. Mais bon… l’essentiel, c’est que ça n’explose pas. En fait, pour tout vous avouer, je suis actuellement en plein apprentissage du bash et il se trouve que je ne possède pas encore les compétences suffisantes pou rédiger un script entièrement dans ce langage. D’où l’idée du Bishon.

Ce script nommé user_files_cascade.py inverse le réchauffement climatique génère un pipe menu qui déroule le répertoire utilisateur (/home/benoit) sur une profondeur de cinq niveaux. J’ai bien essayé de faire la même chose avec les répertoires du système (/etc, /usr, /bin…) mais ça n’a pas été concluant. On peut même dire que ce fut un échec. Cela dit, l’essentiel est que le répertoire utilisateur déploie son plumage tel un paon bouffi d’orgueil. Alors voilà ce que ça donne :

Ce diaporama nécessite JavaScript.

Vous trouverez le script intitulé user_files_cascade.py, comme d’habitude dans mon dépôt framagit. Je l’ai inséré dans mon projet La planète Archlinux. Donc, si vous téléchargez ce dernier, ce menu openbox se retrouvera sur votre ordinateur, parfaitement opérationnel.

Pour arriver à un tel résultat, j’ai utilisé tree une application en ligne de commande qui génère une arborescence du répertoire qu’on lui passe en argument. Par exemple, cette commande créé une arborescence du répertoire Images :

tree ~/Images

Sans argument, tree se contente de créer une arborescence du répertoire utilisateur:

tree

Je vous invite à l’installer sur votre fidèle compagnon, si ce n’est déjà fait, et à consulter en ligne de commande le manuel qui lui est dédié :

man tree

Vous y découvrirez tout un tas d’options qui, par exemple, vous permettront de n’effectuer l’opération que sur les répertoires (et par conséquent d’exclure les fichiers), ou bien de générer  un fichier avec l’extension *.html que vous pouvez ouvrir dans votre navigateur favori :

tree -H ~ > tree.html

2019-09-04-223111_1920x1080_scrot

Bon, moi il se trouve que pour la suite des opérations, j’avais besoin de créer une arborescence formatée en XML. Dans mon script, J’ai donc utilisé la commande suivante

tree ~ -dfQXL 4 -I 'Mossad|DGSE' ~ > user_tree.sh

Décomposons cette dernière de gauche à droite :

tree génère une arborescence de mon répertoire utilisateur (~) en ne sélectionnant que les répertoires (-d) dont j’obtiens les chemins absolus (-f) entourés de guillemets(-Q). L’arborescence sera formatée en XML (-X) sur 4 niveaux (-L 4), en excluant deux répertoires (-I ‘Mossad|DGSE’). Ces informations seront stockées dans un fichier user_tree portant l’extension .sh, même si en fait ce dernier contiendra 98 % de XML.

Donc, l’exécution de mon script user_files_cascade.py génère un fichier bash dont le chemin absolu est ~/.config/menu_cascade/user_tree.sh et qui contient tout un tas de commandes formatées en XML! Vous ne trouverez donc pas user_tree.sh sur mon dépôt framagit puisqu’il est actualisé à chaque démarrage de mon ordinateur. Pour cela, il m’a suffi de placer user_files_cascade.py dans le fichier ~/.config/openbox/autostart.

Est-ce que tout le monde suit où est-ce qu’il faut que je répète pour Marie-Glutène et Végabrielle qui pouffent de rire depuis un bon moment et qui commencent à m’énerver?

Le fichier user_tree.sh

Bon… Donc c’est le fichier final user_tree.sh qui configure ce qu’on appelle le pipe menu. Voici à quoi ressemble ce fichier. Vous pouvez cliquer dessus pour l’agrandir :

2019-09-04-231602_1920x1080_scrot

Le fichier menu.xml

Et c’est ~/.config/openbox/menu.xml qui configure le menu openbox que vous connaissez tous :

2019-09-04-232908_1920x1080_scrot

« Accrocher » le pipe menu au menu principal

Qu’est ce qui fait le lien entre menu.xml et user_tree.sh? Eh bien user_tree.sh est « accroché » au menu.xml à la ligne 3 et à la ligne 30. Cliquez pour agrandir.

  • La ligne n° 3 qui exécute le pipe menu doit impérativement être placée avant l’instruction  qui se trouve à la ligne n° 5.
  • Quant à la ligne n° 30, vous devez la placer là où vous souhaitez que votre pipe menu apparaisse.

Conclusion

Les pipes menus sont des outils bien pratiques car ils permettent de personnaliser le menu d’Openbox en lui adjoignant tout un tas de fonctionnalités. Vous pouvez par exemple créer un pipe menu qui vous donnera la météo du jour ou bien un pipe menu qui vous affichera un calendrier. Les exemples sur le web ne manquent pas.

Bonne journée et à bientôt,

B.B.

2 commentaires sur “Dérouler un répertoire utilisateur dans le menu d’Openbox

  1. Mieux vaut tard que jamais ;). C’est vrai que c’est beaucoup plus rapide que d’ouvrir 15 fenêtres. Le problème, c’est que je n’ai pas réussi à dépasser les 5 niveaux de profondeur. Au sixième niveau, Openbox fait une syncope.
    Merci en tout cas pour ton commentaire qui me fait découvrir Haiku que je ne connaissais pas. Je vais aller voir ça d’un peu plus près.
    BB

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.