Encore un peu de ligne de commande : dmenu

Par défaut

Vous l’aurez compris, j’aime utiliser le clavier pour agir sur ma machine, minimisant les mouvements de mon bras entre le clavier et la souris le {fr:trackball}. En cherchant un peu ce qui existait dans le monde linux, je suis tombé sur dmenu.

Ce logiciel est extrêmement léger et pour cause, il ne fait qu’une seule chose et ce n’est même pas lancer un programme ! On lui donne en entrée une liste de chaînes de caractères séparés par un retour à la ligne, il les affiche et les filtre selon ce qu’on tape au clavier. On peut naviguer parmi les choix avec les flèches et une pression sur entrée nous renvoie l’élément choisi. C’est tout.

Il ne fait que ça, le fait bien et vite. A quoi ça sert ? On s’en sert principalement pour lancer des programmes. En effet, dmenu est livré avec dmenu_path, un outil qui récupère et affiche une liste des exécutables disponibles sur le système. On combine ça avec la magie des scripts shell et ça donne :

#!/bin/dash
exec $(dmenu_path | sort -u | 
dmenu -fn '-*-terminus-*-r-normal-*-*-120-*-*-*-*-iso8859-*' 
-nb '#000000' -nf '#FFFFFF' -sb '#1793d1' -b)

La première ligne dit juste que la suite est exécutée sous dash, un des nombreux shells existant sous Linux. On a exec qui est une commande chargée d’exécuter le programme donné en paramètre. Ensuite on a dmenu_path qui est injecté (le |) dans dmenu, le tout entre $() qui permet de grouper le tout en une seule entité qui forme le paramètre à exec. Les options de dmenu sont là pour configurer l’apparence du menu :

un extrait de mon dmenu

un extrait de mon dmenu

J’ai ensuite configuré mon environnement (OpenBox) pour que Alt-Espace lance ce script et me voilà avec un lanceur de programme ultra léger ! Ça n’occupe rien en mémoire quand ce n’est pas lancé (contrairement aux lanceurs de type launchy) et quand ça l’est, la consommation est négligeable.

Du coup, avec une combinaison de scripts et de commandes shell, il est possible de faire énormément de choses, notamment avec {en:mpd} mais ça fera l’objet d’articles futurs.

8 réflexions au sujet de « Encore un peu de ligne de commande : dmenu »

  1. Geobert

    j’ai beau regarder, dzen reste un panneau d’affichage alors que dmenu est un filtre sous la forme d’un menu.

  2. dieudeschats

    Euh, je peux poser une bête question ? En rapport avec ta première phrase… tu ne connaîtrais pas un raccourci clavier pour passer d’un onglet à l’autre dans firefox ? (l’équivalent d’alt-tab pour les fenêtres sous wind0ws)

Les commentaires sont fermés.