version 2.3 (2015-02-17) * refactor the main loop for instant i3bar update on module or i3status output change wrt issue #59, handle correctly all and multiple time and tztime instances while updating them only on py3status interval thx to @protosphere and @abello * clear cache of user modules on click events by default for maximal i3bar responsiveness * fix issue #63 wrt SIGUSR1 spam error, cap it to 1 per 100ms anyway to avoid killing i3status thx to @abello * lower the click event refresh mechanism rate limit to 100ms * remove legacy module ordering spammy debug logs * new spaceapi module, by Timm Szigat * new module bitcoin-price-checker, by André Doser * fix typo in imap module thx to @tasse * fix i3status setup race condition reported by @tasse * fix time adjustement for short iteration timers thx to @guilbep version 2.2 (2015-01-23) * rewrite and cleanup the modules loading mechanism to handle correctly user provided modules instances wrt #57 thx to @wlcx and @Zopieux * fix module name parsing thx to @guiniol * fix python3 default i3status.conf file path detection * fix i3status.conf parsing of one-liner configurations * support time/tztime definitions with extra parts in the section name, by Jyri-Petteri Paloposki * add more user configurable params to the pomodoro module wrt issue #53 thx to @promaq * add possibility to color mpd_status, by Thomas Sanchez * update get_user_modules docstring * add debug log of user provided modules * better format module loading error messages version 2.1 (2015-01-09) * fix i3status.conf parsing when config parameters contains brackets wrt issue #51 thx to @ZeiP * fix NamedTemporaryFile file delete throwing an OSError as we clean it up ourselves to be compatible with all python versions version 2.0 (2015-01-04) * two main highlights, see the wiki for more details : * 1- you can now load, run and order ALL (i3status and py3status) modules from your usual i3status.conf * 2- you can handle click events on ALL modules (i3status and py3status) directly from your usual i3status.conf thanks to the new on_click parameter * all modules have been changed to match v2 return dict, QA, config and standalone test code * implement full i3status.conf parsing wrt issue #44 thx to @tablet-mode * generate and use a temporary i3status config on the fly so that we can now extend it with our own modules without breaking i3status * move modules folder so we can install it as a module of py3status, all modules are now importable * handle loading, running and ordering of py3status modules directly configured from i3status.conf * user provided modules win over py3status importable modules * add handling of a special on_click parameter in i3status.conf allowing to send i3 messages and execute special py3status actions * implement an i3status module name and instance guesser in the event thread to dispatch click events from i3status modules * make sure every py3status command line parameter gets a short and long flag * new imap mail checker module by @obb * add installation instructions for Fedora, by Jakub Jedelsky * backport code for issue #43 thx to @scotte * enhanced battery_level module with horizontal bar and click event thx to @AdamBSteele wrt issue #48 and #49 * make i3-nagbar messages non blocking to py3status * cleaner debug logs * update README with new wiki links and new capabilities explanations * update the i3wm.org documentation version 1.6 (2014-10-07) * new vnstat module, by Vasiliy Horbachenko * new net_rate module, alternative module for tracking network rate, by Vasiliy Horbachenko * Fix include_paths default wrt issue #38, by Frank Haun * module clementine.py: Make python3 compatible, by Frank Haun * Update sysdata.py module, by @fhaun * rename the 'examples' folder to 'modules' * add an information note in the keyboard module * Merge pull request #34 from rayeshman/master * normalize the CACHE_TIMEOUT variable name * PEP8 and cleanup of scratchpad-counter module * PEP8 and normalization of mpd_status module * PEP8 and rename the current-title to window-title, normalization * switch french color to solarized blue on keyboard-layout module * rename current-keyboard-layout to keyboard-layout, PEP8 cleanup, implement check using setxkbmap for maximal compatibility, add french coloring * add optional CPU temperature to the sysdata module, by Rayeshman * new mpd_status module, by Vasiliy Horbachenko * add pypip badge for version * new scratchpad-counter module and current-title module for displaying current windows title, by Vasiliy Horbachenko * fix netdata module to work with python3 wrt issue #31 * new clementine module displaying the current "artist - title" playing in Clementine, by François LASSERRE version 1.5 (2014-05-03) * add --version parameter wrt issue #29 * switch back to RST for the README wrt pypi and issue #30 thx to @Weishaupt * include modules, changelog and license to sources on pypi * rename the examples folder to modules and include it in the installed files version 1.4 (2014-04-16) * new ordering mechanism with verbose logging. fixes rare cases where the modules methods were not always loaded in the same order and caused inconsistent ordering between reloads. thx to @guiniol for reporting/debugging and @IotaSpencer and @tasse for testing. * debug: dont catch print() on debug mode * debug: add position requested by modules * Merge pull request #25 from nawadanp/master * Add new module ns_checker.py, by @nawadanp * move README to markdown, change ordering * update the README with the new options from --help version 1.3 (2014-02-23) * new standalone mode allowing to bypass i3status when you need a py3status-modules-only i3bar * debug mode add log info about py3status invocation config * pep8 cosmetics * python3 compatibility code wrt issue #24 * make sure i3status_time encoding is UTF-8 wrt issue #24, thx to @zetok version 1.2 (2014-01-12) * new module dpms.py allowing activation and deactivation of DPMS thx to André Doser * order i3status output updates to prevent it from overwritting any modification made on i3status json list by a user module, this avoids a possible user filter flapping on i3status modules * fix delay on first execution of each module which could be equal to py3status interval time before being executed * the real i3status thread output json list is passed to all modules as the i3status_output_json parameter, this allows any user module to change any of the i3status output by simply altering the given json on the list, inspired thx to @drestebon on issue #23 * add validation for the position parameter * Merge pull request #21 from patrickshan/master * make cpu status cached for 10s and leave the output index to 0, by Patrick Shan * add cpu usage info to sysdata script, by Patrick Shan version 1.1 (2013-12-15) * new generic click event handler using the special module file named i3bar_click_events.py which will be forwarded any orphan click event for action. this allows you to take action on clicks made on your i3status modules ! * add the filename as the module_name property to the Module class * drop useless modes on examples * new example whoami displaying the currently logged in user * be more concrete in the i3status.conf example * add IRC information, join us on #py3status on freenode to share your ideas or ask for help * redirect stdout and stderr to null to suppress modules outputs, this prevents i3bar from frezzing when a user module prints something to stdout or stderr wrt issue #20 * use base stdout for the output on i3bar * fix first event opening line wrt issue #19 thx to @lathan * fix delay on py3status start waiting for i3status, this caused a useless first refresh delay of py3status of i3status interval seconds, thx to @Edholm on issue #18 * fix i3status time adjustment when format does not contain the necessary items to get an exact datetime wrt issue #18 * fix respect user's locale for time transformation, thx to @Edholm on issue #18 * new example module displaying Yahoo Weather forcast * Merge pull request #15 from alethiophile/master * Float update-time option, by Tom Hunt version 1.0 (2013-08-30) * total rewrite (yes, again) * support for i3bar click_events, they're dispatched to user-written py3status classes based on their name/instance * add support for on_click methods in user-written modules to handle i3bar click_events (see the pomodoro example) * default is to clear the method's cache (force a refresh) if you middle click (button 2) on a method's output and the module does not support click_events * rewrite pomodoro example to showcase the on_click usage * use i3-nagbar to display warnings/errors to the user and also log them to syslog * new user-written module output ordering mechanism is more intuitive as it uses strictly numeric then alphabetical sorting * use select/poll() to implement a non-blocking I/O reading mechanism on threads * new Events thread is responsible for reading i3bar JSONs and dispatching them to the correct user module (click_events) * each user-written module is started and executed in its own thread * remove the pointless -d option * add a --debug option to be verbose in syslog (useful for debugging your modules) * add a real CHANGELOG * add a proper LICENSE file * make sure all examples are PEP8 compatible * update the empty_class example to explain on_click and kill usage version 0.13 (2013-06-24) * fix instancemethod detection wrt issue #11 thx to @lathan and @bloodred, inspired by pull request #12 by @drahier * add information about method execution in the empty_class example version 0.12 (2013-06-19) * update the readme and help * dont call private and special methods on Py3status classes * handle multiple include paths parameters * dont die on IOError upon suspend wrt issue #10 thx to @drahier * Merge pull request #9 from shahinism/master * Three new method added. (net_speed, traffic, ram_info), by Shahin Azad version 0.11 (2013-04-30) * Merge pull request #8 from edk141/pr-1 * fix UserModules.clear(), by Ed Kellett * fix i3status config reader tztime detection version 0.10 (2013-04-19) * fix setup for pypi * fix issue #5 thx to @drahier for reporting * fix README wiki URL * stupid rst * update the README for rst, better MANIFEST * add MANIFEST.in and switch README.rst for pypi version 0.9 (2013-04-17) * respect positions on injected classes outputs * update readme for pypi installation * drop invalid classifier for pypi * set default i3status colors * pingdom module dont need to be aggressive on timeout anymore, add POSITION parameter * glpi module dont need to be aggressive on timeout anymore, add POSITION parameter * enhanced self key binding pomodoro example as discussed with Fandekasp * Handle killing of user-written modules nicely by calling their kill method if implemented upon exit of py3status, ignore kill methods execution when running normally * Merge pull request #4 from Fandekasp/pomodoro * handle case log file does not exists, by Adrien Lemaire * plugin now working with keys to start/stop/pause, by Adrien Lemaire * reading log file for value. Do I really need watchdog ?, by Adrien Lemaire * define watchdog values to listen, and their action, by Adrien Lemaire * separate code in send_notification method, by Adrien Lemaire * adding new pomodoro plugin, by Adrien Lemaire * drop useless print version 0.8 (2013-04-08) * major rewrite * handle SIGUSR1 for new threaded modules execution, drop useless globals * load user defined modules from a separate thread so that they cannot cause any delay in updating the i3bar * PEP8 identation and python3 compatible examples * adjust the readme help * major cleanup, better threading of i3status, enhanced main logic for better responsiveness, drop useless variables, respect PEP8 identation, more PEP8 variable cleanup version 0.7 thanks to @Detegr (2013-04-06) * add a note on the Control section * only adjust sleep interval if i3status interval is greater than ours * add Pingdom checks latency example module version 0.6 (2013-03-25) * fix time transformation thx to Lujeni * specify default folder for user defined classes * clear the user class cache when receiving SIGUSR1 version 0.5 (2013-03-17) * add the Control section, cleanup install instructions * signal SIGUSR1 forces i3status and i3bar refresh, feature request by Michael Schaefer, add better comments version 0.4 (2013-03-15) * dont fail if i3status output comes slower than py3status message polling interval * iterate over user classes in a sorted manner to allow a predictive ordering of outputs * add Arch installation URL on the README thx to waaaaargh * python3 compatibility inspired by waaaaargh (Johannes Firlefanz) * add GLPI open tickets counter module example