This project provides scripts for i3blocks to copycat the status line generated by i3status.
Caution
|
Any block or option not available in i3status is out of scope. |
The default configuration file is a direct translation of the default i3status configuration file. With i3blocks set up, you can fetch these scripts and run them with:
git clone https://github.com/vivien/i3blocks-status.git ~/.config/i3blocks
make -C !$ ipv6
i3blocks # or from another location with -c i3block-status/config
General options are described below.
Gets the status (charging, discharging, unknown, full), percentage and remaining time of the given battery and when it’s estimated to be empty.
If you want to use the last full capacity instead of the design capacity (when using the design capacity, it may happen that your battery is at 23% when fully charged because it’s old. In general, I want to see it this way, because it tells me how worn off my battery is.), just specify last_full_capacity=true.
You can hide seconds in the remaining time and empty time estimations by setting hide_seconds=true.
If you want the battery percentage to be shown without decimals, add integer_battery_capacity=true.
If your battery is represented in a non-standard path in /sys, be sure to modify the "path" property accordingly, i.e. pointing to the uevent file on your system. The first occurrence of %d gets replaced with the battery number, but you can just hard-code a path as well.
It is possible to define a low_threshold that causes the battery text to be colored red. The low_threshold type can be of threshold_type "time" or "percentage". So, if you configure low_threshold to 10 and threshold_type to "time", and your battery lasts another 9 minutes, it will be colored red.
To show an aggregate of all batteries in the system, use "all" as the number. In this case, the /sys path must contain the "%d" sequence. Otherwise, the number indicates the battery index as reported in /sys.
Optionally custom strings including any UTF-8 symbols can be used for different battery states. This makes it possible to display individual symbols for each state (charging, discharging, unknown, full). Of course it will also work with special iconic fonts, such as FontAwesome. If any of these special status strings are omitted, the default (CHR, BAT, UNK, FULL) is used.
instance |
The battery number |
format |
The format string (defaults to %status %percentage %remaining) |
format_down |
The format string when battery is not present (defaults to No battery) |
status_chr |
The string for the charging state (defaults to CHR) |
status_bat |
The string for the battery state (defaults to BAT) |
status_unk |
The string for the unknown state (defaults to UNK) |
status_full |
The string for the full state (defaults to FULL) |
path |
The path to the uevent file (defaults to /sys/class/power_supply/BAT%d/uevent) |
threshold_type |
The threshold type (defaults to time) |
low_threshold |
The low threshold level (defaults to 30) |
hide_seconds |
To hide remaining seconds (defaults to true) |
[battery]
instance=0
# Default values
#format=%status %percentage %remaining
#format_down=No battery
#status_chr=CHR
#status_bat=BAT
#status_unk=UNK
#status_full=FULL
#path=/sys/class/power_supply/BAT%d/uevent
#low_threshold=30
#threshold_type=time
#last_full_capacity=false
#integer_battery_capacity=false
#hide_seconds=true
Gets the temperature of the given thermal zone. It is possible to define a max_threshold that will color the temperature red in case the specified thermal zone is getting too hot. Defaults to 75 degrees C. The output format when above max_threshold can be customized with format_above_threshold.
instance |
The thermal zone number |
format |
The format string (defaults to %degrees C) |
format_above_threshold |
The format string when threshold is reached (defaults to format) |
path |
The path to the thermal zone file (defaults to /sys/class/thermal/thermal_zone%d/temp) |
max_threshold |
The high threshold level (defaults to 75) |
[cpu_temperature]
instance=0
# Default values
#format=%degrees C
# format_above_threshold is not set and fallback to format
# path is not set and fallback to /sys/class/thermal/thermal_zone%d/temp
#max_threshold=75
Gets the percentual CPU usage from /proc/stat.
It is possible to define a max_threshold that will color the load value red in case the CPU average over the last interval is getting higher than the configured threshold. Defaults to 95. The output format when above max_threshold can be customized with format_above_threshold.
It is possible to define a degraded_threshold that will color the load value yellow in case the CPU average over the last interval is getting higher than the configured threshold. Defaults to 90. The output format when above degraded threshold can be customized with format_above_degraded_threshold.
full_format |
The format string (defaults to %usage) |
format_above_threshold |
The format string when max threshold is reached (defaults to format) |
format_above_degraded_threshold |
The format string when degraded threshold is reached (defaults to format) |
path |
The path to the stat file (defaults to /proc/stat) |
max_threshold |
The max threshold level (defaults to 95) |
degraded_threshold |
The degraded threshold level (defaults to 90) |
[cpu_usage]
format=json
# Default values
#full_format=%usage
# format_above_threshold is not set and fallback to full_format
# format_above_degraded_threshold is not set and fallback to full_format
#path=/proc/stat
#max_threshold=95
#degraded_threshold=90
Outputs the current discordian date in user-specified format. See ddate(1) for details on the format string.
format |
The ddate format string (defaults to %{%a, %b %d%}, %Y%N - %H) |
[ddate]
# Default values
#format=%{%a, %b %d%}, %Y%N - %H
Gets used, free, available and total amount of bytes on the given mounted filesystem.
These values can also be expressed in percentages with the percentage_used, percentage_free, percentage_avail and percentage_used_of_avail formats.
It is possible to define a low_threshold that causes the disk text to be displayed using color_bad. The low_threshold type can be of threshold_type "bytes_free", "bytes_avail", "percentage_free", or "percentage_avail", where the former two can be prepended by a generic prefix (k, m, g, t) having prefix_type. So, if you configure low_threshold to 2, threshold_type to "gbytes_avail", and prefix_type to "binary", and the remaining available disk space is below 2 GiB, it will be colored bad. If not specified, threshold_type is assumed to be "percentage_avail" and low_threshold to be set to 0, which implies no coloring at all. You can customize the output format when below low_threshold with format_below_threshold.
instance |
Moint point |
format |
The format string (defaults to %free) |
format_below_threshold |
The format string when threshold is reached (defaults to format) |
format_not_mounted |
Format string when the path does not exist or when it is not a mount point (defaults to "") |
prefix_type |
Byte sizes are presented in a human readable format using a set of prefixes (defaults to binary) |
threshold_type |
The threshold type (defaults to percentage_avail) |
low_threshold |
The low threshold level (defaults to 0) |
[disk]
instance=/
# Default values
#format=%free
# format_below_threshold is not set and fallback to format
# format_not_mounted is not set and fallback to ""
#prefix_type=binary
#threshold_type=percentage_avail
#low_threshold=0
Gets the IP address and (if possible) the link speed of the given ethernet interface. The special interface name _first_ will be replaced by the first non-wireless network interface found on the system (excluding devices starting with "lo").
instance |
Network interface (defaults to _first_) |
format_up |
Format string when the interface is up. |
format_down |
Format string when the interface is down. |
[ethernet]
instance=_first_
# Default values
#format_up=E: %ip (%speed)
#format_down=E: down
This module gets the IPv6 address used for outgoing connections (that is, the best available public IPv6 address on your computer).
format_up |
Format string when an IPv6 is set (defaults to %ip) |
format_down |
Format string when no IPv6 is set (defaults to No IPv6.) |
[ipv6]
# Default values
#format_up=%ip
#format_down=No IPv6
Gets the system load (number of processes waiting for CPU time in the last 1, 5 and 15 minutes).
It is possible to define a max_threshold that will color the load value red in case the load average of the last minute is getting higher than the configured threshold. Defaults to 5. The output format when above max_threshold can be customized with format_above_threshold.
format |
The format string (defaults to %1min %5min %15min) |
format_above_threshold |
The format string when threshold is reached (defaults to format) |
max_threshold |
The high threshold level (defaults to 5) |
[load]
# Default values
#format=%1min %5min %15min
# format_above_threshold is not set and fallback to format
#max_threshold=5
Checks if the given path exists in the filesystem. You can use this to check if something is active, like for example a VPN tunnel managed by NetworkManager. There also is an option "format_down". You can hide the output with format_down="".
instance |
The title. |
path |
The path to the file (must be set). |
format |
The format string (defaults to %title: %status) |
format_down |
The format string when the file does not exist at path (defaults to format). |
[path_exists]
instance=VPN
# path exists when a VPN tunnel launched by nmcli/nm-applet is active
path=/proc/sys/net/ipv4/conf/tun0
# Default values
# path is not set and must be set
#format=%title: %status
# format_down is not set and fallback to format if path does not exist
Expands the given path to a pidfile and checks if the process ID found inside is valid (that is, if the process is running). You can use this to check if a specific application, such as a VPN client or your DHCP client is running. There also is an option "format_down". You can hide the output with format_down="".
instance |
The title. |
pidfile |
The path to the pid file (must be set). |
format |
The format string (defaults to %title: %status) |
format_down |
The format string when the pid does not exist in pidfile (defaults to format). |
[run_watch]
instance=DHCP
pidfile=/var/run/dhclient*.pid
# Default values
# pidfile is not set and must be set
#format=%title: %status
# format_down is not set and fallback to format if pid does not exist
Outputs the current time.
format |
The strftime format string (defaults to %Y-%m-%d %H:%M:%S) |
[time]
# Default values
#format=%Y-%m-%d %H:%M:%S
Outputs the current time in the given timezone. If no timezone is given, local time will be used. The system’s timezone database is usually installed in /usr/share/zoneinfo. Files below that path make for valid timezone strings, e.g. for /usr/share/zoneinfo/Europe/Berlin you can set timezone to Europe/Berlin in the tztime module. To override the locale settings of your environment, set the locale option.
format |
The strftime format string if format_time is unset or format string (defaults to %Y-%m-%d %H:%M:%S %Z) |
timezone |
The timezone (defaults to "") |
locale |
The locale (defaults to "") |
format_time |
The strftime format string (defaults to unset). |
[tztime]
instance=local
format=%Y-%m-%d %H:%M:%S
# Default values
#format=%Y-%m-%d %H:%M:%S %Z
# timezone is not set
# locale is not set
# format_time is not set
Outputs the volume of the specified mixer on the specified device. Only ALSA is supported.
format |
Format string (defaults to ♪: %volume). Placeholder is %volume. |
format_muted |
Format string when the mixer is muted (defaults to ♪: 0%%). |
device |
The device (defaults to default) |
mixer |
The mixer (defaults to Master) |
mixer_idx |
The mixer id (defaults to 0) |
[volume]
# Default values
#format=♪: %volume
#format_muted=♪: 0%%
#device=default
#mixer=Master
#mixer_idx=0
Get the link quality, frequency, and ESSID of the given wireless network interface.
instance |
Network interface (defaults to _first_) |
format_up |
Format string when the interface is up. |
format_down |
Format string when the interface is down. |
format_quality |
Format string for quality (defaults to %3d%s). |
[wireless]
instance=_first_
# Default values
#format_up=W: (%quality at %essid, %bitrate / %frequency) %ip
#format_down=W: down
#format_quality=%3d%s