.. Always edit README.tpl.md and create README.md by running python -m i3pystatus.mkdocs You can also let the maintainer do the latter :) i3pystatus ========== i3pystatus is a (hopefully growing) collection of python scripts for status output compatible to i3status / i3bar of the i3 window manager. Installation ------------ Note: i3pystatus requires Python 3.2 or newer and is not compatible with Python 2.x. From PyPI package `i3pystatus `_ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ :: pip install i3pystatus Packages for your OS ++++++++++++++++++++ * `Arch Linux `_ Release Notes ------------- 3.28 (not released yet) +++++++++++++++++++++++ * **If you're currently using the ``i3pystatus`` command to run your i3bar**: Replace ``i3pystatus`` command in your i3 configuration with ``python ~/path/to/your/config.py`` * New options for `mem`_ (thanks Arvedui) * Added `cpu\_usage`_ * Improved error handling * Removed ``i3pystatus`` binary * pulseaudio: changed context name to "i3pystatus_pulseaudio" * Code changes * Do not name your script i3pystatus.py or it will break imports. 3.27 ++++ * Add weather module * Add text module * PulseAudio module: Add muted/unmuted options 3.26 ++++ * Add mem module 3.24 ++++ **This release introduced changes that may require manual changes to your configuration file** * Introduced TimeWrapper * battery module: removed remaining\_* formatters in favor of TimeWrapper, as it can not only reproduce all the variants removed, but can do much more. * mpd: Uses TimeWrapper for song_length, song_elapsed Configuration ------------- The config file is just a normal Python script. A simple configuration file could look like this (note the additional dependencies from network, wireless and pulseaudio in this example): :: # -*- coding: utf-8 -*- import subprocess from i3pystatus import Status status = Status(standalone=True) # Displays clock like this: # Tue 30 Jul 11:59:46 PM KW31 # ^-- calendar week status.register("clock", format="%a %-d %b %X KW%V",) # Shows the average load of the last minute and the last 5 minutes # (the default value for format is used) status.register("load") # Shows your CPU temperature, if you have a Intel CPU status.register("temp", format="{temp:.0f}°C",) # The battery monitor has many formatting options, see README for details # This would look like this, when discharging (or charging) # ↓14.22W 56.15% [77.81%] 2h:41m # And like this if full: # =14.22W 100.0% [91.21%] # # This would also display a desktop notification (via dbus) if the percentage # goes below 5 percent while discharging. The block will also color RED. status.register("battery", format="{status}/{consumption:.2f}W {percentage:.2f}% [{percentage_design:.2f}%] {remaining:%E%hh:%Mm}", alert=True, alert_percentage=5, status={ "DIS": "↓", "CHR": "↑", "FULL": "=", },) # This would look like this: # Discharging 6h:51m status.register("battery", format="{status} {remaining:%E%hh:%Mm}", alert=True, alert_percentage=5, status={ "DIS": "Discharging", "CHR": "Charging", "FULL": "Bat full", },) # Displays whether a DHCP client is running status.register("runwatch", name="DHCP", path="/var/run/dhclient*.pid",) # Shows the address and up/down state of eth0. If it is up the address is shown in # green (the default value of color_up) and the CIDR-address is shown # (i.e. 10.10.10.42/24). # If it's down just the interface name (eth0) will be displayed in red # (defaults of format_down and color_down) # # Note: the network module requires PyPI package netifaces-py3 status.register("network", interface="eth0", format_up="{v4cidr}",) # Has all the options of the normal network and adds some wireless specific things # like quality and network names. # # Note: requires both netifaces-py3 and basiciw status.register("wireless", interface="wlan0", format_up="{essid} {quality:03.0f}%",) # Shows disk usage of / # Format: # 42/128G [86G] status.register("disk", path="/", format="{used}/{total}G [{avail}G]",) # Shows pulseaudio default sink volume # # Note: requires libpulseaudio from PyPI status.register("pulseaudio", format="♪{volume}",) # Shows mpd status # Format: # Cloud connected▶Reroute to Remain status.register("mpd", format="{title}{status}{album}", status={ "pause": "▷", "play": "▶", "stop": "◾", },) status.run() Also change your i3wm config to the following: :: # i3bar bar { status_command python ~/.path/to/your/config/file.py position top workspace_buttons yes } Formatting ++++++++++ All modules let you specifiy the exact output formatting using a `format string `_. **Patches and pull requests are very welcome :-)**