2.7 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 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\nitem 1\nitem 2\nitem 3' | dmenu
Une barre apparaîtra en haut de l'écran avec une zone d'entrée de texte à gauche pour filter suivie des différents éléments. dmenu
capture toutes les entrées du clavier. On peut alors entrer du texte pour filtrer les éléments.
dmenu
est contrôlé uniquement avec le clavier. Quelques raccourcis :
Bas
ouDroite
ouCtrl+n
: sélectionner l'élément affiché suivant ;Haut
ouGauche
ouCtrl+p
: sélectionner l'élément affiché précédent ;Début
ouCtrl+a
: sélectionner le premier élément affiché ;Fin
ouCtrl+e
: sélectionner le dernier élément affiché ;Entrée
: valider l'élément sélectionné et quitter ;Échap
: quitter avec une erreur ;Ctrl+Entrée
: valider l'élément sélectionné.
Lorsque
dmenu
est invoqué en mode vertical, avec l'option-l <n>
, les touchesDroite
etGauche
déplacent le curseur au lieu de changer 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.
L'espace après les options
-l
et-p
est nécessaire.
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
}