LinuxPedia

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

Outils pour utilisateurs

Outils du site


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

Différences

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


personaliser:dzen2 [2018/11/17 12:54] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== dzen2: the ultimate statusbar ======
 +**dzen2** est un logiciel de messages, notifications et menus pour X11. il a été conçu pour être léger, rapide et pour supporter les scripts en différents languages.\\
 +dzen2 supporte les polices XFT (en options), les couleurs et le formatage simple, les icônes et graphiques et les actions du clavier/souris. dzen2 est disponible dans la plupart des distributions GNU/Linux.
  
 +===== installation =====
 +pour avoir les dernières options, je vous conseille d'installer la version **git**. pour l'obtenir:<code>$ git clone git://github.com/robm/dzen.git</code>
 +installer les dépendances pour Debian:<code># apt-get install libx11-dev libxft-dev libxinerama-dev</code>
 +dzen2 s'installera par défaut dans /usr/local/bin. vous pouvez modifier le chemin d'installation en éditant le fichier config.mk situé dans le dossier git. vous pouvez en profiter pour activer le support xinerama et xpm en (dé)commentant les sections appropriées.\\
 +une fois votre config.mk prêt, vous pouvez commencer la procédure d'installation: placez-vous dans le répertoire:<code>$ cd dzen/</code>
 +lancer la compilation et installer:<code>$ make
 +# make install</code>
 +si vous désirez utiliser les "gadgets" (dbar, gdbar, gcpubar) permettant d'afficher des graphiques:<code>$ cd gadgets/
 +$ make
 +# make install</code>
 +vous pouvez désormais tester dzen2 avec une commande simple:<code>$ echo "hi, i'm testing dzen2 :)" | dzen2 -p 10</code>
 +
 +===== configuration =====
 +==== options ====
 +dzen accepte différentes options, nous décriront plus tard le format appliqué à ces options:
 +^  options  ^  argments  ^  description  ^
 +|-fg|#RRGGBB, color|couleur du texte|
 +|-bg|:::|couleur du fond|
 +|-fn|police xft ou classic|type de police utilisé|
 +|-ta|l(eft), c(enter), r(ight)|alignement du texte de la fenêtre "titre"|
 +|-sa|:::|alignement du texte de la fenêtre "esclave"|
 +|-tw|x(pixels)|largeur de la fenêtre "titre"|
 +|-w|:::|largeur de la fenêtre|
 +|-h|:::|hauteur des lignes, par défaut: hauteur de la police +2px|
 +|-x|:::|position horizontale depuis le bord gauche de l'écran|
 +|-y|:::|position verticale depuis le bord haut de l'écran|
 +|-l|n(nombre)|nombre de lignes affichées dans la fenêtre "esclave"|
 +|-m|dzen2 en mode "menu" (voir section "menu")||
 +|-e|évennements et actions (voir section events & actions)||
 +|-p|s(econdes)|la dernière valeur est persistente pendant 's' secondes (en option)|
 +|-u|mettre à jour les fenêtres "titre" et "esclave" en même temps||
 +|-xs|n(uméro)|numéro de l'écran xinerama à utiliser|
 +|-v|version de dzen2||
 +
 +==== affichage ====
 +dzen2 affiche les fenêtres "titre" et "esclave" comme suit:
 +^  fenêtre titre  ^
 +|  fenêtre esclave scrollable \\ sur plusieurs lignes définies par "-l"  |
 +la première ligne passée à dzen2 est affichée dans la fenêtre titre, les autres lignes seront affichées dans la zone esclave à moins que vous n'utilisiez l'option de format '^tw()' pour surpasser le comportement par défaut.
 +
 +==== arrêt ====
 +dzen2 suspend l'affichage:
 +  * si le fichier envoyé à dzen2 se termine (EOF), sauf si l'option "-p" est utilisée:
 +    * '-p' sans argument fixe l'affichage pour toujours
 +    * '-p <n>' fixe l'affichage pour 'n' secondes
 +  * lors d'un clic-droit sur dzen2 (par défaut)
 +  * lors d'une pression sur [Esc] dans certaines conditions
 +
 +===== utilisations =====
 +notez que les options décrites ici sont celles par défaut. vous pouvez modifier ces comportements grâce à l'option **-e** (voir events & actions).
 +
 +==== option -l: slave window ====
 +utiliser l'option **-l** pour afficher plusieurs lignes au survol du pointeur sur la fenêtres "titre" de dzen2. le nombre de ligne à afficher est passé en argument (**-l 5** affiche 5 lignes).\\
 +lorsque le pointeur quitte la fenêtre "esclave", celle-ci est masquée, sauf si vous "fixez" la fenêtre avec un clic central.\\
 +les boutons 4 et 5 (molette de la souris) font défiler le contenu de la fenêtre "esclave" si le nombre de ligne dépasse la hauteur de la fenêtre.\\
 +**exemple**: une manière simple de comprendre comment la fenêtre esclave fonctionne (clic droit pour quitter dzen2):<code>cat ~/.bashrc | dzen2 -l 30 -p</code>
 +
 +==== option -e: events & actions ====
 +dzen permet d'associer certains évennements (clavier/souris) à des actions configurables.\\
 +syntaxe de l'option **-e**:  **-e 'event1=action1:option1:...option<n>,...,action<m>;...'**\\
 +chaque évennement peut être associé à plusieurs actions qui peuvent avoir plusieurs options (limité à 64 pour chaque mais modifiable depuis les sources, fichier action.h).\\
 +  ***exemple**<code>-e 'button1=exec:xterm:firefox;entertitle=uncollapse;button3=exit'</code>
 +  ***explication**
 +    *//button1=exec:xterm:firefox;// : au clic gauche, lancement de xterm et firefox. dans cet exemple, xterm et firefox sont les //options// de l'//action// exec pour l'//event// button1.
 +    *//entertitle=uncollapse;// : au passage du pointeur, dzen affiche (uncollapse) la fenêtre esclave
 +    *//button3=exit// : au clic droit, arrêt de dzen2.
 +**liste des évennements**
 +  *onstart : l'action se lance au démarage de dzen.
 +  *onexit : l'action se lance juste avant de quitter dzen.
 +  *onnewinput : l'action se lance si une nouvelle entrée est passée à la fenêtre esclave.
 +  *button1 : l'action se lance lors du clic gauche
 +  *button2 : l'action se lance lors du clic central
 +  *button3 : l'action se lance lors du clic droit
 +  *button4 : l'action se lance avec la molette vers le haut
 +  *button5 : l'action se lance avec la molette vers le bas
 +  *button6 : l'action se lance lors d'une prassion sur le bouton 6 (sur certaines souris)
 +  *button7 : l'action se lance lors d'une prassion sur le bouton 7 (sur certaines souris)
 +  *entertitle : l'action se lance lors du survol de la fenêtre titre
 +  *leavetitle : l'action se lance lorsqu'on quitte la fenêtre titre
 +  *enterslave : l'action se lance lors du survol de la fenêtre esclave
 +  *leaveslave : l'action se lance lorsqu'on quitte la fenêtre esclave
 +  *sigusr1 : l'action se lance à réception du signal SIGUSR1 :?:
 +  *sigusr2 : l'action se lance à réception du signal SIGUSR2 :?:
 +  *key_KEYNAME : l'action se lance lors d'un évennement clavier(*)
 +**les évennements clavier**\\
 +toutes les touches peuvent entrainer une action avec l'otion **-e**. la syntaxe utilisée est celle du fichier /usr/include/X11/keysymdef.h . par exemple, pour "e" //event// = key_e , pour "_" //event// = key_underscore
 +
 +**liste des actions**
 +  *exec:command1:..:n : exécute les options passées en argument
 +  *menuexec : exécute l'entrée de menu sélectionnée
 +  *exit:retval : quitte dzen et retourne la valeur 'retval'
 +  *print:str1:...:n : écrit les options passées en argument dans STDOUT
 +  *menuprint : écrit l'entrée de menu sélectionnée dans STDOUT
 +  *collapse : enroule (masque) la fenêtre esclave
 +  *uncollapse : déroule (affiche) la fenêtre esclave
 +  *togglecollapse : (en/de)roule la fenêtre esclave
 +  *stick : fixe la fenêtre esclave
 +  *unstick : libère la fenêtre esclave
 +  *togglestick : fixe/libère la fenêtre esclave
 +  *hide : masque la fenêtre titre
 +  *unhide : affiche la fenêtre titre
 +  *togglehide : masque/affiche la fenêtre titre
 +  *raise : passe la fenêtre au premier plan
 +  *lower : passe la fenêtre au dernier plan
 +  *scrollhome : affiche les premières lignes de la fenêtre esclave
 +  *scrollend : affiche les dernières lignes de ma fenêtre esclave
 +  *scrollup:n : fait défiler la fenêtre esclave de 'n' lignes vers le haut (n=1 par défaut)
 +  *scrolldown:n : fait défiler la fenêtre esclave de 'n' lignes vers le bas (n=1 par défaut)
 +  *grabkeys : active le support su clavier
 +  *ungrabkeys : désactive le support du clavier
 +  *grabmouse : active le support de la souris (nécessaire seulement pour certains gestionnaires de fenêtres tels que fluxbox)
 +  *ungrabmouse : désactive le support de la souris (nécessaire seulement pour certains gestionnaires de fenêtres tels que fluxbox)
 +
 +**les évennements par défaut**
 +si aucune option n'est passée en arguments, dzen observe les comportements par défaut suivant:
 +  *fenêtre titre seule:<file>-e 'button3=exit:13'</file>
 +  *fenêtre titre + esclave multi-lignes ou en mode menu:<file>-e 'entertitle=uncollapse,grabkeys;
 +    enterslave=grabkeys;leaveslave=collapse,ungrabkeys;
 +    button1=menuexec;button2=togglestick;button3=exit:13;
 +    button4=scrollup;button5=scrolldown;
 +    key_Escape=ungrabkeys,exit'</file>
 +  *fenêtre en mode menu horizontal:<file>-e 'enterslave=grabkeys;leaveslave=ungrabkeys;
 +    button4=scrollup;button5=scrolldown;
 +    key_Left=scrollup;key_Right=scrolldown;
 +    button1=menuexec;button3=exit:13
 +    key_Escape=ungrabkeys,exit'</file>
 +:!: note: si vous définissez des options différentes, dzen ne tiendra aucun compte des valeurs par défaut: vous devrez spécifiez **__toutes__** les options.
 +
 +==== option -m: menu ====
 +dzen propose deux modes de menu: vertical et horizontal. pour activer ces modes, ajouter 'v'(ertical) ou 'h'(horizontal) à l'option '-m'. le menu est vertical par défaut.
 +  *menu vertical (les deux expressions sont équivalentes):<code>dzen2 -p -l 4 -m < file
 +dzen2 -p -l 4 -m v < file</code>
 +  *menu horizontal:<code>dzen2 -p -l 4 -m h < file</code>
 +toutes les actions commençant par "menu" sont appliquées à l'entrée de menu sélectionné.\\
 +le mode de menu fonctionne de paire avec l'option '-l <n>'\\
 +le menu horizontal n'a pas de fenêtre titre, les actions passées à la fenêtre titre seront ignorées.
 +
 +==== option -u: update simultané ====
 +**__deprécié__**\\
 +cette option permet la mise à jour simultané entre la fenêtre titre et la fenêtre esclave.\\
 +un exemple sera plus explicite: imaginonsque nous voulions afficher l'heure dans la fenêtre titre et une sortie de log dans le fenêtre esclave:<code=bash>while true; do
 +    date                # output goes to the title window
 +    dmesg | tail -n 10  # output goes to the slave window
 +    sleep 1
 +done | dzen2 -l 10 -u</code>
 +pour que cela fonctionne, il est important de spécifier le nombre exacte de ligne du fichier lu avec l'option '-l'.
 +
 +==== option de formats ====
 +cette option permet d'appliquer dynamiquement un format particulier à l'affichage de dzen2.\\
 +dzen2 accepte les formats suivants:
 +  ***couleurs**
 +    *^fg(color): couleur du texte/icones
 +    *^fg(): retour à la couleur par défaut
 +    *^bg(color): couleur du fond
 +    *^bg(): retour à la couleur par défaut
 +  ***graphiques**
 +    *^i(chemin de l'image): affiche une image au format xbm ou xpm(en option)
 +    *^r(largeurxhauteur): affiche un rectangle aux dimensions spécifiées
 +    *^ro(largeurxhauteur): affiche un rectangle en contour aux dimensions spécifiées
 +    *^c('r'ayon): affiche un cercle de rayon 'r'
 +    *^co('r'ayon): affiche un cercle en contour de rayon 'r'
 +  ***positions** ^p=position relative / ^pa=position absolue
 +    *^p(+/-X): déplace la prochaine entrée à droite(+) ou gauche(-) de X pixels
 +    *^p(+/-X;+/-Y): déplace la prochaine entrée à droite(+) ou gauche(-) de X pixels et vers le haut(+) ou le bas(-) de Y pixels.
 +    *^pa(args): même arguments que précédement mais X et Y sont des valeurs absolues.
 +  ***interactions**
 +    *^ca(BTN, CMD) ... ^ca(): utilisé pour définir une zone cliquable dans la fenêtre titre
 +      *BTN détermine le bouton de souris actif (1=gauche, 2=central, 3=droit ...).
 +      *CMD détermine la commande à lancer lors d'un clic sur la zone concernée.
 +      * ... : représente un texte affiché par dzen
 +      * ^ca(): sans arguments, ferme la zone cliquable
 +    *exemple:<code>^ca(1,mpc toggle)^ca(3,mpc stop)[^ca(4,mpc prev)^ca(5,mpc next)mpd^ca()^ca()|^ca(4,mpc volume +3)^ca(5,mpc volume -3)vol^ca()^ca()]^ca()^ca()</code> cette commande affichera "**[mpd|vol]**"
 +      *le bloc entier **[...]** répond au clic droit et gauche pour lecture/stop
 +      ***mpd** répond à la molette pour naviguer dans la playlist mpd
 +      ***vol** répond à la molette pour aumenter/diminuer le volume
 +  ***commandes d'actions**  voir la section "events & actions" pour une explication détaillée des commandes.
 +    *^togglecollapse()
 +    *^collapse()
 +    *^uncollapse()
 +    *^togglestick()
 +    *^stick()
 +    *^unstick()
 +    *^togglehide()
 +    *^hide()
 +    *^unhide()
 +    *^raise()
 +    *^lower()
 +    *^scrollhome()
 +    *^scrollend()
 +    *^exit()
 +  ***autres**
 +    *^tw(): affiche le texte uniquement dans la fenêtre titre. cette option peut générer des conflicts, à utiliser une seul fois par ligne et en début d'entrée.
 +    *^cs(): vide la fenêtre esclave, cette option doit être seule sur la ligne
 +    *^ib(VALUE): appliquer (ou pas) la couleur de fond définie par ^bg(color). "VALUE"=0:appliquer la couleur, =1:ne pas applique la couleur.
 +\\
 +**ces commandes peuvent être placées à n'importe quel endroit et avec toutes les combinaisons dans l'entrée soumise à dzen2.\\
 +les couleurs peuvent être spécifiées avec leur nom (red, green, darkorange...) ou leur valeur rrggbb (#ffffaa)**
 +
 +===== exemples =====
 +==== exemples simples ====
 +voici une liste d'exemples de codes et leur affichage illustrant les sections précédentes. j'utilise le fichier ~/.Xresources ce qui permet de définir la police, la couleur du texte et la couleur du fond par défaut:<code=dot>! dzen2 ----------------------------------------------------------------
 +dzen2.font: -*-fixed-*-*-*-*-10-70-*-*-*-*-*-*
 +dzen2.foreground: #C7C7C7
 +dzen2.background: #222222</code>
 +notez que les options passées en ligne de commande écrasent les options Xresources.
 +  *texte couleur<code>echo "^fg(red)I'm red text ^p(+20)^fg(blue)I am blue" | dzen2 -w 300 -p</code>{{personaliser:dzen_wiki1.png?nolink&|}}
 +  *texte et fond couleur<code>echo "^bg(#ffaaaa)The ^fg(yellow)text to ^bg(blue)^fg(orange)colorize" | dzen2 -w 300 -p</code>{{personaliser:dzen_wiki2.png?nolink&|}}
 +  *afficher "^"<code>echo "^fg(grey70)Some text containing ^^ characters" | dzen2 -w 300 -p</code>{{personaliser:dzen_wiki3.png?nolink&|}}
 +  *images xbm (pack d'icones dispo [[http://arpinux.org/public/wiki/dzicons.tgz|ici]])<code>echo "^i(dzicons/mail.xbm) I am an envelope ^fg(yellow)and ^i(dzicons/bat_full_02.xbm) I'm a baterry." | dzen2 -w 300 -p</code>{{personaliser:dzen_wiki4.png?nolink&|}}
 +  *rectangles<code>echo "6x4 rectangle ^r(6x4) ^fg(red)12x8 ^r(12x8) ^fg(yellow)and finally 100x15 ^r(100x15)" | dzen2 -w 300 -p</code>{{personaliser:dzen_wiki5.png?nolink&|}}
 +  *rectangles et positions<code>echo "^ib(1)^fg(red)^ro(100x15)^p(-98)^fg(blue)^r(20x10)^fg(orange)^p(3)^r(40x10)^p(4)^fg(darkgreen)^co(12)^p(2)^c(10)" | dzen2 -x 20 -y 20 -w 120 -p</code>{{personaliser:dzen-colors.png?nolink&|}}
 +  *messages pendant 10sec<code>(echo "This is a message"; sleep 10) | dzen2 -bg darkred -fg grey80</code>{{personaliser:dzen_wiki6.png?nolink&|}}
 +  *affiche "header" et un message multi-lignes<code>(echo Header; cal; sleep 20) | dzen2 -w 300 -l 8</code>{{personaliser:dzen_wiki7.png?nolink&|}}
 +  *affiche "header" et un message dynamique multi-lignes<code>(echo Header; while true; do echo test$((i++)); sleep 1; done) | dzen2 -w 300 -l 12</code>{{personaliser:dzen_wiki8.png?nolink&|}}
 +  *menu simple:<code>dzen2 -w 200 -l 4 -p -m < dzenmenu.txt</code>où dzenmenu.txt se présente comme suit(chaque entrée après "Menu" correspond à une commande)<file>Menu
 +urxvtc
 +rox-filer
 +firefox
 +geany</file>{{personaliser:dzen_wiki9.png?nolink&|}}
 +  *menu horizontal sans fichier menu<code>echo -e "xterm\nxclock\nxeyes\nxfontsel" | dzen2 -w 300 -l 4 -m h -p</code>{{personaliser:dzen_wiki10.png?nolink&|}}
 +
 +==== conky dans dzen2 ====
 +{{ personaliser:conky-dzen2.png? |}}
 +\\
 +dzen2 va lire les informations délivrées par conky comme pour la barre de statut de [[wms:dwm|dwm]]. le fichier de configuration du conky présenté dans le screenshot ressemble à celui utilisé pour dwm mais ajoute les options pour dzen:
 +<file>out_to_x no
 +out_to_console yes
 +update_interval 1.0
 +total_run_times 0
 +use_spacer none
 +
 +TEXT
 + ^i(/home/arp/.arp_setups/dzicons/cal.xbm) ^fg(\#ccc)${time %d/%m}^fg() ^i(/home/arp/.arp_setups/dzicons/clock.xbm) ${time %I:%M}\
 +  ^fg(\#ff4500)^i(/home/arp/.arp_setups/dzicons/cpu.xbm) ^fg(\#ccc)${cpu}%\
 + ^fg(\#ee2c2c)^i(/home/arp/.arp_setups/dzicons/temp.xbm) ^fg(\#ccc)${ibm_temps 0}°C\
 + ^fg(\#87ceeb)^i(/home/arp/.arp_setups/dzicons/monitor.xbm) ^fg(\#ccc)${loadavg}\
 +  ^fg(\#00bfff)^i(/home/arp/.arp_setups/dzicons/mem.xbm) ^fg(\#ccc)$memperc% > $mem\
 +  ^fg(\#ffd700)^i(/home/arp/.arp_setups/dzicons/home.xbm) ^fg(\#ccc)${fs_used_perc /}%\
 +${if_mounted /media/arp500} ^fg(\#000)^i(/home/arp/.arp_setups/dzicons/usb.xbm) ^fg(\#ccc)${fs_used_perc /media/arp500/}%${endif}${if_mounted /media/lacie300} ^fg(\#1e90ff)^i(/home/arp/.arp_setups/dzicons/usb.xbm) ^fg(\#ccc)${fs_used_perc /media/lacie300/}%${endif}\
 + ^fg()${if_match ${battery_percent BAT0} >=26}^fg(\#7cfc00)^i(/home/arp/.arp_setups/dzicons/bat_full_01.xbm)${endif}\
 +${if_match ${battery_percent BAT0} <=25}  ^fg(\#CC0000)^i(/home/arp/.arp_setups/dzicons/bat_low_01.xbm)^fg()${endif} ^fg(\#ccc)${battery_percent}%\
 + ^fg()${if_up eth0}  ^i(/home/arp/.arp_setups/dzicons/net_wired.xbm)\
 + ^fg(\#00cd00)^i(/home/arp/.arp_setups/dzicons/net_up_02.xbm) ^fg(\#ccc)${upspeedf eth0}\
 + ^fg(\#ffa500)^i(/home/arp/.arp_setups/dzicons/net_down_02.xbm) ^fg(\#ccc)${downspeedf eth0}\
 +^fg() ${endif}\
 +${if_match "$ibm_volume" == "mute" }^fg(\#000000) ^i(/home/arp/.arp_setups/dzicons/spkr_04.xbm)^fg(\#ccc) mute ${else}^fg(\#FFDF1D) ^i(/home/arp/.arp_setups/dzicons/spkr_01.xbm)^fg(\#ccc) ${ibm_volume}/14${endif}</file>
 +**note** l'emploi du "\" en fin de ligne permet l'annulation du saut de ligne dans conky et aide à une meilleure lisiblilité du fichier.\\
 +\\
 +comme vous pouvez le constater, les options passées à conky sont "encadrées" par les options passées à dzen2:
 +  * ^fg(): pour la couleur du texte/de l'image
 +  * ^i() : pour l'adresse de l'image à afficher
 +les images doivent être au format *xbm (facilement éditables avec the Gimp). une archive contenant 67 icones est [[http://arpinux.org/public/wiki/dzicons.tar.gz|disponible ici]].\\
 +ce fichier conky est appelé par dzen2 grâce à un script (que vous prendrez soin de rejouter à votre fichier ~autostart selon votre configuration):
 +<code bash>#!/bin/sh
 +RC="$HOME/.conkyrc_dzen"
 +FG="white"
 +BG="#404240"
 +ALIGN="left"
 +WIDTH="744"
 +HEIGHT="12"
 +FONT="-*-terminus-medium-*-*-*-12-*-*-*-*-*-*-*"
 +XPOS="30"
 +YPOS="756"
 +
 +conky -d -c $RC | dzen2 -fg $FG -bg $BG -ta $ALIGN -w $WIDTH -h $HEIGHT -x $XPOS -y $YPOS -fn $FONT -dock &
 +exit 0</code>
 +//sources du script: [[http://xenull.deviantart.com/art/Minull-Conky-266829077|minull conky]] par [[http://xenull.deviantart.com/|xeNULL]]//.
 +
 +\\
 +\\
 +----
 +sources: [[http://dzen.googlecode.com/svn/trunk/README|README]] officiel + [[http://dzen.geekmode.org/dwiki/doku.php?id=start|wiki dzen]](eng).
personaliser/dzen2.txt · Dernière modification : 2018/11/17 12:54 de 127.0.0.1