Arch Linux

Stable updates, official releases:

$ pacman -S py3status

Real-time updates from master branch:

$ yay -S py3status-git

Debian & Ubuntu

Stable updates. In testing and unstable, and soon in stable backports:

$ apt-get install py3status

Buster users might want to check out issue #1916 and use pip3 instead or the alternative method proposed until this debian bug is handled and stable.


If you want to use pip, you should consider using pypi-install from the python-stdeb package (which will create a .deb out from a python package) instead of directly calling pip.

$ pip3 install py3status


$ dnf install py3status

Gentoo Linux

Check available USE flags if you need them!

$ emerge -a py3status

Alpine Linux

In community repository since Alpine Linux 3.17.

$ apk add py3status


$ pip install py3status

There are optional requirements that you could find useful:

  • py3status[gevent] for gevent support.
  • py3status[udev] for udev support.

Or if you want everything:

  • py3status[all] to install all core extra requirements and features.

Void Linux

$ xbps-install -S py3status


To have py3status globally persistent add to your NixOS configuration file py3status as a Python 3 package with:

(python3Packages.py3status.overrideAttrs (oldAttrs: {
  propagatedBuildInputs = with python3Packages;[ pytz tzlocal ] ++ oldAttrs.propagatedBuildInputs;

If you are, and you probably are, using i3 you might want a section in your /etc/nixos/configuration.nix that looks like this:

  services.xserver.windowManager.i3 = {
    enable = true;
    extraPackages = with pkgs; [
      (python3Packages.py3status.overrideAttrs (oldAttrs: {
        propagatedBuildInputs = with python3Packages; [ pytz tzlocal ] ++ oldAttrs.propagatedBuildInputs;

In this example I included the python packages pytz and tzlocal which are necessary for the py3status module clock. The default packages that come with i3 (dmenu, i3status, i3lock) have to be mentioned if they should still be there.

$ nix-env -i python3.6-py3status