xmobar 0.9 → 0.9.1
raw patch · 14 files changed
+234/−1062 lines, 14 filesdep +hinotifydep ~base
Dependencies added: hinotify
Dependency ranges changed: base
Files
- ChangeLog +0/−1018
- Commands.hs +5/−2
- Config.hs +24/−4
- Plugins/CommandReader.hs +39/−0
- Plugins/Mail.hs +79/−0
- Plugins/Monitors/Common.hs +2/−1
- Plugins/Monitors/CoreCommon.hs +7/−5
- Plugins/Monitors/CpuFreq.hs +1/−1
- README +16/−7
- Runnable.hs +1/−1
- Runnable.hs-boot +1/−1
- Xmobar.hs +45/−20
- xmobar.cabal +13/−2
- xmobar.config-sample +1/−0
− ChangeLog
@@ -1,1018 +0,0 @@-Thu May 1 10:26:29 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- tagged 0.9 release--Tue Apr 29 14:59:53 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * style, pointfree and trailing spaces--Tue Apr 29 14:36:03 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Parsers: code and comment cleanup--Tue Apr 29 14:27:29 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * cabal update--Tue Apr 29 12:33:12 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: updated to latest changes--Tue Apr 29 12:32:42 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * email address, copyright date and more--Tue Apr 29 12:32:15 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * bump cabal version to 0.9--Tue Apr 29 12:29:44 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Weather: close handles when successfully retrieving the data--Tue Apr 29 12:28:48 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * style--Tue Apr 29 11:43:41 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Parser: '<' and '>' are not reserved characters anymore and can be used in the template- - Consider this the first 0.9 release candidate.- --Sat Apr 19 11:00:32 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * config-sample: use Top for positioning- With Static xmobar does not set _NET_WM_STRUT_PARTIAL, which causes- troubles to novice xmonad users. --Fri Apr 18 20:53:36 CEST 2008 Spencer Janssen <sjanssen@cse.unl.edu>- * Remove -threaded from ghc-options.- GHC's -threaded scheduler seems to wake up more frequently even when all- threads are idle. These frequent wakeups are detrimental to laptop battery- life.--Sun Mar 30 22:37:22 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * move "use_xft" to "with_xft"--Sun Mar 30 22:01:15 CEST 2008 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>- * XUtil: fix UTF-8 check.--Sun Mar 30 11:15:37 CEST 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Fix _NET_WM_STRUT_PARTIAL implementation--Sat Mar 29 11:38:34 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Set _NET_WM_STRUT_PARTIAL instead of _NET_WM_STRUT and change mkUnmanageWindow to newWindow--Tue Mar 18 11:18:58 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Automate version generation--Mon Mar 17 13:23:27 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: typos--Sun Mar 16 17:46:42 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: updated to latest changes--Sun Mar 16 17:01:15 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Add BatteryP a monitor for batteries- - With this monitor is possible to set specific location where to- retrieve battery information.- - For example:- Run BatteryP ["BAT0","BAT1","BAT2"] [] 10- - this will read the following files:- /proc/acpi/battery/BAT0/info and /proc/acpi/battery/BAT0/state- /proc/acpi/battery/BAT1/info and /proc/acpi/battery/BAT1/state- /proc/acpi/battery/BAT1/info and /proc/acpi/battery/BAT2/state--Sun Mar 16 13:28:05 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Config: use more xmonad friendly defaults--Sun Mar 16 13:11:00 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * add XFT support and make UTF-8 support configurable- This patch includes many changes:- - moved font and printing functions to XUtil.hs and created an- abstraction layer to font management;- - ported the core, StdinReader and PipeReader to the new font- management system.- - To enable UTF-8 support configure with the "with_utf8" flag (requires- utf8-string):- runhaskell Setup.lhs configure --flags="with_utf8"- - To enable XFT (which will turn on UTF-8 support too) configure with the- "with_utf8" flag (requires utf8-string and X11-xft):- runhaskell Setup.lhs configure --flags="use_xft"--Wed Feb 27 20:00:51 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Date: haddock fixes--Wed Feb 27 14:38:29 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * remove xmobar.css from repository--Tue Feb 26 16:19:18 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Add reference to curl dependency of the Weather plugin in the README- and remove README.html from the repository--Tue Feb 19 02:19:09 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Xmobar: vertical align after wc string--Sat Feb 16 17:06:50 CET 2008 Juraj Hercek <juhe_haskell@hck.sk>- * Adjusted filter used for digging out information from /sys directory- - As of 2.4.24 kernel you might experience same frequency for all cores,- because cpufreq directory is a link for cores 1 and higher--Sat Feb 16 09:14:58 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * cabal: remove unneeded -liconv linker flag--Sat Feb 16 09:04:21 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * PipeReader: add utf8 support--Sat Feb 16 09:03:06 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * StdinReader: add utf8 support--Sat Feb 16 09:01:51 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * add utf8 support to the core system--Sat Feb 16 09:01:04 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * cabal: add HsLocale and dependency on utf8-string--Sat Feb 16 09:00:26 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Add HsLocale to support utf8--Sat Feb 16 08:58:42 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * trailing spaces--Wed Jan 9 10:43:54 CET 2008 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Set strut value for BottomW and TopW too--Sun Dec 23 00:14:19 CET 2007 Juraj Hercek <juhe_haskell@hck.sk>- * Added documentation.- - added Thermal, CoreTemp, CpuFreq documentation to README file- - added haddock documentation--Sun Dec 23 00:10:39 CET 2007 Juraj Hercek <juhe_haskell@hck.sk>- * Adjusted thermal monitor.- - Thermal monitor can handle more thermal zones now--Sun Dec 16 01:13:26 CET 2007 Spencer Janssen <sjanssen@cse.unl.edu>- * Remove -O2 -fasm from ghc-options, allow Cabal to determine the best flags--Tue Dec 4 15:54:49 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * cabal: directory needed only with small_base--Fri Nov 30 21:54:30 CET 2007 Juraj Hercek <juhe_haskell@hck.sk>- * Added thermal, cpufreq and coretemp monitors.- Prerequisities:- thermal- - thermal module should be loaded/compiled in kernel- - available in (at least) intel centrino processors- cpufreq- - acpi_cpufreq module should be loaded/compiled in kernel- - available in modern processors- coretemp- - coretemp module should be loaded/compiled in kernel- - available (at least) in core 2 duo processors--Sun Nov 18 13:07:23 CET 2007 Alexander Solovyov <piranha@piranha.org.ua>- * Typo fixes--Thu Nov 15 14:49:05 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Now that a cold winter is approaching I added a new feature to Weather: the capacity of reading negative temperature.- This feature is generally not needed in Summertime. --Wed Nov 14 08:47:08 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: typo--Sun Nov 11 17:31:12 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- tagged 0_8_release--Sun Nov 11 10:59:56 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * cabal: updated cabal file to work with 1.2 and both ghc-6.6 and 6.8--Sun Nov 11 10:59:19 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: added reference to a source tree that works with Cabal-1.1.x--Thu Nov 8 00:10:28 CET 2007 Spencer Janssen <sjanssen@cse.unl.edu>- * StdinReader: exit when stdin has been closed--Mon Nov 5 11:23:54 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Plugins/Monitors/Common.hs: fix a bug in stringParser--Sun Nov 4 18:58:56 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README:updated to latest changes--Sun Nov 4 18:45:51 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * A new implementation of the position configuration option- WARNING: this patch breaks previous configuration files.- A new implementation of the position configuration option:- - Top and Bottom have non arguments- - TopW and BottomW have now 2 arguments: Align (L, C or R) and Int- - setting a width % greater than 100 means a 100% width--Sun Nov 4 16:32:44 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * helloworld.config updated to recent changes--Sun Nov 4 16:26:26 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Preserve backward compatibility- WARNING: this patch changes the configuration file- This patch reintroduces backward compatibility with recent changes in- the configuration option. Now Top and Bottom do not take any argument.- To set the width and alignment used TopW (Align Int) and BottomW- (Align Int) instead, where Align is either C, L or R.--Sun Nov 4 12:21:06 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * helloworld.config: updated to latest configuration changes--Sun Nov 4 12:17:31 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added an argument to Top and Bottom type contructors--Sun Nov 4 12:16:55 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added an argument to Top and Bottom type contructors--Sun Nov 4 12:12:21 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added possibility to set the main window's width- WARNING: this patch breaks previous configuration files!- - Changed the position configuration option: now Top and Bottom require- one argument, the width of the main window. 4 possibilities are given:- - A means all the screen width- - C Int means centered, with the Int percentage of screen width- - L Int means left aligned, with the Int percentage of screen width- - R Int means right aligned, with the Int percentage of screen width- - Examples:- position = Top A- or- position = Bottom (C 50)--Sun Nov 4 12:12:00 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Window is mapped after properties have been set--Sun Nov 4 12:11:11 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Fixed a compilation issue on non 32bit machines--Sat Nov 3 14:03:06 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Removed X11-extras-0.4 and bump X11 to 1.3.0--Thu Nov 1 10:11:09 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: added reference to a screenshot--Wed Oct 31 12:37:14 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: added link to xmonad home page--Wed Oct 31 12:28:10 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README updated darcs repository link--Wed Oct 31 12:25:07 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README added position examples--Wed Oct 31 11:58:34 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * css: fixed a validation error--Wed Oct 31 11:49:33 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README add link to Ion--Wed Oct 31 11:42:47 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added README.html and xmobar.css--Wed Oct 31 11:39:00 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README now uses pandoc: this way we can also generate a nice home page--Wed Oct 31 11:38:31 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Bump version to 0.8 and updated homepage--Mon Oct 29 08:38:26 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Code formatting only--Sun Oct 28 23:38:37 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Avoid irrefutable pattern in handling text alignment--Sun Oct 28 23:03:05 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: latest updates--Sun Oct 28 22:56:51 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added support for alignment commands in the output template--Sun Oct 28 22:55:15 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Main: removed align and added alignSep configuration option--Sun Oct 28 22:47:20 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added support for text alignment commands in the output template- WARNING: this patch breaks old configuration files.- - removed align configuration option- - added alignSep configuration option, a 2 character string: the text- before the first character will be align to left, the text in- between the 2 characters will be centered, and the text after the- second character will be align to the right. For instance:- with alignSep="][" the following output template- "left text ] %date% [ right text"- will display "left text" aligned to the left, a centered date, and- "right text" aligned to the right- See xmobar.config-sample or /Plugins/helloworld.config for examples--Sun Oct 28 16:49:23 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: added credits to Lennart Kolmodin--Sun Oct 28 14:44:51 CET 2007 Lennart Kolmodin <kolmodin@gentoo.org>- * Bump version requirement of X11-extras to 0.4- The constructor ExposeEvent appered in X11-extras-0.4--Sun Oct 28 14:28:04 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: updated to latest changes--Sun Oct 28 14:19:56 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Now we use information returned by getScreenInfo to draw the main window and more- - we now cache the FontStruct- - position is automatically calculated and updated in reposn to XRandR events--Sun Oct 28 14:19:10 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Main: removed old options and added the new ones--Sun Oct 28 13:40:34 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated config-sample to latest changes--Sun Oct 28 13:40:10 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated config-sample to latest changes--Sun Oct 28 13:36:38 CET 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Removed xPos yPos width and height configuration option and added position- WARNING: this patch breaks old configuration files:- - removed xPos, yPos, width and height- - a "position" configuration option has been added: this can be set to:- Top- Bottom- Static {xpos = Int, ypos = Int, width = Int, height = Int}- See xmobar.config-sample for an example--Sun Oct 28 00:05:50 CEST 2007 Spencer Janssen <sjanssen@cse.unl.edu>- * We must listen for ConfigureNotify events on the root window for xrandr--Sun Oct 28 00:01:35 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added credits to Dmitry Kurochkin--Sat Oct 27 13:44:37 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README screenshot url--Sat Oct 27 13:33:25 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README some updates--Sat Oct 27 13:11:27 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added XRandR support- - Added support for XRandR: if the screen configuration changes,- Xmobar will use the configured width only if smaller than the screen- width, otherwise the later will be used instead.- - Now Xmonad will set _NET_WM_STRUT and will present itself as a DOCK- application--Sat Oct 27 13:10:32 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Bump version to 0.8--Sat Oct 27 13:09:32 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Main will now open the connection with the X server--Sat Oct 27 13:08:34 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added X11-extras dependeny--Tue Oct 23 18:54:30 CEST 2007 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>- * Fix text vertical alignment.--Fri Oct 12 21:39:44 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Allow setting the foreground color- Now it is possible dynamically set the foreground color of strings to- be displayed with the <fc=foreground,background>string</fc> tag.--Fri Oct 12 21:39:20 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Parser: semplify color parsing--Thu Oct 11 22:30:29 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * The MVar is needed to avoid a race condition- As Spencer noted the checker thread may be throwing an exception- immediately, thus producing a race condition.--Sat Oct 6 12:54:47 CEST 2007 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>- * Remove MVar from eventLoop.--Wed Oct 3 10:58:06 CEST 2007 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>- * Use dynamic exceptions.--Fri Oct 5 00:39:21 CEST 2007 Spencer Janssen <sjanssen@cse.unl.edu>- * Fix race conditions in Xmobar.eventLoop--Thu Oct 4 02:03:48 CEST 2007 Spencer Janssen <sjanssen@cse.unl.edu>- * Weather plugin: accept temperatures with decimal points--Wed Oct 3 16:27:58 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README updated to recent API changes (the last hopefully)--Wed Oct 3 16:27:00 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Date: now implemented using rate and run--Wed Oct 3 16:25:49 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Reintroduced rate with a default implementation (1 second) to be used in the default implementation of start--Wed Oct 3 13:08:14 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: updated to recent API change--Wed Oct 3 13:07:43 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * HelloWorld defines only run--Wed Oct 3 13:06:09 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * reintroduced run as an Exec method: this way it is possible to write plugins by defining either run or start--Tue Oct 2 20:45:00 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * more code formatting--Tue Oct 2 20:40:57 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * coding style consistency--Tue Oct 2 20:11:34 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated README--Tue Oct 2 17:04:04 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Removed unneeded stuff- Removed StateT: now we only use a ReaderT- Some more code and comments cleanup--Tue Oct 2 13:53:19 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated helloworld.config-sample to latest changes--Tue Oct 2 13:52:44 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated config-sample to latest changes--Tue Oct 2 13:50:49 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * cabal: added stm to the dependency list--Tue Oct 2 13:50:14 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Updated Parsers to latest changes--Tue Oct 2 13:49:37 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated Main to lates changes--Tue Oct 2 13:48:13 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Config: removed the refresh configuration option- WARNING: this patch breaks previous configuration files. To update- just get rid of the refresh configuration option ;)--Tue Oct 2 13:45:38 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Now Xmobar uses STM concurrency- Now every time a TVar is updated the output window is redrawn. --Fri Sep 28 14:04:32 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added a plugin to read from stdin- Try it with: xmobar -t "%StdinReader%" -c '[Run StdinReader]'- then start writing ;)--Fri Sep 28 14:04:13 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Removed unused rate method--Fri Sep 28 14:03:44 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * code formatting--Fri Sep 28 14:02:55 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Removed unused rate method--Fri Sep 28 14:02:18 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Removed unused rate method--Thu Sep 27 21:40:26 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * more cleanup--Thu Sep 27 19:51:44 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * PipeReader: added a configurable alias--Thu Sep 27 19:37:11 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Monitors: updated to recent API changes - code formatting--Thu Sep 27 19:36:51 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * HelloWorld: updated to recent API changes--Thu Sep 27 19:35:57 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Date: updated to recent API changes--Thu Sep 27 19:35:29 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added a plugin to read named pipes (such as an XMonad logger)--Thu Sep 27 19:34:49 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Confg.hs: added PipeReader to the default configuration--Thu Sep 27 19:31:51 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Setup: waiting for Cabal-1.2 :)--Thu Sep 27 19:31:09 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Main.hs: updated to reflect the API change - code formatting and cleanup--Thu Sep 27 19:29:51 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Xmobas.hs: updated to reflect the API change - code formatting and cleanup--Thu Sep 27 19:29:24 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added Show instance to Runnable--Thu Sep 27 19:28:48 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Plugins: added tenthSeconds to the exported API--Thu Sep 27 19:27:51 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Updated Runnable to the new API - added Show instance--Thu Sep 27 19:25:06 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * API change in the Exec class- Changed run :: a -> IO String to- start :: a -> (String -> IO ()) -> IO ()- Suggested by Spencer Janssen.--Sat Sep 15 18:38:46 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * code formatting--Sat Sep 15 18:36:33 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added Date to default config--Sat Sep 15 16:01:43 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added a date plugin--Fri Sep 14 18:30:19 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added creadits to Jens--Wed Sep 12 09:09:49 CEST 2007 Jens Petersen <petersen@haskell.org>- * Parse the temperature separately in Celcius and Fahrenheit.- Parse the pressure in hPa.- Generalize showWithColors to (Num a, Ord a) so it works for both Int's and Float's.- Use an Int for temperature, pressure, and relative humidity.--Wed Sep 12 08:58:03 CEST 2007 Jens Petersen <petersen@haskell.org>- * only use 1 decimal place for showing floating numbers--Wed Sep 12 08:54:20 CEST 2007 Jens Petersen <petersen@haskell.org>- * include BAT0 acpi battery status too--Mon Sep 10 00:20:51 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: fixed some types--Mon Aug 27 12:59:02 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Plugins.Swap: check for SwapFree and SwapTotal- In some system SwapFree and SwapTotal are in different position, so we- need to check for the string.- Reported by Stan Behrens--Tue Jul 24 22:35:54 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Monitors.Common: parseString must use ByteStrings--Tue Jul 24 19:30:47 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * loadQueryFont must be protected by catch- Expecially now that fonts can be easily choose with a command line options.--Tue Jul 24 19:06:43 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Batt: we check if the file exists instead of catching an exception--Tue Jul 24 16:22:05 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Monitors.Commons: more code cleanup--Tue Jul 24 15:32:44 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Config.hs: removed %memory%" from default template--Tue Jul 24 15:16:58 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: some more editing--Tue Jul 24 14:51:20 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * if an invalid color name or value is given the black pixel will used instead--Tue Jul 24 14:01:31 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: added an example of command line options usage--Tue Jul 24 14:01:06 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * better error handling in Main.hs--Tue Jul 24 13:40:47 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Batt: better error handling--Tue Jul 24 13:10:19 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * ./Plugins/Monitors.hs: corrected module information--Tue Jul 24 13:05:41 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: added download information--Tue Jul 24 12:22:26 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * changed home page to http://gorgias.mine.nu/xmobar/--Tue Jul 24 12:13:22 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: updated to latest changes--Tue Jul 24 12:00:29 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * The help output must be visible in a terminal 80 characters wide--Tue Jul 24 11:44:35 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * code and output cleanup--Tue Jul 24 11:44:02 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Batt.hs: refactor to reduce resource usage--Tue Jul 24 11:27:01 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Monitors.Common: parseString will not produce exceptions anymore- An empty string will be returned instead.--Tue Jul 24 11:25:51 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Main.hs: removed exception- Check for default configuration file existence instead.--Mon Jul 23 22:08:52 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added support for command line options- Configuration options will override configuration files, or default- configuration.--Mon Jul 23 13:49:36 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * the normal color is set when normal > low--Thu Jul 19 12:15:05 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Moved battery line parsing into the Maybe monad.--Thu Jul 19 03:55:30 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Safer parsing without parsec in battery monitor--Mon Jul 16 02:34:48 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Fix parsing and processing data in Batt monitor.- Sometimes the monitor would crash due to bad index given to (!!). Now it- should be safe, as parsing is done differently.--Fri Jul 20 13:39:17 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * X code cleanup--Thu Jul 19 07:40:59 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * oops, I forgot to add Monitors.hs (it's not possible to build xmobar without it!)--Thu Jul 12 03:36:26 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Get rid of floats in scientific notation.- Use 'showDigits n' instead of 'show . takeDigits n'. As this example shows- explicit precision specifications would be appreciated ;)--Thu Jul 12 03:09:11 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Allow reverse "high" and "low" thresholds--Wed Jul 18 17:12:11 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Monitors are now a Plugin that can be removed from Config.hs--Wed Jul 18 00:51:31 CEST 2007 Spencer Janssen <sjanssen@cse.unl.edu>- * Use asynchronous exceptions to obviate the need for forkOS and threaded--Tue Jul 17 23:11:38 CEST 2007 Spencer Janssen <sjanssen@cse.unl.edu>- * execCommands is a mapM--Tue Jul 17 19:13:07 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * threads are now started with forkOS- This is required by the fact that calling nextEvent will block all other- running threads. So we need forkOS, which requires the -threaded ghc flag --Tue Jul 17 18:12:00 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * cabal: corrected x11-extras version number--Tue Jul 17 18:07:56 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * XEvents code cleanup--Tue Jul 17 15:14:11 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * XExposeEvent handling: that requires X11-extras- XExposeEvent is now properly (sort of) handled, with an hackish approch:- before nextEvent, that will block Xmobar since an Expose event is captured,- we create a background thread that will send an Expose event after the- configured refresh interval. So, either a real of a fake Expose event will- reach our window within the configured interval. Quite cool, after all.- --Tue Jul 17 11:14:38 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * changed runXmobar to runXbar--Sat Jul 14 12:39:13 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README and Cabal edits- Added some more credits, corrected typos, updated darcs version to 0.7,- changed name to Xmonbar and removed references to XMonad. Xmobar is now just- a minimalistic text based status bar for any kind of WM (the XMonad- community adopted the more advanced and stable dzen, after all ;-)--Fri Jul 13 14:37:07 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * haddock tuning--Fri Jul 13 13:13:02 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * cabal: added Plugins to the list of modules--Fri Jul 13 13:12:29 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Plugins.hs: some haddock corrections--Fri Jul 13 13:11:48 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README: updated to the latest changes--Fri Jul 13 12:13:29 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Config.hs: more code cleanup--Fri Jul 13 11:36:47 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Runnable: cleanup and some comments--Fri Jul 13 11:36:13 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added Plugins.hs for exporting the needed plugin API--Fri Jul 13 11:35:16 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Plugins now import Plugins.hs--Fri Jul 13 11:34:02 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Commands.hs: more code cleanup--Thu Jul 12 23:56:15 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * removed the Show instance requirement for plugins--Thu Jul 12 20:05:16 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * cabal updates--Thu Jul 12 20:04:34 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added a plugin example with the needed runtime configuration file--Thu Jul 12 20:04:05 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * credits to Claus Reinke and removed debugging code--Thu Jul 12 19:50:34 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * use of existential types for plugin support- This patch, which *changes the configuration format*, adds easy plugin support- by using an existential type for storing the list of commands to be- executed. Adding a plugin is just a matter of writing the appropriate- instance of the Exec class, after importing Commands.hs.- I must thank Claus Reinke for the help in understanding the mysteries of- reading existential types. The Read instance of Runnable must be credited to- him. See here:- http://www.haskell.org/pipermail/haskell-cafe/2007-July/028227.html--Wed Jul 11 20:31:31 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Commands.hs: monitors take only one action now--Wed Jul 11 20:22:21 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Weather.hs: code clean up--Wed Jul 11 20:06:30 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * config-sample: eyes candy--Wed Jul 11 20:04:37 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * more unused stuff removed--Wed Jul 11 18:54:26 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated README to latest changes--Wed Jul 11 18:52:47 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Net.hs: removed parserc. Now using list function to parse- Profiling shows that Net.hs and getNumbers specifically takes a huge ammount- of resources. Hope to reduce them with this patch.--Wed Jul 11 18:50:35 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * removed from monitors code not used anymore--Wed Jul 11 18:48:19 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Net.hs: removed old code--Wed Jul 11 17:02:21 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * some colors please!- Krzysztof says that we cannot set default colors without embedding a- Turing-complete language in the templates, so that we can take account of- different unit of measurement. May I set some colors in the configuration- example??--Wed Jul 11 17:02:01 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * gettin' rid of Krzysztof's object-oriented attitude...;-)--Tue Jul 10 16:15:50 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Formatting usedratio in Monitors.Swap--Tue Jul 10 16:14:06 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Fix takeDigits so it doesn't use read.--Tue Jul 10 16:13:29 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Typos in Monitors.Common--Tue Jul 10 16:08:45 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Clean up default options for monitors.- * Moved default configuration to Monitors.Common- * Colors are optional and are off by default--Thu Jul 5 18:03:20 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Read default configuration from ~/.xmobarrc- I am not sure if handling of other exceptions is acceptable, the assumption is- that failure to read ~/.xmobarrc because of other errors than parsing should- not blow up the whole program. Otherwise explicit test for file existence- would be required etc.--Mon Jul 9 02:29:47 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * new working version and named colors in config-sample--Mon Jul 9 02:12:03 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * comments only--Mon Jul 9 01:43:04 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * fixes a bug in the copyArea function--Mon Jul 9 01:23:38 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added a short-hand for fromintegral (much used here)--Mon Jul 9 00:48:54 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * This should fix the flickering problem on window's updates--Sun Jul 8 20:37:42 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * typo--Sun Jul 8 19:13:30 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * editing to README--Sun Jul 8 19:13:09 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added info to Commands.hs--Sun Jul 8 12:28:41 CEST 2007 Andrea Rossato <andrea.rossatoo@unibz.it>- tagged 0.5--Sun Jul 8 12:24:59 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated to version 0.5--Sun Jul 8 12:24:18 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated (I actually wrote some) documentation about configuring XMobar--Sun Jul 8 12:17:02 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * hope this fixes the "flickering text" problem reported by Krzysztof--Sun Jul 8 12:16:28 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * some monitors are now run internally--Sun Jul 8 12:14:30 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated configurations to reflect code changes--Sun Jul 8 12:12:08 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * the output template is now parsed with the help of a finite map- This way we can quickly implement program name aliasing.--Sun Jul 8 12:10:33 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * monitors are now run internally--Sun Jul 8 12:03:20 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * better error handling when parsing weather information--Sun Jul 8 12:01:48 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * better error handling when parsing weather information--Sun Jul 8 12:01:20 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added runM to run monitors internally--Sun Jul 8 11:55:21 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added Commands- Command is the data type for configuring command execution in XMobar. The- idea came in a discussion with Spencer Janssen. At first XMobar was intended- to be used only to display the output of external commands, but it came- clear that the main performance bottle neck was running external programs.- Now, some monitors are run internally, even if in separated threads. --Fri Jul 6 03:01:24 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Add support for named colors.- If bad color name is specified then exception is thrown by Xlib.- This should be probably handled in a more elegant way.--Fri Jul 6 04:48:14 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Fix centered text align.--Thu Jul 5 22:47:21 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Swap: usedratio reported free ratio--Thu Jul 5 17:28:15 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Fix few config name typos--Thu Jul 5 17:04:07 CEST 2007 Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>- * Add dependency on filepath--Thu Jul 5 15:28:14 CEST 2007 Andrea Rossato <andrea.rossatoo@unibz.it>- tagged 0.4--Thu Jul 5 15:24:27 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated sample configuration--Thu Jul 5 15:22:21 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated to version 0.4 and added new monitors--Thu Jul 5 15:21:45 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated to use the new Common.hs--Thu Jul 5 15:21:15 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated to use the new Common.hs--Thu Jul 5 15:20:22 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added a swap monitor--Thu Jul 5 15:19:49 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated to use the new Common.hs and split the swap part in a new monitor--Thu Jul 5 15:19:15 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated Cpu.hs to work with the new Common.hs--Thu Jul 5 15:18:35 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added a small library for writing monitors--Thu Jul 5 15:17:49 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added a battery monitor--Thu Jul 5 15:16:11 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * minor--Thu Jun 28 00:13:46 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Cpu.hs more code clean up--Wed Jun 27 23:49:57 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Cpu.hs now requires -threaded--Wed Jun 27 23:49:13 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * typos--Wed Jun 27 23:45:31 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Cpu.hs: removed Parsec and switched to ByteString--Wed Jun 27 11:44:46 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * possibility to delay a thread for more than (maxBound :: Int) microseconds--Wed Jun 27 00:55:38 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * version 0.3.1--Wed Jun 27 00:52:34 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * default is Glasgow ;-)--Wed Jun 27 00:51:56 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * fixed an out of bount bug that could cause a flood to http://weather.noaa.gov/--Tue Jun 26 20:45:42 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * removed debug output--Tue Jun 26 20:07:14 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added cabal and config reference to the weather monitor--Tue Jun 26 20:06:27 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * corrected the threadDelay arguments--Tue Jun 26 20:05:37 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added a weather monitor to retrieve weather information from http://weather.noaa.gov/--Tue Jun 26 13:39:48 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * splitted files--Tue Jun 26 13:01:04 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * now the Xbar monad is similar to the one of XMonad--Tue Jun 26 11:44:52 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * cosmetics--Tue Jun 26 11:43:57 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * Added -threaded option for ghc--Tue Jun 26 10:06:19 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added refresh rate config option for each command to be run--Tue Jun 26 09:42:39 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * now each command is run in a separate thread and MVars are used for interprocess communication--Tue Jun 26 07:17:47 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * better error handling--Tue Jun 26 07:16:22 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * createWin will now return Xbar (Display, Window)--Mon Jun 25 18:44:19 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated the README--Mon Jun 25 14:21:59 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * * fixes some memory leak problems- After calling loadQueryFont the FontStruct returned must be freed after using it.- runInteractiveProcess leaks memory. runInteractiveCommand does not.--Fri Jun 22 15:07:09 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * README and description--Fri Jun 22 14:53:03 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * updated example config--Fri Jun 22 14:52:29 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * cabal updates--Fri Jun 22 14:51:52 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added some monitors with output formatted for xmobar--Fri Jun 22 14:51:33 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * comments--Fri Jun 22 12:51:28 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * removed monitor.hs (useless now)--Fri Jun 22 12:48:52 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * big update: this is a status bar now- Added a lot of features.--Tue Jun 19 19:40:06 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added a refresh rate configuration option--Tue Jun 19 12:52:35 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * haddock and other minor editing--Tue Jun 19 12:51:50 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added cabal support--Tue Jun 19 12:51:32 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added license (bsd3)--Tue Jun 19 11:12:16 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added a sample config file--Tue Jun 19 11:00:18 CEST 2007 Andrea Rossato <andrea.rossato@ing.unitn.it>- * added license and some info--Tue Jun 19 10:07:45 CEST 2007 Andrea Rossato <andrea.rossatoo@unibz.it>- * some changes to monitor.hs to test xmobar--Tue Jun 19 10:06:25 CEST 2007 Andrea Rossato <andrea.rossatoo@unibz.it>- * added a monitoring script found here http://blog.csdn.net/danranx/archive/2007/06/10/1646608.aspx--Tue Jun 19 10:03:55 CEST 2007 Andrea Rossato <andrea.rossatoo@unibz.it>- * init
Commands.hs view
@@ -23,11 +23,14 @@ , tenthSeconds ) where +import Prelude hiding (catch) import Control.Concurrent+import Control.Exception import Data.Char import System.Process import System.Exit-import System.IO (hClose, hGetLine)+import System.IO (hClose)+import XUtil class Show e => Exec e where alias :: e -> String@@ -64,7 +67,7 @@ hClose e case exit of ExitSuccess -> do- str <- hGetLine o+ str <- catch (hGetLineSafe o) (\_ -> return "") closeHandles cb str _ -> do closeHandles
Config.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP, TypeOperators #-}+ ----------------------------------------------------------------------------- -- | -- Module : Xmobar.Config@@ -26,8 +28,13 @@ import Plugins.Monitors import Plugins.Date import Plugins.PipeReader+import Plugins.CommandReader import Plugins.StdinReader +#ifdef INOTIFY+import Plugins.Mail+#endif+ -- $config -- Configuration data type and default configuration @@ -37,7 +44,9 @@ , bgColor :: String -- ^ Backgroud color , fgColor :: String -- ^ Default font color , position :: XPosition -- ^ Top Bottom or Static- , commands :: [Runnable] -- ^ For setting the command, the command argujments+ , lowerOnStart :: Bool -- ^ Lower to the bottom of the+ -- window stack on initialization+ , commands :: [Runnable] -- ^ For setting the command, the command arguments -- and refresh rate for the programs to run (optional) , sepChar :: String -- ^ The character to be used for indicating -- commands in the output template (default '%')@@ -50,6 +59,7 @@ | Bottom | BottomW Align Int | Static {xpos, ypos, width, height :: Int}+ | OnScreen Int XPosition deriving ( Read, Eq ) data Align = L | R | C deriving ( Read, Eq )@@ -61,6 +71,7 @@ , bgColor = "#000000" , fgColor = "#BFBFBF" , position = Top+ , lowerOnStart = True , commands = [ Run $ Date "%a %b %_d %Y * %H:%M:%S" "theDate" 10 , Run StdinReader] , sepChar = "%"@@ -68,11 +79,20 @@ , template = "%StdinReader% }{ <fc=#00FF00>%uname%</fc> * <fc=#FF0000>%theDate%</fc>" } ++-- | An alias for tuple types that is more convenient for long lists.+type a :*: b = (a, b)+infixr :*:+ -- | This is the list of types that can be hidden inside -- 'Runnable.Runnable', the existential type that stores all commands -- to be executed by Xmobar. It is used by 'Runnable.readRunnable' in -- the 'Runnable.Runnable' Read instance. To install a plugin just add--- the plugin's type to the list of types appearing in this function's type--- signature.-runnableTypes :: (Command,(Monitors,(Date,(PipeReader,(StdinReader,())))))+-- the plugin's type to the list of types (separated by ':*:') appearing in+-- this function's type signature.+runnableTypes :: Command :*: Monitors :*: Date :*: PipeReader :*: CommandReader :*: StdinReader :*:+#ifdef INOTIFY+ Mail :*:+#endif+ () runnableTypes = undefined
+ Plugins/CommandReader.hs view
@@ -0,0 +1,39 @@+-----------------------------------------------------------------------------+-- |+-- Module : Plugins.CommandReader+-- Copyright : (c) John Goerzen+-- License : BSD-style (see LICENSE)+--+-- Maintainer : Andrea Rossato <andrea.rossato@unibz.it>+-- Stability : unstable+-- Portability : unportable+--+-- A plugin for reading from external commands+-- note: stderr is lost here+--+-----------------------------------------------------------------------------++module Plugins.CommandReader where++import System.IO+import Plugins+import System.Process(runInteractiveCommand, getProcessExitCode)++data CommandReader = CommandReader String String+ deriving (Read, Show)++instance Exec CommandReader where+ alias (CommandReader _ a) = a+ start (CommandReader p _) cb = do+ (hstdin, hstdout, hstderr, ph) <- runInteractiveCommand p+ hClose hstdin+ hClose hstderr+ hSetBinaryMode hstdout False+ hSetBuffering hstdout LineBuffering+ forever ph (hGetLineSafe hstdout >>= cb)+ where forever ph a = + do a+ ec <- getProcessExitCode ph+ case ec of+ Nothing -> forever ph a+ Just _ -> cb "EXITED"
+ Plugins/Mail.hs view
@@ -0,0 +1,79 @@+-----------------------------------------------------------------------------+-- |+-- Module : Plugins.Mail+-- Copyright : (c) Spencer Janssen+-- License : BSD-style (see LICENSE)+--+-- Maintainer : Spencer Janssen <sjanssen@cse.unl.edu>+-- Stability : unstable+-- Portability : unportable+--+-- A plugin for checking mail.+--+-----------------------------------------------------------------------------++module Plugins.Mail where++import Prelude hiding (catch)+import System.IO+import Plugins++import Control.Monad+import Control.Concurrent.STM++import System.Directory+import System.FilePath+import System.INotify++import Data.List (isPrefixOf)+import Data.Set (Set)+import qualified Data.Set as S++-- | A list of mail box names and paths to maildirs.+data Mail = Mail [(String, FilePath)]+ deriving (Read, Show)++instance Exec Mail where+ start (Mail ms) cb = do+ vs <- mapM (const $ newTVarIO S.empty) ms++ let ts = map fst ms+ ds = map ((</> "new") . snd) ms+ ev = [Move, MoveIn, MoveOut, Create, Delete]++ i <- initINotify+ zipWithM_ (\d v -> addWatch i ev d (handle v)) ds vs++ forM (zip ds vs) $ \(d, v) -> do+ s <- fmap (S.fromList . filter (not . isPrefixOf "."))+ $ getDirectoryContents d+ atomically $ modifyTVar v (S.union s)++ changeLoop (mapM (fmap S.size . readTVar) vs) $ \ns -> do+ cb . unwords $ [m ++ ":" ++ show n+ | (m, n) <- zip ts ns+ , n /= 0 ]++modifyTVar :: TVar a -> (a -> a) -> STM ()+modifyTVar v f = readTVar v >>= writeTVar v . f++handle :: TVar (Set String) -> Event -> IO ()+handle v e = atomically $ modifyTVar v $ case e of+ Created {} -> create+ MovedIn {} -> create+ Deleted {} -> delete+ MovedOut {} -> delete+ _ -> id+ where+ delete = S.delete (filePath e)+ create = S.insert (filePath e)++changeLoop :: Eq a => STM a -> (a -> IO ()) -> IO ()+changeLoop s f = atomically s >>= go+ where+ go old = do+ f old+ go =<< atomically (do+ new <- s+ guard (new /= old)+ return new)
Plugins/Monitors/Common.hs view
@@ -55,6 +55,7 @@ import Numeric import Text.ParserCombinators.Parsec import System.Console.GetOpt+import Control.Exception (handle) import Plugins -- $monitor@@ -148,7 +149,7 @@ where go = do c <- conf let ac = doArgs args action- s <- runReaderT ac c+ s <- handle (const $ return "error") $ runReaderT ac c cb s tenthSeconds r go
Plugins/Monitors/CoreCommon.hs view
@@ -16,6 +16,7 @@ import Plugins.Monitors.Common import System.Posix.Files (fileExist)+import System.IO (withFile, IOMode(ReadMode), hGetLine) import System.Directory import Data.Char (isDigit) import Data.List (isPrefixOf)@@ -26,7 +27,7 @@ -- is performed. checkedDataRetrieval :: String -> String -> String -> String -> Double -> Monitor String checkedDataRetrieval failureMessage dir file pattern divisor = do- exists <- io $ fileExist $ foldl (++) dir ["/", pattern, "0/", file]+ exists <- io $ fileExist $ concat [dir, "/", pattern, "0/", file] case exists of False -> return failureMessage True -> retrieveData dir file pattern divisor@@ -38,15 +39,16 @@ retrieveData :: String -> String -> String -> Double -> Monitor String retrieveData dir file pattern divisor = do count <- io $ dirCount dir pattern- contents <- io $ mapM readFile $ files count+ contents <- io $ mapM getGuts $ files count values <- mapM (showWithColors show) $ map conversion contents parseTemplate values where+ getGuts f = withFile f ReadMode hGetLine dirCount path str = getDirectoryContents path >>= return . length . filter (\s -> str `isPrefixOf` s && isDigit (last s))- files count = [ foldl (++) dir [ "/", pattern, show i, "/", file ]- | i <- [0 .. count - 1] ]- conversion = flip (/) divisor . (read :: String -> Double)+ files count = map (\i -> concat [dir, "/", pattern, show i, "/", file])+ [0 .. count - 1]+ conversion = (/divisor) . (read :: String -> Double)
Plugins/Monitors/CpuFreq.hs view
@@ -25,7 +25,7 @@ cpuFreqConfig = mkMConfig "Freq: <cpu0>GHz" -- template (zipWith (++) (repeat "cpu") (map show [0 :: Int ..])) -- available- -- replacements+ -- replacements -- | -- Function retrieves monitor string holding the cpu frequency (or frequencies)
README view
@@ -29,11 +29,11 @@ The latest binary can be found here: - http://code.haskell.org/~arossato/xmobar/xmobar-0.9.bin+<http://code.haskell.org/~arossato/xmobar/xmobar-0.9.bin> A recent screen shot can be found here: - http://code.haskell.org/~arossato/xmobar/xmobar-0.9.png+<http://code.haskell.org/~arossato/xmobar/xmobar-0.9.png> Version 0.9 requires Cabal-1.2.x, but should work both with ghc-6.6.1 and ghc-6.8.1.@@ -228,7 +228,7 @@ a standard input reader, an Unix named pipe reader, and a configurable date plugin. These plugins install the following internal commands: `Weather`, `Network`, `Memory`, `Swap`, `Cpu`, `Battery`, `Thermal`,-`CpuFreq`, `CoreTemp`, `Date`, `StdinReader` and `PipeReader`.+`CpuFreq`, `CoreTemp`, `Date`, `StdinReader`, `CommandReader`, and `PipeReader`. To remove them see below Installing/Removing a Plugin @@ -298,7 +298,7 @@ `BatteryP Dirs Args RefreshRate` - aliases to `battery`-- Files: list of directories in /proc/acpi/battery/ direcotry where to+- Files: list of directories in /proc/acpi/battery/ directory where to look for the `state` and `info` files. Example: `["BAT0","BAT1","BAT2"]`. Only the first 3 directories will be searched.@@ -338,6 +338,13 @@ - This monitor requires coretemp module to be loaded in kernel - Example: `Run CoreTemp ["-t","Temp:\<core0\>|\<core1\>C","-L","40","-H","60","-l","lightblue","-n","gray90","-h","red"] 50` +`Mail Args`++- aliases to `Mail`+- Args: list of maildirs in form [("name1","path1"),("name2","path2")]+- This plugin requires INOTIFY support in Linux kernel and hinotify library.+ To activate, pass --flags="with_inotify" to "runhaskell Setup configure".+ ### Monitor Plugins Commands Arguments These are the arguments that can be used for internal commands in the@@ -391,6 +398,8 @@ `StdinReader` +`CommandReader "/path/to/program" Alias`+ `PipeReader "/path/to/pipe" Alias` Plugins@@ -470,7 +479,7 @@ signature of `runnableTypes` in `Config.hs`. For instance, for the HelloWorld plugin, change `runnableTypes` into: - runnableTypes :: (Command,(Monitors,(HelloWorld,())))+ runnableTypes :: Command :*: Monitors :*: HelloWorld :*: () runnableTypes = undefined 3. Rebuild and reinstall [xmobar]. Now test it with:@@ -499,12 +508,12 @@ 2. in `Config.hs` change - runnableTypes :: (Command,(Monitors,()))+ runnableTypes :: Command :*: Monitors :*: () runnableTypes = undefined to - runnableTypes :: (Command,())+ runnableTypes :: Command :*: () runnableTypes = undefined 3. rebuild [xmobar].
Runnable.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -fglasgow-exts #-}+{-# LANGUAGE ExistentialQuantification, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-} ----------------------------------------------------------------------------- -- | -- Module : Xmobar.Runnable
Runnable.hs-boot view
@@ -1,4 +1,4 @@-{-# OPTIONS -fglasgow-exts #-}+{-# LANGUAGE ExistentialQuantification #-} module Runnable where import Commands
Xmobar.hs view
@@ -1,4 +1,3 @@-{-# OPTIONS -fglasgow-exts #-} ----------------------------------------------------------------------------- -- | -- Module : Xmobar@@ -128,20 +127,21 @@ createWin :: Display -> XFont -> Config -> IO (Rectangle,Window) createWin d fs c = do let dflt = defaultScreen d- sr:_ <- getScreenInfo d+ srs <- getScreenInfo d rootw <- rootWindow d dflt (as,ds) <- textExtents fs "0"- let ht = as + ds + 4- (r,o) = setPosition (position c) sr (fi ht)+ let ht = as + ds + 4+ (r,o) = setPosition (position c) srs (fi ht) win <- newWindow d (defaultScreenOfDisplay d) rootw r o selectInput d win (exposureMask .|. structureNotifyMask)- setProperties r c d win+ setProperties r c d win srs+ when (lowerOnStart c) (lowerWindow d win) mapWindow d win return (r,win) -setPosition :: XPosition -> Rectangle -> Dimension -> (Rectangle,Bool)-setPosition p (Rectangle rx ry rw rh) ht =- case p of+setPosition :: XPosition -> [Rectangle] -> Dimension -> (Rectangle,Bool)+setPosition p rs ht =+ case p' of Top -> (Rectangle rx ry rw h , True) TopW L i -> (Rectangle rx ry (nw i) h , True) TopW R i -> (Rectangle (right i) ry (nw i) h , True)@@ -151,7 +151,11 @@ BottomW R i -> (Rectangle (right i) ny (nw i) h , True) BottomW C i -> (Rectangle (center i) ny (nw i) h , True) Static cx cy cw ch -> (Rectangle (fi cx ) (fi cy) (fi cw) (fi ch), True)+ OnScreen _ _ -> error "Nested OnScreen positions are not allowed" where+ (Rectangle rx ry rw rh, p') = case p of+ OnScreen i x -> (rs !! i, x)+ _ -> (head rs, p) ny = ry + fi (rh - ht) center i = rx + (fi $ div (remwid i) 2) right i = rx + (fi $ remwid i)@@ -160,28 +164,49 @@ nw = fi . pw . fi h = fi ht -setProperties :: Rectangle -> Config -> Display -> Window -> IO ()-setProperties r c d w = do+setProperties :: Rectangle -> Config -> Display -> Window -> [Rectangle] -> IO ()+setProperties r c d w srs = do a1 <- internAtom d "_NET_WM_STRUT_PARTIAL" False c1 <- internAtom d "CARDINAL" False a2 <- internAtom d "_NET_WM_WINDOW_TYPE" False c2 <- internAtom d "ATOM" False v <- internAtom d "_NET_WM_WINDOW_TYPE_DOCK" False- changeProperty32 d w a1 c1 propModeReplace $ map fi $ getStrutValues r c+ changeProperty32 d w a1 c1 propModeReplace $ map fi $+ getStrutValues r (position c) (getRootWindowHeight srs) changeProperty32 d w a2 c2 propModeReplace [fromIntegral v] -getStrutValues :: Rectangle -> Config -> [Int]-getStrutValues (Rectangle x _ w h) c =- case position c of- Top -> [0, 0, nh, 0, 0, 0, 0, 0, nx, nw, 0, 0]- TopW _ _ -> [0, 0, nh, 0, 0, 0, 0, 0, nx, nw, 0, 0]- Bottom -> [0, 0, 0, nh, 0, 0, 0, 0, 0, 0, nx, nw]- BottomW _ _ -> [0, 0, 0, nh, 0, 0, 0, 0, 0, 0, nx, nw]- _ -> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]- where nh = fi h+getRootWindowHeight :: [Rectangle] -> Int+getRootWindowHeight srs = foldr1 max (map getMaxScreenYCoord srs)+ where+ getMaxScreenYCoord sr = fi (rect_y sr) + fi (rect_height sr)++getStrutValues :: Rectangle -> XPosition -> Int -> [Int]+getStrutValues r@(Rectangle x y w h) p rwh =+ case p of+ OnScreen _ p' -> getStrutValues r p' rwh+ Top -> [0, 0, st, 0, 0, 0, 0, 0, nx, nw, 0, 0]+ TopW _ _ -> [0, 0, st, 0, 0, 0, 0, 0, nx, nw, 0, 0]+ Bottom -> [0, 0, 0, sb, 0, 0, 0, 0, 0, 0, nx, nw]+ BottomW _ _ -> [0, 0, 0, sb, 0, 0, 0, 0, 0, 0, nx, nw]+ Static _ _ _ _ -> getStaticStrutValues p rwh+ where st = fi y + fi h+ sb = rwh - fi y nx = fi x nw = fi (x + fi w - 1) +-- get some reaonable strut values for static placement. +getStaticStrutValues :: XPosition -> Int -> [Int]+getStaticStrutValues (Static cx cy cw ch) rwh+ -- if the yPos is in the top half of the screen, then assume a Top+ -- placement, otherwise, it's a Bottom placement+ | cy < (rwh `div` 2) = [0, 0, st, 0, 0, 0, 0, 0, xs, xe, 0, 0]+ | otherwise = [0, 0, 0, sb, 0, 0, 0, 0, 0, 0, xs, xe]+ where st = cy + ch + sb = rwh - cy+ xs = cx -- a simple calculation for horizontal (x) placement+ xe = xs + cw+getStaticStrutValues _ _ = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]+ updateWin :: TVar String -> X () updateWin v = do xc <- ask
xmobar.cabal view
@@ -1,5 +1,5 @@ name: xmobar-version: 0.9+version: 0.9.1 homepage: http://code.haskell.org/~arossato/xmobar synopsis: A Minimalistic Text Based Status Bar description: Xmobar is a minimalistic text based status bar.@@ -24,13 +24,20 @@ flag with_utf8 description: With UTF-8 support. +flag with_inotify+ description: inotify support (modern Linux only). Required for the Mail plugin.+ executable xmobar main-is: Main.hs other-Modules: Xmobar, Config, Parsers, Commands, XUtil, Runnable, Plugins ghc-options: -funbox-strict-fields -Wall ghc-prof-options: -prof -auto-all++ if impl (ghc == 6.10.1) && arch (x86_64)+ ghc-options: -O0+ if flag(small_base)- build-depends: base >= 3, containers, process, old-time, old-locale, bytestring, directory+ build-depends: base >= 3, base < 4, containers, process, old-time, old-locale, bytestring, directory else build-depends: base < 3@@ -42,5 +49,9 @@ if flag(with_utf8) build-depends: utf8-string cpp-options: -DUTF8++ if flag(with_inotify)+ build-depends: hinotify+ cpp-options: -DINOTIFY build-depends: X11>=1.3.0, mtl, unix, parsec, filepath, stm
xmobar.config-sample view
@@ -2,6 +2,7 @@ , bgColor = "black" , fgColor = "grey" , position = Top+ , lowerOnStart = True , commands = [ Run Weather "EGPF" ["-t","<station>: <tempC>C","-L","18","-H","25","--normal","green","--high","red","--low","lightblue"] 36000 , Run Network "eth0" ["-L","0","-H","32","--normal","green","--high","red"] 10 , Run Network "eth1" ["-L","0","-H","32","--normal","green","--high","red"] 10