Tag Archives: py3status

py3status v2.4

I’m very pleased to announce this new release of py3status because it is by far the most contributed one with a total of 33 files changed, 1625 insertions and 509 deletions !

I’ll start by thanking this release’s contributors with a special mention for Federico Ceratto for his precious insights, his CLI idea and implementation and other modules contributions.

Thank you

  • Federico Ceratto
  • @rixx (and her amazing reactivity)
  • J.M. Dana
  • @Gamonics
  • @guilbep
  • @lujeni
  • @obb
  • @shankargopal
  • @thomas-

IMPORTANT

In order to keep a clean and efficient code base, this is the last version of py3status supporting the legacy modules loading and ordering, this behavior will be dropped on the next 2.5 version !

CLI commands

py3status now supports some CLI commands which allows you to get information about all the available modules and their documentation.

  • list all available modules

if you specify your own inclusion folder(s) with the -i parameter, your modules will be listed too !

$ py3status modules list
Available modules:
  battery_level          Display the battery level.
  bitcoin_price          Display bitcoin prices using bitcoincharts.com.
  bluetooth              Display bluetooth status.
  clementine             Display the current "artist - title" playing in Clementine.
  dpms                   Activate or deactivate DPMS and screen blanking.
  glpi                   Display the total number of open tickets from GLPI.
  imap                   Display the unread messages count from your IMAP account.
  keyboard_layout        Display the current keyboard layout.
  mpd_status             Display information from mpd.
  net_rate               Display the current network transfer rate.
  netdata                Display network speed and bandwidth usage.
  ns_checker             Display DNS resolution success on a configured domain.
  online_status          Display if a connection to the internet is established.
  pingdom                Display the latest response time of the configured Pingdom checks.
  player_control         Control music/video players.
  pomodoro               Display and control a Pomodoro countdown.
  scratchpad_counter     Display the amount of windows in your i3 scratchpad.
  spaceapi               Display if your favorite hackerspace is open or not.
  spotify                Display information about the current song playing on Spotify.
  sysdata                Display system RAM and CPU utilization.
  vnstat                 Display vnstat statistics.
  weather_yahoo          Display Yahoo! Weather forecast as icons.
  whoami                 Display the currently logged in user.
  window_title           Display the current window title.
  xrandr                 Control your screen(s) layout easily.
  • get available modules details and configuration
$ py3status modules details
Available modules:
  battery_level          Display the battery level.
                         
                         Configuration parameters:
                             - color_* : None means - get it from i3status config
                             - format : text with "text" mode. percentage with % replaces {}
                             - hide_when_full : hide any information when battery is fully charged
                             - mode : for primitive-one-char bar, or "text" for text percentage ouput
                         
                         Requires:
                             - the 'acpi' command line
                         
                         @author shadowprince, AdamBSteele
                         @license Eclipse Public License
                         ---
[...]

Modules changelog

  • new bluetooth module by J.M. Dana
  • new online_status module by @obb
  • new player_control module, by Federico Ceratto
  • new spotify module, by Pierre Guilbert
  • new xrandr module to handle your screens layout from your bar
  • dpms module activate/deactivate the screensaver as well
  • imap module various configuration and optimizations
  • pomodoro module can use DBUS notify, play sounds and be paused
  • spaceapi module bugfix for space APIs without ‘lastchange’ field
  • keyboard_layout module incorrect parsing of “setxkbmap -query”
  • battery_level module better python3 compatibility

Other highlights

Full changelog here.

  • catch daylight savings time change
  • ensure modules methods are always iterated alphabetically
  • refactor default config file detection
  • rename and move the empty_class example module to the doc/ folder
  • remove obsolete i3bar_click_events module
  • py3status will soon be available on debian thx to Federico Ceratto !

py3status v2.0

I’m very pleased to announce the release of py3status v2.0 which I’d like to dedicate to the person who’s behind all the nice improvements this release features : @tablet-mode !

His idea on issue #44 was to make py3status modules configurable. After some thoughts and merges of my own plans of development, we ended up with what I believe are the most ambitious features py3status provides so far.

Features

The logic behind this release is that py3status now wraps and extends your i3status.conf which allows all the following crazy features :

For all your i3bar modules i3status and py3status alike thanks to the new on_click parameter which you can use like any other i3status.conf parameter on all modules. It has never been so easy to handle click events !

This is a quick and small example of what it looks like :

# run thunar when I left click on the / disk info module
disk / {
    format = "/ %free"
    on_click 1 = "exec thunar /"
}
  • All py3status contributed modules are now shipped and usable directly without the need to copy them to your local folder. They also get to be configurable directly from your i3status config (see below)

No need to copy and edit the contributed py3status modules you like and wish to use, you can now load and configure them directly from your i3status.conf.

All py3status modules (contributed ones and user loaded ones) are now loaded and ordered using the usual syntax order += in your i3status.conf !

  • All modules have been improved, cleaned up and some of them got some love from contributors.
  • Every click event now triggers a refresh of the clicked module, even for i3status modules. This makes your i3bar more responsive than ever !

Contributors

  • @AdamBSteele
  • @obb
  • @scotte
  • @tablet-mode

Thank you

  • Jakub Jedelsky : py3status is now packaged on Fedora Linux.
  • All of you users : py3status has broken the 100 stars on github, I’m still amazed by this. @Lujeni’s prophecy has come true :)
  • I still have some nice ideas in stock for even more functionalities, stay tuned !

py3status v1.6

Back from holidays, this new version of py3status was due for a long time now as it features a lot of great contributions !

