State information, workspace names and "emptyness" indicator

Hi, below you'll find a _rather hackish_ approach to display state information with xmonad. See the comments in the script to get it running. Here is a shot how it could look like, note the upper left corner: http://omploader.org/file/xmonad-dzen-state-wsnames.png Script and instructions: #!/usr/bin/perl # statedump.pl - beware, hackish solution # # (c) 2007 by Robert Manea <rob dot manea at gmail dot com> # dump xmonad state in a readable format # # Usage: # ------ # Uncomment the line reading "withWindowSet (io . hPrint stderr)" # in xmonad's Operations.hs. This will enable a state dump. # # start xmonad like this: # xmonad 2>&1 | statedump.pl | dzen2 -w 300 -ta l # # Workspaces containing windows have an * prefix # the current workspace is enclosed in [ ] # use strict; use warnings; #---------------------------------------------------------------------- # set the names of the workspaces # if no name is set, the workspace # number will be displayed my %ws2name = ( 0 => "dev", 1 => "mail", 2 => "web", 3 => "comm", 4 => "ham", 5 => "tmp" ); #---------------------------------------------------------------------- my $fr=0; $|=1; while(<>) { my @s = split /Workspace/; $s[1] =~ /tag\s=\s+W\s([0-9]),/; my $cws = $1; for(sort @s) { my @f = /{tag\s=\s+W\s([0-9]),.*stack\s=\s+(.*)/; my $ws = $f[0]; my $emp = $f[1]; $fr++; if($fr < @s) { print "*" if($emp !~ /Empty/); if($ws eq $cws) { $ws2name{"$cws"} ? print '[', $ws2name{"$cws"}, '] ' : print '[', $cws+1, '] '; } else { $ws2name{"$ws"} ? print $ws2name{"$ws"}, ' ' : print $ws+1, ' '; } } } $fr=0; print "\n"; } __END Bye, Rob.
participants (1)
-
Robert Manea