News
- 08 April 2008
- 04 January 2008
- Zero Install feed:
- 03 January 2008:
- You like dzen and want to help but can't code?
- Here is how you could help out:
- Fix README and README.dzen to use a better english
- Write a man page for dzen
- Send in your patches to: rob dot manea at gmail dot com
- 18 August 2007: New dzen release 0.8.5 featuring:
- New "in-text formating language" commands
- ^pa() positions the input at an absolute location
- ^ib() allows to draw "inside" of already drawn input
- Optional support for full color XPM icons
- New option '-h' to explicitly set the line height
- Gadgets
- gcpubar and gdbar
- New option '-o' to draw the meters in a different style
- New actions grabmouse and ungrabmouse
- Several fixes and clean ups
- collection of ideas for dzen based scripts
- please send any suitable scripts to rob dot manea at gmail dot com in order to populate the archive
What is dzen?
Dzen is a general purpose messaging, notification and menuing program for X11. It was desigend to be scriptable in any language and integrate well with window managers like dwm, wmii and xmonad though it will work with any windowmanger.
See dzen's README for further details.
Collection of ready to use dzen based scripts: Dzen Wiki and Dzen script archive
The following operating systems include dzen:
- Linux
Features
- scriptable
- language agnostic
- user defined events and actions
- in-text formating language (including positioning, rectangle & circle drawing)
- icon support (XBM and optionally XPM)
- dynamic coloring support
- keyboard support
- menu mode
- (auto-) hideable
- collapseable
- 'tail -f' functionality, updates the contents in real time
- scrollable windows
- Xinerama support
Contact:
rob dot manea at gmail dot com
Requirements
- C compiler
- Xlib header files
Download
The latest dzen release can be found here.
Zero Install feed:
Subversion:
- Development version, run the following command to fetch it:
- svn checkout http://dzen.googlecode.com/svn/trunk/ dzen
- Browse SVN repository on the web
Community
- Dzen Wiki (scripts, tricks, icon packs, ...)
- IRC
- Server: irc.oftc.net
- Channel: #dzen
- Channel: #dwm
- Server: irc.freenode.net
- Channel: #xmonad
Screenshots
1. Two dzen instances showing the title area:
2. Uncollapsed dzen showing additional information:
3. dzen as statusbar and calendar:
4. dzen showing remind output:
5. xmonad with dzen as workspacebar, statusbar and rss-feed reader
6. xmonad and some dzen instances
Examples
Dzen can be used for many different purposes. Some usage examples can be found here.
See also dzen's script archive for more ready to use scripts.
Simple notification:
(echo "This is a message"; sleep 10) | dzen2
- Display "This is a message" in the title area and time out after 10 seconds.
Updating single line message:
for i in $(seq 1 5); do A=${A}'='; echo $A; sleep 1; done | ./dzen2
- Updates the title area every second with the contents of $A
Updating progress bar:
for i in 5 25 50 75 100; do echo $i; sleep 1; done | dbar | dzen2
- displays an progressbar and updates it's value every second
- uses the dzen gadget dbar to draw theprogress bar
Single line launch button:
echo "xterm/xclock"| dzen2 -p -e 'button1=exec:xterm;button2=exec:xclock;button3=exit:4'
- Execute xterm when clicked with mouse button1, executes xclock with button2 and exits with return code 4 if button3 is clicked
Notification with multiple lines:
(echo Calendar; cal) | dzen2 -l 8 -p
- display "Calendar" in the title area
- the output of 'cal' goes into the 8 line high mulitiline window
- the '-p' switch turns dzen into persistent mode, so it will never time out
- right mouse button closes dzen.
Updating messages:
(echo 'Timer:'; while :; do date; sleep 1; done) | dzen2 -l 4 -w 200 -x 600
- runs 'date' every second and display the output in dzen's slave window
- the '-w' flag allows you to specify the width of the windows
- '-x' sets the position on the screen.
Displaying log files:
(su -c "echo syslog; tail -f /var/log/syslog") | dzen2 -l 20 -x 100 -y 300 -w 500 -fn fixed -bg orange -fg black
- display syslog and update dzen as soon as new data has arrived
- here you can see how to define the background, foreground colors and the font.
Simple menu:
echo "Applications" | dzen2 -l 4 -p -m < menufile
- Menu-mode, load menu entries from file "menufile"
Creating a menu without files:
{echo Menu; echo -e "xterm\nxclock\nxeyes\nxfontsel"} | dzen2 -l 4 -m -p -w 200 -bg blue -fg orange
Mail biff and launcher:
checkmail.sh | dzen2 -fn lime -bg '#e0e8ea' -fg black -e 'button1=exec:xterm -e mutt;button3=exit' -x 890 -w 150
- Get checkmail.sh
- Checks for new mails in maildir style folders
- Runs mutt in a xterm if button1 is pressed
- exits on button3
Monthly Schedule:
(echo Monthly Schedule; remind -c1 -b1 -m) | dzen2 -l 49 -w 410 -p -fn lime -bg '#464647' -fg white -x 635
- Command used in screenshot 3
Network meter:
(echo eth0 && mesure -atnDKvi eth0 ) | dzen2 -x 1020 -w 80 -l 5
- Get mesure.
PID ripper:
{echo Procs; ps -a} | dzen2 -m -l 12 -p -e 'button1=menuprint;button3=exit;button4=scrollup;button5=scrolldown;entertitle=uncollapse;leaveslave=collapse' | awk '{print $1}'
- shows the processtable and prints the PID of the selected entry
Xmonad statusbar:
dwm-status.sh | dzen2 -fn '-*-profont-*-*-*-*-11-*-*-*-*-*-iso8859' -bg '#aecf96' -fg black \
-p -e 'sigusr1=raise;sigusr2=lower;onexit=exec:rm /tmp/dzen2-pid;button3=exit' & echo $! > /tmp/dzen2-pid
TODO
If you would like to participate in the dzen development here is a list of desired enhancements:
- extend available actions
- any other useful actions
- user interface
- Xft support
- XRandR support





