LinuxPedia

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

Outils pour utilisateurs

Outils du site


personaliser:dmenu

Différences

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

Lien vers cette vue comparative

personaliser:dmenu [2018/11/17 13:54] (Version actuelle)
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 13:54 (modification externe)