This version is dedicated to the amazing @ShadowPrince who contributed 6 new modules :)

Changelog

  • core : rename the ‘examples’ folder to ‘modules’
  • core : Fix include_paths default wrt issue #38, by Frank Haun
  • new vnstat module, by Vasiliy Horbachenko
  • new net_rate module, alternative module for tracking network rate, by Vasiliy Horbachenko
  • new scratchpad-counter module and window-title module for displaying current windows title, by Vasiliy Horbachenko
  • new keyboard-layout module, by Vasiliy Horbachenko
  • new mpd_status module, by Vasiliy Horbachenko
  • new clementine module displaying the current “artist – title” playing in Clementine, by François LASSERRE
  • module clementine.py: Make python3 compatible, by Frank Haun
  • add optional CPU temperature to the sysdata module, by Rayeshman

Contributors

Huge thanks to this release’s contributors :

  • @ChoiZ
  • @fhaun
  • @rayeshman
  • @ShadowPrince

What’s next ?

The next 1.7 release of py3status will bring a neat and cool feature which I’m sure you’ll love, stay tuned !

py3status v1.4

I’m glad to announce the release of py3status-1.4 which I’d like to dedicate to @guiniol who provided valuable debugging (a whole Arch VM) to help me solve the problem he was facing (see changelog).

I’m gathering wish lists an have some (I hope) cool ideas for the next v1.5 release, feel free to post your most adventurous dreams !

changelog

  • new ordering mechanism with verbose logging on debug mode. 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
  • Add new module ns_checker.py, by @nawadanp
  • move README to markdown, change ordering
  • update the README with the new options from –help

contributors

Special thanks to this release’s contributors !

  • @nawadanp
  • @guiniol
  • @IotaSpencer
  • @tasse

py3status v1.3

I’m glad to announce the release of py3status v1.3 which brings to life a feature request from @tasse and @ttyE0. Guys, I hope this one will please you !

what’s new ?

Along with a localization bug fix thanks to @zetok from Poland, the main new feature is that py3status now supports a standalone mode which you can use when you only want your own modules displayed in an i3bar !

As usual, this release is already available for my fellow Gentoo Linux users and on pypi !

Changelog is here and quick to get, enjoy !

py3status v1.2

I’m glad to announce a new release of py3status with an exciting main new feature giving the ability to modify any of i3status’ module output from any of your modules !

feature

changelog

  • 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 : your modules get executed and displayed immediately no matter py3status’ interval
  • 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
  • add cpu usage info to sysdata script, by Patrick Shan

contributors

Many thanks to all contributors for their work and inspiration.

  • Patrick Shan, @patrickshan
  • @drestebon
  • André Doser, @tasse

py3status v1.1

I’m glad to announce the v1.1 release of py3status, roughly 6 months after v1.0 which features some nice and often contributed bug fixes and some exciting new features !

fixes / enhancements

  • allow float on refresh interval option
  • fix respect user’s locale for time transformation
  • fix i3status time adjustment when format does not contain the necessary items to get an exact datetime
  • fix delay on py3status start waiting for i3status, this caused a useless first refresh delay of py3status of i3status interval seconds
  • fix first click event opening line detection
  • 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, more info

features

Thanks to py3status, you can now take action on clicks made on your i3status modules !

new modules

  • 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
  • new example module displaying Yahoo Weather forcast
  • new example whoami displaying the currently logged in user, inspired by user request on i3 FAQ

contributors

Thanks a lot for their issues ranging from #15 to #20 with feedback, proposals and pull requests !

  • @alethiophile
  • @Edholm
  • @ifschleife
  • @lathan
  • @patrickshan
  • @ShadowPrince

also…

Feel free to join the #py3status IRC channel on FreeNode to get help or share your ideas !

py3status v1.0

I’m glad to announce the release of py3status v1.0 !

This version features a lot of stuff that I wanted to add to py3status for a long time and which I had in a small todo floating around. After the recent i3wm 4.6 release, I found it the perfect time to implement them while benefiting from the new click event support from i3bar.

The idea of allowing py3status users to have their modules respond to clicks got my head fuzzing and I started slowly to implement my whole todo while adding some great new features thanks to the enhanced i3bar protocol.

I ended up rewriting (again) completely (and slowly) py3status :) But it’s for its own good, and yours hopefully. I strongly encourage you to have a look at the empty_class.py and pomodoro.py examples as they showcase the new on_click system.

You can already benefit from this bump without modifying your modules thanks to the default middle click event which forces a refresh of the module’s method you click on (handy isn’t it?).

changelog

  • 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

Note for Gentoo users : starting with this release, py3status is now available in portage so you don’t need my overlay anymore.

py3status v0.13

Yep, a quick bump of py3status to fix a bug reported by @lathan using python3. The private and special methods detection didn’t work on python3 because the class methods are reported differently from python2.

A special thanks to @bloodred and @drahier too for debugging, testing and proposing some solutions to this problem. First time I see multiple members of what I could humbly call the py3status community working together, it’s very nice of you guys !

py3status v0.12

I’m glad to announce a new release of py3status ! I would like to thank @drahier for reporting an issue he found after suspending his computer. I took the opportunity to add a feature which will be helpful at work since we now have a local package installing some modules we share between colleagues (thx to @lujeni).

changelog

  • bugfix : don’t hang horribly when resuming from a suspend (was caused by an IOError exception which could occur when reading/writing to a suspending system).
  • feature : allow multiple -i include_path options to be passed and handle all the modules thus found.
  • feature : do not try to execute private and special methods on user-written Py3status’ classes.