2.2 KiB
title | categories |
---|---|
Howto dmenu | desktop menu suckless x |
Site officiel : https://tools.suckless.org/dmenu/
dmenu
est logiciel graphique (sur X) écrit en C pour générer un menu à partir d'une liste.
Certains gestionnaires de fenêtre peuvent utiliser dmenu
pour lister l'ensemble les programmes dans la variable PATH
et permettre à l'utilisateur de choisir le programme à exécuter. C'est une façon d'utiliser dmenu
.
dmenu
affiche un menu à partir de son entrée standard. Une ligne est un élément du menu. L'utilisateur peut selectionner un ou plusieurs éléments. Les éléments choisis sont écrits sur la sortie standard.
Installation
Sous Debian
Le logiciel se trouve dans le paquet suckless-tools
# apt install suckless-tools
Utilisation
dmenu
sera toujours invoqué dans une chaîne de pipes :
$ commande | dmenu | commande
$ dmenu < fichier | commande
$ commande | dmenu > fichier
$ variable=$(commande | dmenu)
Pour s'entrainer, on peut utiliser cette commande :
$ printf 'élément 1\nélément 2\nélément 3\n' | dmenu
dmenu
est contrôlé uniquement avec le clavier. Quelques raccourcis :
Droite
ouCtrl+n
: élément suivant affiché ;Gauche
ouCtrl+p
: élément précédent affiché ;Début
ouCtrl+a
: premier élément affiché ;Fin
ouCtrl+e
: dernier élément affiché ;Entrée
: valider l'élément sélectionné et quitter ;Échap
: quitter avec un erreur ;Ctrl+Entrée
: valider l'élément sélectionné.
Options couramments utilisées :
-i
: recherche insensible à la case ;-l <n>
: afficher le menu verticalement, en affichant<n>
lignes en même temps ;-p <str>
: définir un prompt.
Exemple : parcourir une hiérarchie de fichiers
Fonction récursive en Bash pour parcourir une hiérarchie de fichiers.
dmenu
peut être embarqué dans une fenêtre avec l'option-w <window_id>
dmenu_browser() {
sel="$(ls -FL | grep '/$' | dmenu -i -l 11 -p "$(pwd)" -w "${WINDOWID}")"
if [[ -d "${sel}" ]]
then
if cd "${sel}"
then
dmenu_browser
fi
fi
}