Table des matières
dmenu: le menu dynamique pour X
présentation - installation
dmenu est un menu dynamique pour X entièrement contrôlé depuis le clavier. il est disponible pour toutes les distributions GNU/Linux. dmenu est ultra-léger, rapide, et est développé par suckless.org comme dwm.
chez Debian, il fait parti du paquet suckless-tools
# apt-get install suckless-tools
vous pouvez aussi choisir une version supportant les polices xft, il faudra alors passer par la compilation:
- on installe les dépendances
# apt-get install libxft-dev libxinerama-dev
- on récupère les sources de dmenu-xft
$ wget http://piserv/public/dmenu-xft-4.2.1.tar.gz
- on extrait l'archive et on se place dans le répertoire
$ tar xvzf dmenu-xft-4.2.1.tar.gz $ cd dmenu-xft-4.2.1/
- on compile et on installe
$ make # make install
vous pouvez désormais utiliser dmenu avec les polices xft.
utilisation
dmenu se lance simplement grâce à la commande dmenu_run et liste les applications et scripts inclus dans $PATH. voici son affichage par défaut:
dmenu accepte les options suivantes:
option | argument | description |
---|---|---|
-b | affiche dmenu en bas de l'écran. | |
-f | dmenu prend la frappe en compte immédiatement mais bloque X jusqu'à la lecture complète de stdin. | |
-i | dmenu prend la casse en compte. | |
-l | digit | dmenu affiche le menu verticalement avec le nombre de ligne passé en argument. |
-p | texte | defini le texte à afficher à gauche de l'écran. |
-fn | font | police utilisée. |
-nb | #RRGGBB | couleur du fond. |
-nf | couleur du texte. | |
-sb | couleur du fond sélectionné. | |
-sf | couleur du texte sélectionné. | |
-v | affiche la version de dmenu. |
les scripts
dmenu peut-être utilisé pour bien des choses: changer son fond d'écran, naviguer dans ses raccourcis, son dossier utilisateur, quitter sa session…
- dmenu-wall.sh: ce script liste les images situées dans 'WALLDIR' et affiche l'image sélectionnée en fond d'écran:
#!/bin/bash WALLDIR=$HOME/pics/walls wall=`ls -A $WALLDIR | dmenu -b -fn "-*-fixed-*-*-*-*-10-70-*-*-*-*-*-*" -nb '#222222' -nf '#7D7D7D' -sb '#7D7D7D' -sf '#222222' -p 'set as wall:'` && eval "feh --no-xinerama --bg-scale $WALLDIR/$wall"
- dmenu-todo.sh: ce script sert de pense-bête: vous écrivez, il rajoute une tâche. vous sélectionnez, il efface la tâche;
#!/bin/sh ## script pour gérer les différentes tâches à faire avec dmenu. ## sources: <http://thuban.toile-libre.org/index.php/2011/01/22/un-pense-bete-avec-dmenu/> # variables utilisées pour dmenu SB="#7D7D7D" SF="#222222" NB="#222222" NF="#7D7D7D" FN="-*-fixed-*-*-*-*-10-70-*-*-*-*-*-*" FILE=~/.todo SCRIPT=~/bin/dmenu-todo.sh HEIGHT=$(cat $FILE | wc -l) PROMPT="write:add | select:del > " ACTION="cat $FILE | dmenu -fn $FN -l '$HEIGHT' -nb '$NB' -nf '$NF' -sb '$SB' -sf '$SF' -p '$PROMPT:' " CMD=$(eval $ACTION) while [ -n "$CMD" ]; do grep -q "^$CMD" $FILE if [ $? = 0 ]; then grep -v "^$CMD" $FILE > /tmp/todo mv /tmp/todo $FILE else echo "$CMD" >> $FILE exec $SCRIPT && exit 7 fi CMD=$(eval $ACTION) done exit 0
- dmenu-home.sh: ce script liste le contenu d'un dossier et ouvre l'adresse sélectionnée. remplacer 'rox' par votre gestionnaire de fichier.
#!/bin/bash loc=`ls -A $HOME | dmenu -b -fn "-*-fixed-*-*-*-*-10-70-*-*-*-*-*-*" -nb '#222222' -nf '#7D7D7D' -sb '#7D7D7D' -sf '#222222' -p 'goto/open/edit: '` && eval "rox $loc"
- dmenu-launch.sh: ce sript lance vos scripts personnels contenus dans 'DIR'
#!/bin/sh # minimal launcher with dmenu DIR=$HOME/bin/skin_switchers skin=`ls -1 $DIR | dmenu -b -fn '-*-fixed-*-*-*-*-10-70-*-*-*-*-*-*' -nb '#222222' -nf '#7D7D7D' -sb '#7D7D7D' -sf '#222222' -i -p 'skins: '` && eval "exec $DIR/$skin"
- dmenu-quit: simple logout/exit script, nécessite xdotool.
#!/bin/bash # a simple logout dialog choice=`echo -e "0: Logout\n1: Shutdown\n2: Reboot\n3:Cancel" | dmenu -b -fn "-*-fixed-*-*-*-*-10-70-*-*-*-*-*-*" -nb "#222222" -nf "#7D7D7D" -sb "#7D7D7D" -sf "#222222" -p "select an action:" | cut -d ':' -f 1` # execute the choice in background case "$choice" in 0) xdotool key Ctrl+Alt+BackSpace & ;; 1) sudo shutdown -r now & ;; 2) sudo shutdown -h now & ;; 3) exit ;; esac
conclusion
comme vous pouvez le constater, les possibilités de dmenu ne sont limitées que par votre imagination ou vos connaissances :). quelques liens:
- la page officielle du site
- l'excellent blog de thuban