py3status is an extensible i3status wrapper written in python.
Using py3status, you can take control of your i3bar easily by:
- using one of the available modules shipped with py3status
- grouping multiple modules and automatically or manually cycle their display
- writing your own modules and have their output displayed on your bar
- handling click events on your i3bar and play with them in no time
- seeing your clock tick every second whatever your i3status interval
No extra configuration file needed, just install & enjoy !
You will love py3status if you're using i3wm and are frustrated by the i3status limitations on your i3bar such as:
- you cannot hack into it easily
- you want more than the built-in modules and their limited configuration
- you cannot pipe the result of one of more scripts or commands in your bar easily
- no added configuration file, use the standard i3status.conf
- rely on i3status' strengths and its existing configuration as much as possible
- be extensible, it must be easy for users to add their own stuff/output by writing a simple python class which will be loaded and executed dynamically
- easily allow interactivity with the i3bar
- add some built-in enhancement/transformation of basic i3status modules output
Up-to-date documentation:
Get help or share your ideas on IRC:
- channel #py3status on FreeNode
In your i3 config file, simply switch from i3status to py3status in your status_command: :
status_command py3status
Usually you have your own i3status configuration, just point to it: :
status_command py3status -c ~/.i3/i3status.conf
You can get a list with short descriptions of all available modules by using the CLI: :
$ py3status modules list
To get more details about all available modules and their configuration, use: :
$ py3status modules details
All modules shipped with py3status are present as the Python source files in the py3status/modules directory.
Most of them are configurable directly from your current i3status.conf, check them out to see all the configurable variables.
Using pip: :
$ pip install py3status
Note: Debian users should use pypi-install from the python-stdeb package instead of pip.
Using emerge: :
$ sudo emerge -a py3status
Thanks to @Horgix, py3status is present in the Arch User Repository:
- py3status, which is a stable version updated at each release
- py3status-git, which builds directly against the upstream master branch
Thanks to @waaaaargh and @carstene1ns for initially creating the packages.
Using dnf: :
$ dnf install py3status
You can see the help of py3status by issuing `py3status -h`: :
-h, --help show this help message and exit
-b, --dbus-notify use notify-send to send user notifications rather than
i3-nagbar, requires a notification daemon eg dunst
-c I3STATUS_CONF, --config I3STATUS_CONF
path to i3status config file
-d, --debug be verbose in syslog
-i INCLUDE_PATHS, --include INCLUDE_PATHS
include user-written modules from those directories
(default ~/.i3/py3status)
-l LOG_FILE, --log-file LOG_FILE
path to py3status log file
-n INTERVAL, --interval INTERVAL
update interval in seconds (default 1 sec)
-s, --standalone standalone mode, do not use i3status
-t CACHE_TIMEOUT, --timeout CACHE_TIMEOUT
default injection cache timeout in seconds (default 60
sec)
-v, --version show py3status version and exit
Just like i3status, you can force an update of your i3bar by sending a SIGUSR1 signal to py3status. Note that this will also send a SIGUSR1 signal to i3status. :
killall -USR1 py3status