LinuxCommandLibrary

i3status

Display system information in status bar

TLDR

Print the status line to stdout periodically, using the default configuration

$ i3status
copy

Print the status line to stdout periodically, using a specific configuration
$ i3status -c [path/to/i3status.conf]
copy

Display help and version
$ i3status -h
copy

SYNOPSIS

i3status [-c configfile] [-d] [-h] [-s signal] [-v]

PARAMETERS

-c configfile
    Specifies the configuration file (default: ~/.config/i3status/config or /etc/i3status.conf)

-d
    Disable runtime signals (useful for debugging)

-h, --help
    Display help message and exit

-s signal
    Send a signal (like SIGUSR1) to refresh status

-v, --version
    Output version information and exit

DESCRIPTION

i3status is a minimalist tool designed specifically for the i3 window manager's status bar, i3bar. It generates a continuous stream of system status information in JSON format, which i3bar consumes and displays. Unlike heavier alternatives, i3status prioritizes efficiency, using low CPU and memory while providing essential metrics.

Users configure it via a simple text file specifying modules like network interfaces (wireless, ethernet), battery levels, CPU usage, load averages, disk usage, memory, sound volume, and custom timezones. Modules can be reordered, formatted, and conditionally shown (e.g., only low battery). It supports click events for interactivity, like volume control via mouse clicks passed from i3bar.

i3status runs as a standalone process, outputting JSON objects to stdout every interval (default 1 second). It's signal-aware for dynamic updates, such as on battery changes or network events. Ideal for minimalists, it avoids dependencies and graphical libraries, making it fast and reliable on Linux systems. Commonly invoked in i3 config: bar { status_command i3status }.

CAVEATS

Outputs only to stdout in JSON; must be piped to i3bar. Config syntax errors cause silent failure. No built-in GUI config editor; modules require precise naming (e.g., 'BAT0'). High-frequency updates may increase CPU on slow systems.

COMMON CONFIG EXAMPLE

order += "cpu_usage" order += "load" order += "wireless _first_" order += "ethernet _first_" order += "battery 0" order += "tztime local"

INVOCATION IN I3

In ~/.config/i3/config:
bar {
  status_command i3status
}

HISTORY

Developed by Michael Stapelberg starting in 2010 as part of the i3 project. Evolved from simple scripts to a full-featured status generator. Current stable releases (v2.14+) support more modules and JSON improvements. Maintained on GitHub with community contributions.

SEE ALSO

i3(1), i3bar(1), i3blocks(1)

Copied to clipboard