Overview
go3status is a simple and lightweigt replacement for i3status utility with programmatic click events
Install
Binary instyallation (preffered)
Download latest release on project release page Unpack go3status binary, and base config file
From source
git clone https://github.com/pymhd/go3status.git
cd go3status
make
make install cleango3status binary file will be placed in /usr/local/bin dir
Usage
Replace status_command option in i3 config file with:
status_command /path/to/binary/go3status -config /etc/config.yaml
Click Events
There is 1 common predefined click event for all modules (middle mouse button) It is used to switch between full and short module output. For every module difference between full and short form is custom. Try it.
Modules
cpu
CPU usage percentage
- cpu:
interval: 2s500ms
prefix: "\uf2db "
postfix:
colors:
good: "#66b266"
warn: "#e2c96e"
crit: "#7f0909"
levels:
good: 0-50
warn: 51-75
crit: 75-100
clickEvents:
left: shell cmd
right: shell cmd
wheelUp: shell cmd
wheelDown: shell cmd
extra:Memory
- memory:
interval: 5s
prefix: " "
postfix:
colors:
good: "#66b266"
warn: "#e2c96e"
crit: "#7f0909"
levels:
good: 0-50
warn: 51-75
crit: 75-100
clickEvents:
left: shell cmd
right: shell cmd
wheelUp: shell cmd
wheelDown: shell cmd
extra:
format: '{{printf "%.1f" $used}}/{{printf "%.1f" $total}} ({{printf "%.0f" $percentage}}%)'Memory module accepts extra arg - format. Go templating is supported, available vars:
- $used - used memory
- $total - total memory available
- $percentage - percentage of used memory
Disk
- hdd:
interval: 10s
prefix: "\uf120 "
postfix:
colors:
good: "#66b266"
warn: "#e2c96e"
crit: "#7f0909"
levels:
good: 0-60
warn: 61-80
crit: 81-100
clickEvents:
left: thunar
right:
wheelUp:
wheelDown:
extra:
mountPoint: /
# $avail, $path, $percentage also available as float64
#format: '{{printf "%.1f" $used}}/{{printf "%.1f" $total}} ({{printf "%.0f" $percentage}}%)'
format: '{{printf "%.1f" $avail}}'HDD module acceps required extra arg - mountPoint and optional arg - format Go templating is supported for format arg, available vars:
- $avail - Gb available on mountpoint
- $path - mountPoint
- $percentage - percent of used space
- $total - total Gb available
- $used - Gb used on mountpoint
Time
- time:
interval: 1s
prefix: "\uf274 "
extra:
format: 02/01 15:04
clickEvents:
left: 'xdg-open "https://calendar.google.com"'
right: 'xdg-open "https://calendar.google.com"'Memory module accepts extra arg - format. Specify format using "time" Go package layout
Docker
- docker:
interval: 5s
prefix: " "
postfix:
extra:
# docker version |grep API|tail -n1 |awk '{print $3}'
clientAPIVersion: "1.39"
color: "#1bbbd2"Docker module acceps required extra arg - clientAPIVersion and optional - color. To get API version value run:
docker version |grep API|tail -n1 |awk '{print $3}'
Weather
- weather:
interval: 15m
extra:
location: autoWeather module accepts optional arg - location. If it is missing, "auto" value will be used. Your location will be determined via ipinfo.io service based on your ip address. Or you can specify your city explicit (Moscow, London...)
Title
This module will get focused window name via i3ipc socket
- title:
interval: 1s
prefix: "( "
postfix: " )"
extra:
maxChars: 64Title module accepts optional arg - maxChars. With it only this number of first chars of window name will be showed
Exec
With exec module you can exec shell command/script and expose it's ouptut. Bash interpreter is used
- exec:
interval: 30m
prefix: "\uf153 "
postfix:
extra:
cmd: "cat /proc/loadavg | awk '{print $1}'"
color: "#bf3e3e"
timeout: 2s
cache: true
update: 1h
Exec module accepts several extra args:
- cmd - command to exec (required)
- color - color of text output
- timeout - command timeout
- cache - true/false - if enabled - command will be executed in background periodically and its value will be stored in cache.
- updade - interval how often to update cache
Batt
This module show battery information
- batt:
interval: 1s
prefix: #"\uf5df "
postfix:
short: true
colors:
good: "#66b266"
warn: "#e2c96e"
crit: "#cc2222"
levels:
good: 50-100
warn: 20-50
crit: 0-20
Network
This module finds out an active network interface, determinate his type and show information about it. Colors and level used only for wireless link quality level information.
- network:
interval: 1s
short: true
colors:
good: "#66b266"
warn: "#e2c96e"
crit: "#cc2222"
levels:
good: 61-100
warn: 21-60
crit: 0-20
VPN
This module collects information about all tun and vpn NICs colors and levels: good = as minimum one VPN NIC is present and active connected crit = no VPNs were connected
- vpn:
interval: 1s
short: true
colors:
good: "#66b266"
crit: "#cc2222"
levels:
good: 51-100
crit: 0-51