My i3status.conf Configuration
As you probably know, I use the i3 Window Manager — for reasons that
are obvious to anyone who values speed, minimalism, and total control over their workflow.
If you haven’t read my dedicated post about why I use i3, you can check it out here:
Why I Use the i3 Window Manager.
This article builds on that by showing my exact i3status.conf
configuration,
which keeps my status bar clean, informative, and distraction-free.
Over the years I’ve tried a lot of different status bar setups for i3, but I always come back to simple, fast, and functional. This configuration file is what I use daily. It’s tuned for quick visual feedback, clear color coding, and the ability to keep track of multiple time zones without cluttering the screen.
Configuration File
# i3status configuration file.
# see "man i3status" for documentation.
# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!
general {
output_format = "i3bar"
colors = true
color_good = "#00ff00"
color_degraded = "#ffff00"
color_bad = "#ff0000"
interval = 5
}
order += "battery all"
order += "wireless _first_"
order += "ethernet _first_"
order += "cpu_usage"
order += "load"
order += "cpu_temperature 0"
order += "memory"
order += "disk /"
order += "ipv6"
order += "tztime pacific"
order += "tztime central"
order += "tztime eastern"
order += "tztime local"
battery all {
format = "%status %percentage %remaining %emptytime %consumption"
format_down = "No battery"
low_threshold = "10"
threshold_type = "percentage"
}
wireless _first_ {
format_up = "W %signal %essid %ip"
format_down = "W down"
}
ethernet _first_ {
format_up = "E %ip (%speed)"
format_down = "E down"
}
cpu_usage {
format = "CPU %usage"
degraded_threshold = "25"
max_threshold = "75"
}
load {
format = "%1min-%5min-%15min"
max_threshold = "4.0"
}
cpu_temperature 0 {
format = "%degrees°C"
max_threshold = 80
}
memory {
format = "M %used *%available"
threshold_degraded = "80"
threshold_critical = "90"
}
disk "/" {
format = "%avail"
}
tztime pacific {
format = "%Y-%m-%d %H:%M %Z"
timezone = "US/Pacific"
}
tztime central {
format = "%H:%M %Z"
timezone = "US/Central"
}
tztime eastern {
format = "%H:%M %Z"
timezone = "US/Eastern"
}
tztime local {
format = "%Y-%m-%d %H:%M:%S %Z"
}
Why This Setup Works for Me
The general
section defines the look and feel — I’m using hex color codes for
good (green), degraded (yellow), and bad (red) states so issues pop out immediately.
The interval
of 5 seconds keeps the bar up-to-date without constantly hammering the CPU.
Module Order
The order
lines determine what shows up and in what sequence. I like starting with
battery status because on a laptop it’s the most critical. Network info comes next, then CPU
usage, load averages, temperature, memory, and disk.
Finally, I include IPv6 status and four clocks — Pacific, Central, Eastern, and my local time.
This lets me coordinate with friends, clients, and colleagues across time zones without mental math.
Battery
I use a very detailed battery format: charge status, percentage, time remaining, empty time, and consumption. If no battery is detected, it shows “No battery.” A low threshold of 10% means I get plenty of warning before a shutdown.
Networking
For wireless, I display signal strength, ESSID, and IP address; for Ethernet, IP and speed. Both modules have simple “down” messages if disconnected, so I can see at a glance when the link is dead.
System Health
CPU usage shows a percentage with degraded and high usage thresholds.
The load
module uses the familiar 1/5/15-minute averages and warns if load exceeds 4.0.
The temperature module warns above 80°C, which for my machine is the point where I want to start cooling it down.
Memory usage is displayed as used and available, with clear degraded and critical thresholds.
Disk & Time
I track available space on root (/
) because that’s where trouble starts if it fills up.
For time, I keep multiple zones visible — not just for work but for personal calls, travel planning, and event coordination.
Final Thoughts
This config is a balance between useful information and readability. It’s compact enough to fit neatly in my i3bar without feeling cluttered, but rich enough that I almost never have to check a separate terminal for system info.