LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


personaliser:dmenu
no way to compare when less than two revisions

Différences

Ci-dessous, les différences entre deux révisions de la page.


personaliser:dmenu [2018/11/17 12:54] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== dmenu: le menu dynamique pour X ======
  
 +===== présentation - installation =====
 +[[http://tools.suckless.org/dmenu/|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 [[http://suckless.org/|suckless.org]] comme [[:dwm]].\\
 +chez **Debian**, il fait parti du paquet suckless-tools<code># apt-get install suckless-tools</code>
 +vous pouvez aussi choisir une version supportant les polices xft, il faudra alors passer par la **compilation**:\\
 +  *on installe les dépendances<code># apt-get install libxft-dev libxinerama-dev</code>
 +  *on récupère les sources de dmenu-xft<code>$ wget http://piserv/public/dmenu-xft-4.2.1.tar.gz</code>
 +  *on extrait l'archive et on se place dans le répertoire<code>$ tar xvzf dmenu-xft-4.2.1.tar.gz
 +$ cd dmenu-xft-4.2.1/</code>
 +  *on compile et on installe<code>$ make
 +# make install</code>
 +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:\\
 +{{ personaliser:dmenu_basic.png? |}}\\
 +\\
 +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:<code bash>#!/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"</code>
 +  * **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;<code bash>#!/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</code>
 +  * **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.<code bash>#!/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"</code>
 +  * **dmenu-launch.sh**: ce sript lance vos scripts personnels contenus dans 'DIR'<code bash>#!/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"</code>
 +  * **dmenu-quit**: simple logout/exit script, nécessite xdotool.<code bash>#!/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</code>
 +
 +===== 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 [[http://tools.suckless.org/dmenu/|page officielle]] du site
 +  * l'excellent [[http://yeuxdelibad.net/Logiciel-libre/Suckless/dmenu/|blog de thuban]]
personaliser/dmenu.txt · Dernière modification : 2018/11/17 12:54 de 127.0.0.1