diff --git a/HowtoDmenu.md b/HowtoDmenu.md
new file mode 100644
index 00000000..db5d122a
--- /dev/null
+++ b/HowtoDmenu.md
@@ -0,0 +1,75 @@
+---
+title: Howto dmenu
+categories: desktop menu suckless x
+---
+
+**Site officiel** :
+
+`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` ou `Ctrl+n` : élément suivant affiché ;
+* `Gauche` ou `Ctrl+p` : élément précédent affiché ;
+* `Début` ou `Ctrl+a` : premier élément affiché ;
+* `Fin` ou `Ctrl+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 ` : afficher le menu verticalement, en affichant `` lignes en même temps ;
+* `-p ` : 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 `
+
+~~~ { .bash }
+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
+}
+~~~
+