UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

141 lines (95 loc) 5.36 kB
[Dzen](http://robm.github.com/dzen/) is "a general purpose messaging, notification and menuing program for X11\. It was designed to be scriptable in any language and integrate well with window managers like [dwm](/index.php/Dwm "Dwm"), [wmii](/index.php/Wmii "Wmii") and [xmonad](/index.php/Xmonad "Xmonad") though it will work with any window manager." ## Contents * [1 Installation](#Installation) * [2 Configuration](#Configuration) * [3 Tips and tricks](#Tips_and_tricks) * [3.1 Using custom fonts with dzen](#Using_custom_fonts_with_dzen) * [3.2 Dzen and Conky](#Dzen_and_Conky) * [3.3 Clickable areas and popups](#Clickable_areas_and_popups) * [3.4 Enabling Xft support for dzen](#Enabling_Xft_support_for_dzen) * [4 See also](#See_also) ## Installation [Install](/index.php/Install "Install") the [dzen2](https://www.archlinux.org/packages/?name=dzen2) package which is available in the [official repositories](/index.php/Official_repositories "Official repositories") which includes Xft, XPM, and Xinerama support. **Note:** Xft doesn't seem to work with the official package. Alternatively, you can install the [dzen2-xft-xpm-xinerama-git](https://aur.archlinux.org/packages/dzen2-xft-xpm-xinerama-git/) package located in the [AUR](/index.php/AUR "AUR") with Xft, XPM and Xinerama support. ## Configuration Dzen is able to read font and color settings from [X resources](/index.php/X_resources "X resources"). As an example, you can add following lines to `~/.Xresources`: ``` dzen2.font: -*-fixed-*-*-*-*-*-*-*-*-*-*-*-* dzen2.foreground: #22EE11 dzen2.background: black ``` ## Tips and tricks ### Using custom fonts with dzen Dzen follows the [X Logical Font Description](/index.php/X_Logical_Font_Description "X Logical Font Description") so it will only find fonts in the X font path. See [Fonts#Older applications](/index.php/Fonts#Older_applications "Fonts") for details. ### Dzen and Conky [Conky](/index.php/Conky "Conky") can be used to pipe information directly to dzen for output in a status bar. This can be done with Conky in the official repositories and also with [conky-cli](https://aur.archlinux.org/packages/conky-cli/), a stripped-down version of the Conky status utility from the [AUR](/index.php/AUR "AUR"). The following example displays the average load values in red and the current time in the default dzen foreground colour: `~/.conkyrc` ``` background no out_to_console yes out_to_x no update_interval 1.0 total_run_times 0 use_spacer none TEXT ^fg(\#ff0000)${loadavg 1 2 3} ^fg()${time %a %b %d %I:%M%P} ``` `~/bin/dzconky` ``` #!/bin/sh FG='#aaaaaa' BG='#1a1a1a' FONT='-*-terminus-*-r-normal-*-*-120-*-*-*-*-iso8859-*' conky | dzen2 -e - -h '16' -w '600' -ta r -fg $FG -bg $BG -fn $FONT & ``` Simply execute `dzconky` in your startup scripts. ### Clickable areas and popups dzen2 allows you to define clickable areas using `^ca(*button*, *command*)Text^ca()`. You can use this property to create popups giving arbitrary information, as seen in various screenshot gifs like [this](http://i.imgur.com/bZegioR.gif). A simple example can be: `sysinfo_popup.sh` ``` #/bin/bash #A simple popup showing system information HOST=$(uname -n) KERNEL=$(uname -r) UPTIME=$( uptime | sed 's/.* up //' | sed 's/[0-9]* us.*//' | sed 's/ day, /d /'\ | sed 's/ days, /d /' | sed 's/:/h /' | sed 's/ min//'\ | sed 's/,/m/' | sed 's/ / /') PACKAGES=$(pacman -Q | wc -l) UPDATED=$(awk '/upgraded/ {line=$0;} END { $0=line; gsub(/[\[\]]/,"",$0); \ printf "%s %s",$1,$2;}' /var/log/pacman.log) ( echo "System Information" # Fist line goes to title # The following lines go to slave window echo "Host: $HOST " echo "Kernel: $KERNEL" echo "Uptime: $UPTIME " echo "Pacman: $PACKAGES packages" echo "Last updated on: $UPDATED" ) | dzen2 -p -x "500" -y "30" -w "220" -l "5" -sa 'l' -ta 'c'\ -title-name 'popup_sysinfo' -e 'onstart=uncollapse;button1=exit;button3=exit' # "onstart=uncollapse" ensures that slave window is visible from start. ``` Save this script and make it executable and then use the `^ca()` attribute in your conkyrc (or the script that you pipe to dzen2) to trigger it. ``` `^ca(1,*<path to your script>*)Sysinfo^ca()` ``` This will bind the script to mouse button 1 and execute it when it is clicked over the text. ### Enabling Xft support for dzen **Note:** You need to install the [libxft](https://www.archlinux.org/packages/?name=libxft) package. As of SVN revision 241 (development), dzen2 has optional support for Xft. To enable Xft support, build dzen2 with these options by editing `config.mk`: `config.mk` ``` ## Option: With Xinerama and XPM and XFT LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -lXinerama -lXpm $(pkg-config --libs xft) CFLAGS = -Wall -Os ${INCS} -DVERSION=\"${VERSION}\" -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT $(pkg-config --cflags xft) ``` To check libxft support, you can use this command: ``` echo "hello world" | dzen2 -fn 'Times New Roman' -p ``` ## See also * [Official website](http://robm.github.com/dzen/), [wiki](https://github.com/robm/dzen/wiki/_pages), and [source](https://github.com/robm/dzen) **Forum threads** * 2007-12-04 - Arch Linux - [dzen & xmobar Hacking Thread](https://bbs.archlinux.org/viewtopic.php?id=40637)