Modules¶
py3status comes with a large selection of modules ready to use. For information on configurating see Using modules
air_quality¶
Display air quality polluting in a given location.
An air quality index (AQI) is a number used by government agencies to communicate to the public how polluted the air currently is or how polluted it is forecast to become. As the AQI increases, an increasingly large percentage of the population is likely to experience increasingly severe adverse health effects. Different countries have their own air quality indices, corresponding to different national air quality standards.
- Configuration parameters:
auth_tokenRequired. Personal token. http://aqicn.org (default ‘demo’)cache_timeoutrefresh interval for this module. A message from the site: The default quota is max 1000 (one thousand) requests per minute (~16RPS) and with burst up to 60 requests. Read more: http://aqicn.org/api/ (default 3600)formatdisplay format for this module (default ‘{location}: {aqi} {category}’)locationlocation or uid to query. To search for nearby stations in Kraków, usecurl http://api.waqi.info/search/?token=YOUR_TOKEN&keyword=krakówWe recommend you to use uid instead of name in location, eg “@8691” (default ‘Shanghai’)
- Format placeholders:
{aqi}air quality index{category}health risk category{location}location or uid
Note: Stations may use {pm25}, {pm10}, {o3}, {so2}, or other parameters. See http://api.waqi.info/feed/@UID/?token=TOKEN (Replace UID and TOKEN)
- Category options:
category_<name>display name eg category_very_unhealthy = ‘Level 5: Wear a mask’
- Color options:
color_<category>display color eg color_hazardous = ‘#7E0023’
Example:
air_quality {
auth_token = 'demo'
location = 'Shanghai'
format = 'Shanghai: {aqi} {category}'
}
**author** beetleman, lasers
**license** BSD
apt_updates¶
Display number of pending updates for Debian based Distros.
Thanks to Iain Tatch <iain.tatch@gmail.com> for the script that this is based on.
This will display a count of how many ‘apt’ updates are waiting to be installed.
- Configuration parameters:
cache_timeoutHow often we refresh this module in seconds (default 600)formatDisplay format to use (default ‘UPD[?not_zero : {apt}]’)
- Format placeholders:
{apt}Number of pending apt updates
- Requires:
aptNeeded to display pending ‘apt’ updates
author Joshua Pratt <jp10010101010000@gmail.com>
license BSD
arch_updates¶
Display number of pending updates for Arch Linux.
This will display a count of how many ‘pacman’ updates are waiting to be installed and optionally a count of how many ‘aur’ updates are also waiting.
- Configuration parameters:
cache_timeoutHow often we refresh this module in seconds (default 600)formatDisplay format to use (default ‘UPD: {pacman}’ or ‘UPD: {pacman}/{aur}’)hide_if_zeroDon’t show on bar if True (default False)include_aurSet to True to use ‘cower’ to check for AUR updates (default False)
- Format placeholders:
{aur}Number of pending aur updates{pacman}Number of pending pacman updates{total}Total updates pending
- Requires:
cowerNeeded to display pending ‘aur’ updates
author Iain Tatch <iain.tatch@gmail.com>
license BSD
aws_bill¶
Display bill for Amazon Web Services.
WARNING: This module generate some costs on the AWS bill. Take care about the cache_timeout to limit these fees!
- Configuration parameters:
aws_access_key_idYour AWS access key (default ‘’)aws_account_idThe root ID of the AWS account Can be found here`` https://console.aws.amazon.com/billing/home#/account (default ‘’)aws_secret_access_keyYour AWS secret key (default ‘’)billing_fileCsv file location (default ‘/tmp/.aws_billing.csv’)cache_timeoutHow often we refresh this module in seconds (default 3600)formatstring that formats the output. See placeholders below. (default ‘{bill_amount}$’)s3_bucket_nameThe bucket where billing files are sent by AWS. Follow this article to activate this feature: http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/detailed-billing-reports.html (default ‘’)
- Format placeholders:
{bill_amount}AWS bill amount
- Color options:
color_goodBalance availablecolor_badAn error has occured
- Requires:
boto
author nawadanp
backlight¶
Adjust screen backlight brightness.
- Configuration parameters:
brightness_deltaChange the brightness by this step. (default 8)brightness_initialSet brightness to this value on start. (default None)brightness_minimalDon’t go below this brightness to avoid black screen (default 1)button_downButton to click to decrease brightness. Setting to 0 disables. (default 5)button_upButton to click to increase brightness. Setting to 0 disables. (default 4)cache_timeoutHow often we refresh this module in seconds (default 10)deviceDevice name or full path to use, eg, acpi_video0 or /sys/class/backlight/acpi_video0, otherwise automatic (default None)formatDisplay brightness, see placeholders below (default ‘☼: {level}%’)
- Format status string parameters:
{level}brightness
- Requires:
xbacklightneed for changing brightness, not detection
author Tjaart van der Walt (github:tjaartvdwalt)
license BSD
battery_level¶
Display battery information.
- Configuration parameters:
battery_idid of the battery to be displayed set to ‘all’ for combined display of all batteries (default 0)blocksa string, where each character represents battery level especially useful when using icon fonts (e.g. FontAwesome) (default “_▁▂▃▄▅▆▇█”)cache_timeouta timeout to refresh the battery state (default 30)charging_charactera character to represent charging battery especially useful when using icon fonts (e.g. FontAwesome) (default “⚡”)formatstring that formats the output. See placeholders below. (default “{icon}”)format_notify_chargingformat of the notification received when you click on the module while your computer is plugged in (default ‘Charging ({percent}%)’)format_notify_dischargingformat of the notification received when you click on the module while your computer is not plugged in (default “{time_remaining}”)hide_secondshide seconds in remaining time (default False)hide_when_fullhide any information when battery is fully charged (when the battery level is greater than or equal to ‘threshold_full’) (default False)measurement_modeeither ‘acpi’ or ‘sys’, or None to autodetect. ‘sys’ should be more robust and does not have any extra requirements, however the time measurement may not work in some cases (default None)notificationshow current battery state as notification on click (default False)notify_low_leveldisplay notification when battery is running low (when the battery level is less than ‘threshold_degraded’) (default False)sys_battery_pathset the path to your battery(ies), without including its number (default “/sys/class/power_supply/”)threshold_bada percentage below which the battery level should be considered bad (default 10)threshold_degradeda percentage below which the battery level should be considered degraded (default 30)threshold_fulla percentage at or above which the battery level should should be considered full (default 100)
- Format placeholders:
{ascii_bar}- a string of ascii characters representing the battery level, an alternative visualization to ‘{icon}’ option{icon}- a character representing the battery level, as defined by the ‘blocks’ and ‘charging_character’ parameters{percent}- the remaining battery percentage (previously ‘{}’){time_remaining}- the remaining time until the battery is empty
- Color options:
color_badBattery level is below threshold_badcolor_chargingBattery is charging (default “#FCE94F”)color_degradedBattery level is below threshold_degradedcolor_goodBattery level is above thresholds
- Requires:
- the
acpithe acpi command line utility (only ifmeasurement_mode='acpi')
- the
author shadowprince, AdamBSteele, maximbaz, 4iar, m45t3r
license Eclipse Public License
bitcoin_price¶
Display bitcoin using bitcoincharts.com.
- Configuration parameters:
cache_timeoutrefresh interval for this module. A message from the site: Don’t query more often than once every 15 minutes (default 900)color_indexIndex of the market responsible for coloration, -1 means no coloration, except when only one market is selected (default -1)fieldField that is displayed per market, see http://bitcoincharts.com/about/markets-api/ (default ‘close’)formatdisplay format for this module (default ‘{format_bitcoin}’)format_bitcoindisplay format for bitcoin (default ‘{market}: {price}{symbol}’)format_separatorshow separator only if more than one (default ‘, ‘)hide_on_errorshow error message (default False)marketslist of supported markets http://bitcoincharts.com/markets/list/ (default ‘btceUSD, btcdeEUR’)symbolsif possible, convert currency abbreviations to symbols e.g. USD -> $, EUR -> € and so on (default True)
- Format placeholders:
{format_bitcoin}format for bitcoin
- format_bitcoin placeholders:
{market}market names{price}current prices{symbol}currency symbols
- Color options:
color_badPrice has dropped or not availablecolor_goodPrice has increased
author Andre Doser <doser.andre AT gmail.com>
bluetooth¶
Display bluetooth status.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 10)formatdisplay format for this module (default ‘BT[: {format_device}]’)format_devicedisplay format for bluetooth devices (default ‘{name}’)format_separatorshow separator only if more than one (default ‘|’)
- Format placeholders:
{format_device}format for bluetooth devices
- format_device placeholders:
{mac}bluetooth device address{name}bluetooth device name
- Color options:
color_badNo connectioncolor_goodActive connection
author jmdana <https://github.com/jmdana>
license GPLv3 <http://www.gnu.org/licenses/gpl-3.0.txt>
check_tcp¶
Display status of a TCP port on a given host.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 10)formatdisplay format for this module (default ‘{host}:{port} {state}’)hostname of host to check for (default ‘localhost’)icon_offshow this when unavailable (default ‘DOWN’)icon_onshow this when available (default ‘UP’)portnumber of port to check for (default 22)
- Format placeholders:
{state}port state
- Color options:
color_downClosed, default to color_badcolor_upOpen, default to color_good
author obb, Moritz Lüdecke
clementine¶
Display song currently playing in Clementine.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 5)formatdisplay format for this module (default ‘♫ {current}’)
- Format placeholders:
{current}currently playing
- Requires:
clementinea modern music player and library organizerqdbusa communication-interface for qt-based applications (may be part of qt5-tools)
author Francois LASSERRE <choiz@me.com>
license GNU GPL http://www.gnu.org/licenses/gpl.html
clock¶
Display date and time.
This module allows one or more datetimes to be displayed.
All datetimes share the same format_time but can set their own timezones.
Timezones are defined in the format using the TZ name in squiggly brackets eg
{GMT}, {Portugal}, {Europe/Paris}, {America/Argentina/Buenos_Aires}.
ISO-3166 two letter country codes eg {de} can also be used but if more than
one timezone exists for the country eg {us} the first one will be selected.
{Local} can be used for the local settings of your computer.
Note: Timezones are case sensitive
A full list of timezones can be found at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
- Configuration parameters:
block_hourslength of time period for all blocks in hours (default 12)blocksa string, where each character represents time period from the start of a time period. (default ‘🕛🕧🕐🕜🕑🕝🕒🕞🕓🕟🕔🕠🕕🕡🕖🕢🕗🕣🕘🕤🕙🕥🕚🕦’)button_change_formatbutton that switches format used setting to None disables (default 1)button_change_time_formatbutton that switches format_time used. Setting to None disables (default 2)button_resetbutton that switches display to the first timezone. Setting to None disables (default 3)cycleIf more than one display then how many seconds between changing the display (default 0)formatdefines the timezones displayed. This can be a single string or a list. If a list is supplied then the formats can be cycled through usingcycleor by button click. (default ‘{Local}’)format_timeformat to use for the time, strftime directives such as%Hcan be used this can be either a string or to allow multiple formats as a list. The one used can be changed by button click. (default [‘[{name_unclear} ]%c’, ‘[{name_unclear} ]%x %X’, ‘[{name_unclear} ]%a %H:%M’, ‘[{name_unclear} ]{icon}’])round_to_nearest_blockdefines how a block icon is chosen. Examples: when set to True, ‘13:14’ is ‘🕐’, ‘13:16’ is ‘🕜’ and ‘13:31’ is ‘🕜’; when set to False, ‘13:14’ is ‘🕐’, ‘13:16’ is ‘🕐’ and ‘13:31’ is ‘🕜’. (default True)
- Format placeholders:
{icon}a character representing the time fromblocks{name}friendly timezone name egBuenos Aires{name_unclear}friendly timezone name egBuenos Airesbut is empty if only one timezone is provided{timezone}full timezone name egAmerica/Argentina/Buenos_Aires{timezone_unclear}full timezone name egAmerica/Argentina/Buenos_Airesbut is empty if only one timezone is provided
- Requires:
pytzpython librarytzlocalpython library
i3status.conf example:
# cycling through London, Warsaw, Tokyo
clock {
cycle = 30
format = ["{Europe/London}", "{Europe/Warsaw}", "{Asia/Tokyo}"]
format_time = "{name} %H:%M"
}
# Show the time and date in New York
clock {
format = "Big Apple {America/New_York}"
format_time = "%Y-%m-%d %H:%M:%S"
}
# wall clocks
clock {
format = "{Asia/Calcutta} {Africa/Nairobi} {Asia/Bangkok}"
format_time = "{name} {icon}"
}
author tobes
license BSD
cmus¶
Display currently playing song in cmus.
cmus (C* Music Player) is a small, fast and powerful console audio player which supports most major audio formats. Various features include gapless playback, ReplayGain support, MP3 and Ogg streaming, live filtering, instant startup, customizable key-bindings, and vi-style default key-bindings.
- Configuration parameters:
button_nextmouse button to skip next track (default None)button_pausemouse button to pause/play the playback (default 1)button_previousmouse button to skip previous track (default None)button_stopmouse button to stop the playback (default 3)cache_timeoutrefresh interval for this module (default 5)formatdisplay format for this module (default ‘[?if=is_started [?if=is_playing > ][?if=is_paused || ] [?if=is_stopped .. ][[{artist}][?soft - ][{title}] |?show cmus: waiting for user input]]’)sleep_timeoutsleep interval for this module. when cmus is not running, this interval will be used. this allows some flexible timing where one might want to refresh constantly with some placeholders… or to refresh only once every minute rather than every few seconds. (default 20)
- Control placeholders:
{is_paused}a boolean based on cmus status{is_playing}a boolean based on cmus status{is_started}a boolean based on cmus status{is_stopped}a boolean based on cmus status{continue}a boolean based on data status{play_library}a boolean based on data status{play_sorted}a boolean based on data status{repeat}a boolean based on data status{repeat_current}a boolean based on data status{replaygain}a boolean based on data status{replaygain_limit}a boolean based on data status{shuffle}a boolean based on data status{softvol}a boolean based on data status{stream}a boolean based on data status
- Format placeholders:
{aaa_mode}shuffle mode, eg artist, album, all{albumartist}album artist, eg (new output here){album}album name, eg (new output here){artist}artist name, eg (new output here){bitrate}audio bitrate, eg 229{comment}comment, eg URL{date}year number, eg 2015{duration}length time in seconds, eg 171{durationtime}length time in [HH:]MM:SS, eg 02:51{file}file location, eg /home/user/Music…{position}elapsed time in seconds, eg 17{positiontime}elapsed time in [HH:]MM:SS, eg 00:17{replaygain_preamp}replay gain preamp, eg 0.000000{status}playback status, eg playing, paused, stopped{title}track title, eg (new output here){tracknumber}track number, eg 0{vol_left}left volume number, eg 90{vol_right}right volume number, eg 90Placeholders are retrieved directly from
cmus-remote --querycommand. The list was harvested only once and should not represent a full list.
- Color options:
color_pausedPaused, defaults to color_degradedcolor_playingPlaying, defaults to color_goodcolor_stoppedStopped, defaults to color_bad
- Requires:
cmusa small feature-rich ncurses-based music player
author lasers
coin_balance¶
Display balances of diverse crypto-currencies.
This module grabs your current balance of different crypto-currents from a wallet server. The server must conform to the bitcoin RPC specification. Currently Bitcoin, Dogecoin, and Litecoin are supported.
- Configuration parameters:
cache_timeoutAn integer specifying the cache life-time of the output in seconds (default 30)coin_passwordA string containing the password for the server for ‘coin’. The ‘coin’ part must be replaced by a supported coin identifier (see below for a list of identifiers). If no value is supplied, the value of ‘password’ (see below) will be used. If ‘password’ too is not set, the value will be retrieved from the standard ‘coin’ daemon configuration file. (default None)coin_usernameA string containing the username for the server for ‘coin’. The ‘coin’ part must be replaced by a supported coin identifier (see below for a list of identifiers). If no value is supplied, the value of ‘username’ (see below) will be used. If ‘username’ too is not set, the value will be retrieved from the standard ‘coin’ daemon configuration file. (default None)credentials(default None)formatA string describing the output format for the module. The {<coin>} placeholder (see below) will be used to determine how to fetch the coin balance. Multiple placeholders are allowed, but all balances will be fetched from the same host. (default ‘LTC: {litecoin}’)hostThe coin-server hostname. Note that all coins will use the same host for their querries. (default ‘localhost’)passwordA string containing the password for all coin-servers. If neither this setting, nor a specific coin_password (see above) is specified, the password for each coin will be read from the respective standard daemon configuration file. (default None)protocolA string to select the server communication protocol. (default ‘http’)usernameA string containing the username for all coin-servers. If neither this setting, nor a specific coin_username (see above) is specified, the username for each coin will be read from the respective standard daemon configuration file. (default None)
- Format placeholders:
{<coin>}Your balance for the coin <coin> where <coin> is one of:- bitcoin
- dogecoin
- litecoin
- Requires:
requestspython module from pypi https://pypi.python.org/pypi/requests At least version 2.4.2 is required.
Example:
# Get your Bitcoin balance using automatic credential detection
coin_balance {
cache_timeout = 45
format = "My BTC: {bitcoin}"
host = "localhost"
protocol = "http"
}
# Get your Bitcoin, Dogecoin and Litecoin balances using specific credentials
# for Bitcoin and automatic detection for Dogecoin and Litecoin
coin_balance {
# ...
format = "{bitcoin} BTC {dogecoin} XDG {litecoin} LTC"
bitcoin_username = "lcdata"
bitcoin_password = "omikron-theta"
# ...
}
# Get your Dogecoin and Litecoin balances using 'global' credentials
coin_balance {
# ...
format = "XDG: {dogecoin} LTC: {litecoin}"
username = "crusher_b"
password = "WezRulez"
# ...
}
# Get you Dogecoin, Litecoin, and Bitcoin balances by using 'global'
# credentials for Bitcoin and Dogecoin but specific credentials for
# Litecoin.
coin_balance {
# ...
format = "XDG: {dogecoin} LTC: {litecoin} BTC: {bitcoin}"
username = "zcochrane"
password = "sunny_islands"
litecoin_username = 'locutus'
litecoin_password = 'NCC-1791-D'
# ...
}
author Felix Morgner <felix.morgner@gmail.com>
license 3-clause-BSD
coin_market¶
Display cryptocurrency data.
The site we retrieve cryptocurrency data from offer various types of data such as name, symbol, price, volume, percentage change, total supply, et cetera for a wide range of cryptocurrencies and the prices can be obtained in a different currency along with USD currency, For more information, visit https://coinmarketcap.com
- Configuration parameters:
cache_timeoutrefresh interval for this module. A message from the site: Please limit requests to no more than 10 per minute. (default 600)formatdisplay format for this module (default ‘{format_coin}’)format_coindisplay format for coins (default ‘{name} ${price_usd:.2f} [?color=24h {percent_change_24h}%]’)format_separatorshow separator only if more than one (default ‘ ‘)marketsnumber of top-ranked markets or list of user-inputted markets (default [‘btc’])request_timeouttime to wait for a response, in seconds (default 5)thresholdsfor percentage changes (default [(-100, ‘bad’), (0, ‘good’)])
- Format placeholder:
{format_coin}format for cryptocurrency coins
- format_coin placeholders:
{24h_volume_usd}eg 1435150000.0{available_supply}eg 16404825.0{id}eg bitcoin{last_updated}eg 1498135152{market_cap_usd}eg 44119956596.0{name}eg Bitcoin{percent_change_1h}eg -0.17{percent_change_24h}eg -1.93{percent_change_7d}eg +14.73{price_btc}eg 1.0{price_usd}eg 2689.45{rank}eg 1{symbol}eg BTC{total_supply}eg 16404825.0Placeholders are retrieved directly from the URL. The list was harvested only once and should not represent a full list.
To print coins in different currency, replace or replicate the placeholders below with a valid option (eg ‘{price_gbp}’) to create additional placeholders:
{price_xxx} eg (new output here) {24h_volume_xxx} eg (new output here) {market_cap_xxx} eg (new output here)
Valid options are: AUD, BRL, CAD, CHF, CNY, EUR, GBP, HKD, IDR, INR, JPY, KRW, MXN, RUB, otherwise USD… and be written in lowercase.
- Color thresholds:
- 1h: print color based on the value of percent_change_1h 24h: print color based on the value of percent_change_24h 7d: print color based on the value of percent_change_7d
Example:
# view coins in GBP and optionally USD
coin_market {
format_coin = '{name} £{price_gbp:.2f} ${price_usd:.2f} {percent_change_24h}'
}
author lasers, x86kernel
deadbeef¶
Display song currently playing in deadbeef.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 1)formatdisplay format for this module (default ‘[{artist} - ][{title}]’)
- Format placeholders:
{album}name of the album{artist}name of the artist{length}length time in [HH:]MM:SS{playback_time}elapsed time in [HH:]MM:SS{title}title of the track{tracknumber}track number in two digits{year}year in four digitsFor more placeholders, see title formatting 2.0 in ‘deadbeef –help’ or http://github.com/Alexey-Yakovenko/deadbeef/wiki/Title-formatting-2.0 Not all of Foobar2000 remapped metadata fields will work with deadbeef and a quick reminder about using {placeholders} here instead of %placeholder%.
- Color options:
color_pausedPaused, defaults to color_degradedcolor_playingPlaying, defaults to color_goodcolor_stoppedStopped, defaults to color_bad
- Requires:
deadbeefa GTK+ audio player for GNU/Linux
author mrt-prodz, tobes, lasers
diskdata¶
Display disk information.
- Configuration parameters:
cache_timeoutrefresh interval for this module. (default 10)diskshow stats for disk or partition, i.e.sda1. None for all disks. (default None)formatdisplay format for this module. (default “{disk}: {used_percent}% ({total})”)format_ratedisplay format for rates value (default “[?min_length=11 {value:.1f} {unit}]”)format_spacedisplay format for disk space values (default “[?min_length=5 {value:.1f}]”)sector_sizesize of the disk’s sectors. (default 512)si_unitsuse SI units (default False)thresholdsthresholds to use for color changes (default {‘free’: [(0, ‘bad’), (10, ‘degraded’), (100, ‘good’)], ‘total’: [(0, “good”), (1024, ‘degraded’), (1024 * 1024, ‘bad’)]})unitunit to use. If the unit contains a multiplier prefix, only this exact unit will ever be used (default “B/s”)
- Format placeholders:
{disk}the selected disk{free}free space on disk in GB{used}used space on disk in GB{used_percent}used space on disk in %{read}reading rate{total}total IO rate{write}writing rate
- format_rate placeholders:
{unit}name of the unit{value}numeric value of the rate
- format_space placeholders:
{value}numeric value of the free/used space on the device
- Color thresholds:
{free}Change color based on the value of free{used}Change color based on the value of used_percent{read}Change color based on the value of read{total}Change color based on the value of total{write}Change color based on the value of write
author guiniol
license BSD
do_not_disturb¶
Turn on and off dbus notifications.
A left mouse click will toggle the state of this module.
- Configuration parameters:
formatDisplay format for the “Do Not Disturb” module. (default ‘{state}’)notification_managerThe process name of your notification manager. (default ‘dunst’)refresh_intervalRefresh interval to use for killing notification manager process. (default 0.25)state_offMessage when the “Do Not Disturb” mode is disabled. (default ‘OFF’)state_onMessage when the “Do Not Disturb” mode is enabled. (default ‘ON’)
- Color options:
color_bad“Do Not Disturb” mode is enabled.color_good“Do Not Disturb” mode is disabled.
dpms¶
Turn on and off DPMS and screen saver blanking.
This module allows activation and deactivation of DPMS (Display Power Management Signaling) by clicking on ‘DPMS’ in the status bar.
- Configuration parameters:
button_offmouse button to turn off screen (default None)button_togglemouse button to toggle DPMS (default 1)cache_timeoutrefresh interval for this module (default 15)formatdisplay format for this module (default ‘{icon}’)icon_offshow when DPMS is disabled (default ‘DPMS’)icon_onshow when DPMS is enabled (default ‘DPMS’)
- Format placeholders:
{icon}DPMS icon
- Color options:
color_onEnabled, defaults to color_goodcolor_offDisabled, defaults to color_bad
author Andre Doser <dosera AT tf.uni-freiburg.de>
dropboxd_status¶
Display status of Dropbox daemon.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 10)formatdisplay format for this module (default “Dropbox: {status}”)status_busytext for placeholder {status} when Dropbox is busy (default None)status_offtext for placeholder {status} when Dropbox isn’t running (default “isn’t running”)status_ontext for placeholder {status} when Dropbox is up to date (default “Up to date”)
- Value for
status_offif not set: - Dropbox isn’t running!
Value for
status_onif not set: - Up to date
Values for
status_busyif not set: - Connecting…
- Starting…
- Downloading file list…
- Syncing “filename”
- Dropbox isn’t running!
Value for
- Format placeholders:
{status}Dropbox status
- Color options:
color_badNot runningcolor_degradedBusycolor_goodUp to date
- Requires:
dropbox-clicommand line interface for dropbox
author Tjaart van der Walt (github:tjaartvdwalt)
license BSD
exchange_rate¶
Display foreign exchange rates.
The exchange rate data comes from Yahoo Finance.
For a list of three letter currency codes please see https://en.wikipedia.org/wiki/ISO_4217 NOTE: Not all listed currencies may be available
- Configuration parameters:
baseBase currency used for exchange rates (default ‘EUR’)cache_timeoutHow often we refresh this module in seconds (default 600)formatFormat of the output. This is also where requested currencies are configured. Add the currency code surrounded by curly braces and it will be replaced by the current exchange rate. (default ‘${USD} £{GBP} ¥{JPY}’)
author tobes
license BSD
external_script¶
Display output of a given script.
Display output of any executable script set by script_path.
Only the first two lines of output will be used. The first line is used
as the displayed text. If the output has two or more lines, the second
line is set as the text color (and should hence be a valid hex color
code such as #FF0000 for red).
The script should not have any parameters, but it could work.
- Configuration parameters:
cache_timeouthow often we refresh this module in seconds (default 15)formatsee placeholders below (default ‘{output}’)script_pathscript you want to show output of (compulsory) (default None)strip_outputshall we strip leading and trailing spaces from output (default False)
- Format placeholders:
{output}output of script given by “script_path”
i3status.conf example:
external_script {
format = "my name is {output}"
script_path = "/usr/bin/whoami"
}
author frimdo ztracenastopa@centrum.cz
fedora_updates¶
Display number of pending updates for Fedora Linux.
This will display a count of how many dnf updates are waiting
to be installed.
Additionally check if any update security notices.
- Configuration parameters:
cache_timeoutHow often we refresh this module in seconds (default 600)check_securityCheck for security updates (default True)formatDisplay format to use (default ‘DNF: {updates}’)
- Format placeholders:
{updates}number of pending dnf updates
- Color options:
color_badSecurity noticecolor_degradedUpgrade availablecolor_goodNo upgrades needed
author tobes
license BSD
file_status¶
Display if a file or directory exists.
- Configuration parameters:
cache_timeouthow often to run the check (default 10)formatformat of the output. (default ‘{icon}’)icon_availableicon to display when available (default ‘●’)icon_unavailableicon to display when unavailable (default ‘■’)paththe path to a file or dir to check if it exists (default None)
- Color options:
color_badError or file/directory does not existcolor_goodFile or directory exists
- Format placeholders:
{icon}icon for the current availability
author obb, Moritz Lüdecke
frame¶
Group modules and treat them as a single one.
This can be useful for example when adding modules to a group and you wish two modules to be shown at the same time.
By adding the {button} placeholder in the format you can enable a toggle
button to hide or show the content.
- Configuration parameters:
button_toggleButton used to toggle if one in format. Setting to None disables (default 1)formatDisplay format to use (default ‘{output}’)format_button_closedFormat for the button when frame open (default ‘+’)format_button_openFormat for the button when frame closed (default ‘-‘)format_separatorSpecify separator between contents. If this is None then the default i3bar separator will be used (default None)openIf button then the frame can be set to be open or close (default True)
- Format of status string parameters:
{button}If used a button will be used that can be clicked to hide/show the contents of the frame.{output}The output of the modules in the frame
Example config:
# A frame showing times in different cities.
# We also have a button to hide/show the content
frame time {
format = '{output}{button}'
format_separator = ' ' # have space instead of usual i3bar separator
tztime la {
format = "LA %H:%M"
timezone = "America/Los_Angeles"
}
tztime ny {
format = "NY %H:%M"
timezone = "America/New_York"
}
tztime du {
format = "DU %H:%M"
timezone = "Asia/Dubai"
}
}
# Define a group which shows volume and battery info
# or the current time.
# The frame, volume_status and battery_level modules are named
# to prevent them clashing with any other defined modules of the same type.
group {
frame {
volume_status {}
battery_level {}
}
time {}
}
author tobes
getjson¶
Display JSON data fetched from a URL.
This module gets the given url configuration parameter and assumes the
response is a JSON object. The keys of the JSON object are used as the format
placeholders. The format placeholders are replaced by the value. Objects that
are nested can be accessed by using the delimiter configuration parameter
in between.
Examples:
# Straightforward key replacement
url = 'http://ip-api.com/json'
format = '{lat}, {lon}'
# Access child objects
url = 'http://api.icndb.com/jokes/random'
format = '{value-joke}'
# Access title from 0th element of articles list
url = 'https://newsapi.org/v1/articles?source=bbc-news&sortBy=top&apiKey={KEY}'
format = '{articles-0-title}'
# Access if top-level object is a list
url = 'https://jsonplaceholder.typicode.com/posts/1/comments'
format = '{0-name}'
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 30)delimiterthe delimiter between parent and child objects (default ‘-‘)formatdisplay format for this module (default None)timeouttime to wait for a response, in seconds (default 5)urlspecify URL to fetch JSON from (default None)
- Format placeholders:
Placeholders will be replaced by the JSON keys.
Placeholders for objects with sub-objects are flattened using ‘delimiter’ in between (eg. {‘parent’: {‘child’: ‘value’}} will use placeholder {parent-child}).
Placeholders for list elements have ‘delimiter’ followed by the index (eg. {‘parent’: [‘this’, ‘that’]) will use placeholders {parent-0} for ‘this’ and {parent-1} for ‘that’.
author vicyap
github¶
Display Github notifications and issue/pull requests for a repo.
To check notifications a Github username and personal access token are
required. You can create a personal access token at
https://github.com/settings/tokens The only scope needed is notifications,
which provides readonly access to notifications.
The Github API is rate limited so setting cache_timeout too small may cause
issues see https://developer.github.com/v3/#rate-limiting for details
- Configuration parameters:
auth_tokenGithub personal access token, needed to check notifications see above. (default None)button_actionButton that when clicked opens the Github notification page if notifications, else the project page for the repository if there is one (otherwise the github home page). Setting toNonedisables. (default 3)button_refreshButton that when clicked refreshes module. Setting toNonedisables. (default 2)cache_timeoutHow often we refresh this module in seconds (default 60)formatFormat of output (default ‘{repo} {issues}/{pull_requests}{notifications}’ if username and auth_token provided else ‘{repo} {issues}/{pull_requests}’)format_notificationsFormat of{notification}status placeholder. (default ‘ N{notifications_count}’)notificationsType of notifications can beallfor all notifications orrepoto only get notifications for the repo specified. If repo is not provided then all notifications will be checked. (default ‘all’)repoGithub repo to check (default ‘ultrabug/py3status’)usernameGithub username, needed to check notifications. (default None)
- Format placeholders:
{issues}Number of open issues.{notifications}Notifications. If no notifications this will be empty.{notifications_count}Number of notifications. This is also the __Only__ placeholder available toformat_notifications.{pull_requests}Number of open pull requests{repo}short name of the repository being checked. eg py3status{repo_full}full name of the repository being checked. eg ultrabug/py3status
Examples:
# set github access credentials
github {
auth_token = '40_char_hex_access_token'
username = 'my_username'
}
# just check for any notifications
github {
auth_token = '40_char_hex_access_token'
username = 'my_username'
format = 'Github {notifications_count}'
}
author tobes
glpi¶
Display number of open tickets from GLPI.
It features thresholds to colorize the output and forces a low timeout to limit the impact of a server connectivity problem on your i3bar freshness.
- Configuration parameters:
cache_timeouthow often we refresh this module in seconds (default 300)criticalset bad color above this threshold (default 20)dbdatabase to use (default ‘’)formatformat of the module output (default ‘{tickets_open} tickets’)hostdatabase host to connect to (default ‘’)passwordlogin password (default ‘’)timeouttimeout for database connection (default 5)userlogin user (default ‘’)warningset degraded color above this threshold (default 15)
- Format placeholders:
{tickets_open}The number of open tickets
- Color options:
color_badOpen ticket above critical thresholdcolor_degradedOpen ticket above warning threshold
- Requires:
- MySQL-python: http://pypi.python.org/pypi/MySQL-python
gpmdp¶
Display song currently playing in Google Play Music Desktop Player.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 5)formatspecify the items and ordering of the data in the status bar. These area 1:1 match to gpmdp-remote’s options (default ‘♫ {info}’)
- Format placeholders:
{info}Print info about now playing song{title}Print current song title{artist}Print current song artist{album}Print current song album{album_art}Print current song album art URL{time_current}Print current song time in milliseconds{time_total}Print total song time in milliseconds{status}Print whether GPMDP is paused or playing{current}Print now playing song in “artist - song” format
- Requires:
author Aaron Fields https://twitter.com/spirotot
license BSD
graphite¶
Display Graphite metrics.
- Configuration parameters:
cache_timeouthow often we refresh this module in seconds. (default 120)datapoint_selectionwhen multiple data points are returned, use “max” or “min” to determine which one to display. (default “max”)formatyou MUST use placeholders here to display data, see below. (default ‘’)graphite_urlURL to your graphite server. (default ‘’)http_timeoutHTTP query timeout to graphite. (default 10)proxyYou can configure the proxy with HTTP or HTTPS. (default: None) examples: proxy = ‘https://myproxy.example.com:1234/’ proxy = ‘http://user:passwd@myproxy.example.com/’ proxy = ‘socks5://user:passwd@host:port’ (proxy_socks is available after an ‘pip install requests[socks]’) (default None)targetssemicolon separated list of targets to query graphite for. (default ‘’)threshold_badnumerical threshold, if set will send a notification and colorize the output. (default None)threshold_degradednumerical threshold, if set will send a notification and colorize the output. (default None)timespantime range to query graphite for. (default “-2minutes”)value_comparatorchoose between “max” and “min” to compare thresholds to the data point value. (default “max”)value_formatpretty format long numbers with “K”, “M” etc. (default True)value_roundround values so they’re not displayed as floats. (default True)
- Dynamic format placeholders:
The “format” parameter placeholders are dynamically based on the data points names returned by the “targets” query to graphite.
For example if your target is
"carbon.agents.localhost-a.memUsage", you’d get a JSON result like this:{ "target": "carbon.agents.localhost-a.memUsage", "datapoints": [[19693568.0, 1463663040]] }- So the placeholder you could use on your “format” config is:
format = "{carbon.agents.localhost-a.memUsage}"
TIP: use aliases !
targets = "alias(carbon.agents.localhost-a.memUsage, 'local_memuse')" format = "local carbon mem usage: {local_memuse} bytes"- Color options:
color_badthreshold_bad has been exceededcolor_degradedthreshold_degraded has been exceeded
author ultrabug
group¶
Group modules and switch between them.
In i3status.conf groups can be configured. The active one of these groups is
shown in the i3bar. The active group can be changed by a user click. If the
click is not used by the group module then it will be passed down to the
displayed module.
Modules can be i3status core modules or py3status modules. The active group can be cycled through automatically.
The group can handle clicks by reacting to any that are made on it or its
content or it can use a button and only respond to clicks on that.
The way it does this is selected via the click_mode option.
- Configuration parameters:
alignText alignment when fixed_width is set can be ‘left’, ‘center’ or ‘right’ (default ‘center’)button_nextButton that when clicked will switch to display next module. Setting to0will disable this action. (default 5)button_prevButton that when clicked will switch to display previous module. Setting to0will disable this action. (default 4)button_toggleButton that when clicked toggles the group content being displayed between open and closed. This action is ignored if{button}is not in the format. Setting to0will disable this action (default 1)click_modeThis defines how clicks are handled by the group. If set toallthen the group will respond to all click events. This may cause issues with contained modules that use the same clicks that the group captures. If set tobuttonthen only clicks that are directly on the{button}are acted on. The group will need{button}in its format. (default ‘all’)cycleTime in seconds till changing to next module to display. Setting to0will disable cycling. (default 0)fixed_widthReduce the size changes when switching to new group (default False)formatFormat for module output. (default “{output}” if click_mode is ‘all’, “{output} {button}” if click_mode ‘button’)format_button_closedFormat for the button when group open (default ‘+’)format_button_openFormat for the button when group closed (default ‘-‘)format_closedFormat for module output when closed. (default “{button}”)openIs the group open and displaying its content. Has no effect if{button}not in format (default True)
- Format placeholders:
{button}The button to open/close or change the displayed group{output}Output of current active module
Example:
# Create a disks group that will show space on '/' and '/home'
# Change between disk modules every 30 seconds
...
order += "group disks"
...
group disks {
cycle = 30
format = "Disks: {output} {button}"
click_mode = "button"
disk "/" {
format = "/ %avail"
}
disk "/home" {
format = "/home %avail"
}
}
author tobes
hamster¶
Display time tracking activities from Hamster.
- Configuration parameters:
cache_timeouthow often we refresh this module in seconds (default 10)formatsee placeholders below (default ‘{current}’)
- Format placeholders:
{current}current activity
- Requires:
hamster
author Aaron Fields (spirotot [at] gmail.com)
license BSD
i3block¶
Support i3blocks blocklets in py3status.
[i3blocks](https://github.com/vivien/i3blocks) is a project to allow simple scripts to provide output to the i3bar. This module allows these blocklets to run under py3status. The configuration of the blocklets is similar to how they are configured in i3blocks.
Note: i3blocks and i3blocklets are subject to their respective licenses.
Note: This support is experimental and done for convenience to users so they can benefit from both worlds, issues or PRs regarding i3blocks related blocklets should not be raised.
Some blocklets may return pango markup eg <span ... if so set
markup = pango in the config for that module.
# i3blocks config
[time]
command=date '+%D %T'
interval=5
[wifi]
instance=wls1
label='wifi:'
command=~/i3blocks/wifi.sh
interval=5
# py3status config
order += 'i3block time'
i3block time {
command = "date '+%D %T'"
interval = 5
}
order += 'i3block wifi'
i3block wifi {
instance = wls1
label = 'wifi:'
command = '~/i3blocks/wifi.sh'
interval = 5
}
Note: format configuration parameter is used as is standard in py3status, not
as in i3blocks configuration. Currently blocklets must provide responses in
the standard i3blocks manner of one line per value (not as json).
- Configuration parameters:
cache_timeoutHow often the blocklet should be called (in seconds). This is similar to cache_timeout used by standard modules. However it can also take the following values;oncethe blocklet will be called once,repeatthe blocklet will be called constantly, orpersistwhere the command will be expected to keep providing new data. If this is not set or isNonethen the blocklet will not be called unless clicked on. Note: To simplify i3block compatability this configuration parameter can also be provided asinterval. (default None)commandPath to blocklet or command (default None)formatWhat to display on the bar (default ‘{output}’)instanceWill be provided to the blocklet as $BLOCK_INSTANCE (default ‘’)labelWill be prepended to the blocklets output (default ‘’)nameName of the blocklet - passed as $BLOCK_NAME (default ‘’)
- Format placeholders:
{output}The output of the blocklet
author tobes
icinga2¶
Display service status for Icinga2.
- Configuration parameters:
base_urlthe base url to the icinga-web2 services list (default ‘’)ca(default True)cache_timeouthow often the data should be updated (default 60)disable_acknowledgeenable or disable counting of acknowledged service problems (default False)formatdefine a format string like “CRITICAL: %d” (default ‘{status_name}: {count}’)passwordpassword to authenticate against the icinga-web2 interface (default ‘’)statusset the status you want to obtain (0=OK,1=WARNING,2=CRITICAL,3=UNKNOWN) (default 0)url_parameters(default ‘?service_state={service_state}&format=json’)userusername to authenticate against the icinga-web2 interface (default ‘’)
author Ben Oswald <ben.oswald@root-space.de>
license BSD License <https://opensource.org/licenses/BSD-2-Clause>
imap¶
Display number of unread messages from IMAP account.
- Configuration parameters:
allow_urgentdisplay urgency on unread messages (default False)cache_timeoutrefresh interval for this module (default 60)criterionstatus of emails to check for (default ‘UNSEEN’)formatdisplay format for this module (default ‘Mail: {unseen}’)hide_if_zerohide this module when no new mail (default False)mailboxname of the mailbox to check (default ‘INBOX’)passwordlogin password (default None)portnumber to use (default ‘993’)securitylogin authentication method: ‘ssl’ or ‘starttls’ (startssl needs python 3.2 or later) (default ‘ssl’)serverserver to connect (default None)userlogin user (default None)
- Format placeholders:
{unseen}number of unread emails
- Color options:
color_new_mailuse color when new mail arrives, default to color_good
author obb
insync¶
Display Insync status
Thanks to Iain Tatch <iain.tatch@gmail.com> for the script that this is based on.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 10)formatdisplay format for this module (default ‘{status} {queued}’)status_offlineshow when Insync is offline (default ‘OFFLINE’)status_pausedshow when Insync is paused (default ‘PAUSED’)status_shareshow when Insync is sharing (default ‘SHARE’)status_syncingshow when Insync is syncing (default ‘SYNCING’)
- Format placeholders:
{status}Insync status{queued}Number of files queued
- Color options:
color_badOfflinecolor_degradedDefaultcolor_goodSynced
- Requires:
insyncan unofficial Google Drive client with support for various desktops
author Joshua Pratt <jp10010101010000@gmail.com>
license BSD
kdeconnector¶
Display information about your smartphone with KDEConnector.
- Configuration parameters:
cache_timeouthow often we refresh this module in seconds (default 30)devicethe device name, you need this if you have more than one device connected to your PC (default None)device_idalternatively to the device name you can set your device id here (default None)formatsee placeholders below (default ‘{name}{notif_status} {bat_status} {charge}%’)format_disconnectedtext if device is disconnected (default ‘device disconnected’)low_thresholdpercentage value when text is twitch to color_bad (default 20)status_battext when battery is discharged (default ‘⬇’)status_chrtext when device is charged (default ‘⬆’)status_fulltext when battery is full (default ‘☻’)status_no_notiftext when you have no notifications (default ‘’)status_notiftext when notifications are available (default ‘ ✉’)
- Format placeholders:
{bat_status}battery state{charge}the battery charge{name}name of the device{notif_size}number of notifications{notif_status}shows if a notification is available or not
- Color options:
color_badDevice unknown, unavailable or battery below low_threshold and not chargingcolor_degradedConnected and battery not chargingcolor_goodConnected and battery charging
i3status.conf example:
kdeconnector {
device_id = "aa0844d33ac6ca03"
format = "{name} {battery} ⚡ {state}"
low_battery = "10"
}
- Requires:
- pydbus kdeconnect
author Moritz Lüdecke
keyboard_layout¶
Display keyboard layout.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 10)colorsdeprecated. see color options below (default None)formatdisplay format for this module (default ‘{layout}’)
- Format placeholders:
{layout}keyboard layout
- Color options:
color_<layout>colorize the layout. eg color_fr = ‘#729FCF’
- Requires:
xkblayout-stateorsetxkbmapandxset(works for the first two predefined layouts.)
author shadowprince, tuxitop
license Eclipse Public License
keyboard_locks¶
Monitor CapsLock, NumLock, and ScrLock keys
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 1)formatdisplay format for this module (default ‘{caps} {num} {scr}’)icon_caps_offshow when Capitals Lock is off (default ‘CAPS’)icon_caps_onshow when Capitals Lock is on (default ‘CAPS’)icon_num_offshow when Numeric Lock is off (default ‘NUM’)icon_num_onshow when Numeric Lock is on (default ‘NUM’)icon_scr_offshow when Scroll Lock is off (default ‘SCR’)icon_scr_onshow when Scroll Lock is on (default ‘SCR’)
- Color options:
color_goodLock oncolor_badLock off
author lasers
moc¶
Display currently playing song in moc.
MOC (music on console) is a console audio player for Linux/Unix designed to be powerful and easy to use. It consists of two parts, a server (moc) and a player/interface (mocp). It supports OGG, WAV, MP3 and other formats.
- Configuration parameters:
button_nextmouse button to skip next track (default None)button_pausemouse button to pause/play the playback (default 1)button_previousmouse button to skip previous track (default None)button_stopmouse button to stop the playback (default 3)cache_timeoutrefresh interval for this module (default 5)formatdisplay format for this module (default ‘?if=is_started [?if=is_stopped [] moc| [?if=is_paused ||][?if=is_playing >] {title}]’)sleep_timeoutsleep interval for this module. when moc is not running, this interval will be used. this allows some flexible timing where one might want to refresh constantly with some placeholders… or to refresh only once every minute rather than every few seconds. (default 20)
- Control placeholders:
{is_paused}a boolean based on moc status{is_playing}a boolean based on moc status{is_started}a boolean based on moc status{is_stopped}a boolean based on moc status
- Format placeholders:
{album}album name, eg (new output here){artist}artist name, eg (new output here){avgbitrate}audio average bitrate, eg 230kbps{bitrate}audio bitrate, eg 230kbps{currentsec}elapsed time in seconds, eg 32{currenttime}elapsed time in [HH:]MM:SS, eg 00:32{file}file location, eg /home/user/Music…{rate}audio rate, eg 44kHz{songtitle}song title, eg (new output here){state}playback state, eg PLAY, PAUSE, STOP{timeleft}time left in [HH:]MM:SS, eg 71:30{title}track title, eg (new output here){totalsec}total time in seconds, eg 4322{totaltime}total time in seconds, eg 72:02Placeholders are retrieved directly from
mocp --infocommand. The list was harvested only once and should not represent a full list.
- Color options:
color_pausedPaused, defaults to color_degradedcolor_playingPlaying, defaults to color_goodcolor_stoppedStopped, defaults to color_bad
- Requires:
moca console audio player with simple ncurses interface
author lasers
mpd_status¶
Display song currently playing in mpd.
- Configuration parameters:
cache_timeouthow often we refresh this module in seconds (default 2)formattemplate string (see below) (default ‘{state} [[[{artist}] - {title}]|[{file}]]’)hide_when_pausedhide the status if state is paused (default False)hide_when_stoppedhide the status if state is stopped (default True)hostmpd host (default ‘localhost’)max_widthmaximum status length (default 120)passwordmpd password (default None)portmpd port (default ‘6600’)state_pauselabel to display for “paused” state (default ‘[pause]’)state_playlabel to display for “playing” state (default ‘[play]’)state_stoplabel to display for “stopped” state (default ‘[stop]’)
- Color options:
color_pausePaused, default color_degradedcolor_playPlaying, default color_goodcolor_stopStopped, default color_bad
- Format placeholders:
{state}state (paused, playing. stopped) can be defined viastate_..configuration parameters Refer to the mpc(1) manual page for the list of available placeholders to be used in the format. Placeholders should use braces{}rather than percent%%eg{artist}. Every placeholder can also be prefixed withnext_to retrieve the data for the song following the one currently playing.
- Requires:
python-mpd2(NOT python2-mpd2)
# pip install python-mpd2
Note: previously formats using %field% where allowed for this module, but standard placeholders should be used.
Examples of format
# Show state and (artist -) title, if no title fallback to file:
{state} [[[{artist} - ]{title}]|[{file}]]
# Show state, [duration], title (or file) and next song title (or file):
{state} \[{time}\] [{title}|{file}] → [{next_title}|{next_file}]
author shadowprince, zopieux
license Eclipse Public License
mpris¶
Display song/video and control MPRIS compatible players.
There are two ways to control the media player. Either by clicking with a mouse button in the text information or by using buttons. For former you have to define the button parameters in the i3status config.
- Configuration parameters:
button_nextmouse button to play the next entry (default 4)button_previousmouse button to play the previous entry (default 5)button_stopmouse button to stop the player (default None)button_togglemouse button to toggle between play and pause mode (default 1)formatsee placeholders below (default ‘{previous}{toggle}{next} {state} [{artist} - ][{title}]’)format_nonedefine output if no player is running (default ‘no player running’)icon_nexttext for the next button in the button control panel (default ‘»’)icon_pausetext for the pause button in the button control panel (default ‘▮’)icon_playtext for the play button in the button control panel (default ‘▶’)icon_previoustext for the previous button in the button control panel (default ‘«’)icon_stoptext for the stop button in the button control panel (default ‘◾’)player_prioritypriority of the players. Keep in mind that the state has a higher priority than player_priority. So when player_priority is “[mpd, bomi]” and mpd is paused and bomi is playing than bomi wins. (default [])state_pausetext for placeholder {state} when song is paused (default ‘▮’)state_playtext for placeholder {state} when song is playing (default ‘▶’)state_stoptext for placeholder {state} when song is stopped (default ‘◾’)
- Format of status string placeholders:
{album}album name{artist}artiste name (first one){length}time duration of the song{player}show name of the player{state}playback status of the player{time}played time of the song{title}name of the song
- Format of button placeholders:
{next}play the next title{pause}pause the player{play}play the player{previous}play the previous title{stop}stop the player{toggle}toggle between play and pause
- Color options:
color_control_inactivebutton is not clickablecolor_control_activebutton is clickablecolor_pausedsong is paused, defaults to color_degradedcolor_playingsong is playing, defaults to color_goodcolor_stoppedsong is stopped, defaults to color_bad
- Requires:
pydbuspython library module
i3status.conf example:
mpris {
format = "{previous}{play}{next} {player}: {state} [[{artist} - {title}]|[{title}]]"
format_none = "no player"
player_priority = "[mpd, cantata, vlc, bomi, *]"
}
only show information from mpd and vlc, but mpd has a higher priority:
mpris {
player_priority = "[mpd, vlc]"
}
show information of all players, but mpd and vlc have the highest priority:
mpris {
player_priority = "[mpd, vlc, *]"
}
vlc has the lowest priority:
mpris {
player_priority = "[*, vlc]"
}
- Tested players:
- bomi Cantata mpDris2 (mpris extension for mpd) vlc
author Moritz Lüdecke, tobes, valdur55
net_iplist¶
Display list of network interfaces and IP addresses.
This module supports both IPv4 and IPv6. There is the possibility to blacklist interfaces and IPs, as well as to show interfaces with no IP address. It will show an alternate text if no IP are available.
- Configuration parameters:
cache_timeoutrefresh interval for this module in seconds. (default 30)formatformat of the output. (default ‘Network: {format_iface}’)format_ifaceformat string for the list of IPs of each interface. (default ‘{iface}:[ {ip4}][ {ip6}]’)format_no_ipstring to show if there are no IPs to display. (default ‘no connection’)iface_blacklistlist of interfaces to ignore. Accepts shell-style wildcards. (default [‘lo’])iface_sepstring to write between interfaces. (default ‘ ‘)ip_blacklistlist of IPs to ignore. Accepts shell-style wildcards. (default [])ip_sepstring to write between IP addresses. (default ‘,’)remove_emptydo not show interfaces with no IP. (default True)
- Format placeholders:
{format_iface}the format_iface string.
- Format placeholders for format_iface:
{iface}name of the interface.{ip4}list of IPv4 of the interface.{ip6}list of IPv6 of the interface.
- Color options:
color_badno IPs to showcolor_goodIPs to show
Example:
net_iplist {
iface_blacklist = []
ip_blacklist = ['127.*', '::1']
}
- Requires:
iputility found in iproute2 package
author guiniol
net_rate¶
Display network transfer rate.
- Configuration parameters:
all_interfacesignore self.interfaces, but not self.interfaces_blacklist (default True)cache_timeouthow often we refresh this module in seconds (default 2)devfilelocation of dev file under /proc (default ‘/proc/net/dev’)formatformat of the module output (default ‘{interface}: {total}’)format_no_connectionwhen there is no data transmitted from the start of the plugin (default ‘’)format_valueformat to use for values (default “[?min_length=11 {value:.1f} {unit}]”)hide_if_zerohide indicator if rate == 0 (default False)interfacescomma separated list of interfaces to track (default [])interfaces_blacklistcomma separated list of interfaces to ignore (default ‘lo’)si_unitsuse SI units (default False)sum_valuessum values of each interface instead of taking the top one (default False)thresholdsthresholds to use for colors (default [(0, ‘bad’), (1024, ‘degraded’), (1024 * 1024, ‘good’)])unitunit to use. If the unit contains a multiplier prefix, only this exact unit will ever be used (default “B/s”)
- Format placeholders:
{down}download rate{interface}name of interface{total}total rate{up}upload rate
- format_value placeholders:
{unit}current unit{value}numeric value
- Color thresholds:
{down}Change color based on the value of down{total}Change color based on the value of total{up}Change color based on the value of up
author shadowprince
license Eclipse Public License
netdata¶
Display network speed and bandwidth usage.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 2)formatdisplay format for this module (default ‘{nic} [?color=down LAN(Kb): {down}↓ {up}↑] [?color=total T(Mb): {download}↓ {upload}↑ {total}↕]’)nicnetwork interface to use (default None)thresholdscolor thresholds to use (default {‘down’: [(0, ‘bad’), (30, ‘degraded’), (60, ‘good’)], ‘total’: [(0, ‘good’), (400, ‘degraded’), (700, ‘bad’)]})
- Format placeholders:
{nic}network interface{down}number of download speed{up}number of upload speed{download}number of download usage{upload}number of upload usage{total}number of total usage
- Color thresholds:
{down}color threshold of download speed{total}color threshold of total usage
author Shahin Azad <ishahinism at Gmail>
ns_checker¶
Display DNS resolution success on a configured domain.
This module launch a simple query on each nameservers for the specified domain. Nameservers are dynamically retrieved. The FQDN is the only one mandatory parameter. It’s also possible to add additional nameservers by appending them in nameservers list.
The default resolver can be overwritten with my_resolver.nameservers parameter.
- Configuration parameters:
cache_timeouthow often we refresh this module in seconds (default 300)domaindomain name to check (default ‘’)formatoutput format string (default ‘{total_count} NS {status}’)lifetimeresolver lifetime (default 0.3)nameserverscomma separated list of reference DNS nameservers (default ‘’)resolverscomma separated list of DNS resolvers to use (default ‘’)
- Format placeholders:
{nok_count}The number of failed name servers{ok_count}The number of working name servers{status}The overall status of the name servers (OK or NOK){total_count}The total number of name servers
- Color options:
color_badOne or more lookups have failedcolor_goodAll lookups have succeeded
- Requires:
dnspythonpython module
author nawadanp
nvidia_temp¶
Display NVIDIA GPU temperature.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 10)formatdisplay format for this module (default ‘GPU: {format_temp}’)format_tempdisplay format for temperatures (default ‘{temp}°C’)temp_separatortemperature separator (if more than one) (default ‘|’)
- Format placeholders:
{format_temp}format for temperatures
- format_temp placeholders:
{temp}temperatures
- Color options:
color_badUnavailablecolor_goodAvailable
- Requires:
nvidia-smiNVIDIA System Management Interface program
author jmdana <https://github.com/jmdana>
license BSD
online_status¶
Determine if you have an Internet Connection.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 10)formatdisplay format for this module (default ‘{icon}’)icon_offshow when connection is offline (default ‘■’)icon_onshow when connection is online (default ‘●’)timeouttime to wait for a response, in seconds (default 2)urlspecify URL to connect when checking for a connection (default ‘http://www.google.com’)
- Format placeholders:
{icon}connection status
- Color options:
color_offConnection offline, defaults to color_badcolor_onConnection online, defaults to color_good
author obb
pingdom¶
Display response times of the configured Pingdom checks.
We also verify the status of the checks and colorize if needed. Pingdom API doc : https://www.pingdom.com/features/api/documentation/
- Configuration parameters:
app_keycreate an APP KEY on pingdom first (default ‘’)cache_timeouthow often to refresh the check from pingdom (default 600)checkscomma separated pindgom check names to display (default ‘’)formatdisplay format for this module (default ‘{pingdom}’)loginpingdom login (default ‘’)max_latencymaximal latency before coloring the output (default 500)passwordpingdom password (default ‘’)request_timeoutpindgom API request timeout (default 15)
- Format placeholders:
{pingdom}pingdom response times
- Color options:
color_badSite is downcolor_degradedLatency exceeded max_latency
- Requires:
requestspython module from pypi https://pypi.python.org/pypi/requests
player_control¶
Control Audacious or VLC media player.
- Provides an icon to control simple functions of audio/video players:
- start (left click)
- stop (left click)
- pause (middle click)
- Configuration parameters:
cache_timeouthow often to update in seconds (default 10)debugenable verbose logging (bool) (default False)formatformat of the output (default “{icon}”)pause_icon(default ‘❚❚’)play_icon(default ‘▶’)stop_icon(default ‘◼’)supported_playerssupported players (str) (comma separated list) (default ‘audacious,vlc’)volume_tickpercentage volume change on mouse wheel (int) (positive number or None to disable it) (default 1)
- Format placeholders:
{icon}an icon to control music/video players
author Federico Ceratto <federico.ceratto@gmail.com>, rixx
license BSD
pomodoro¶
Use Pomodoro technique to get things done easily.
Button 1 starts/pauses countdown. Button 2 switch Pomodoro/Break. Button 3 resets timer.
- Configuration parameters:
display_bardisplay time in bars when True, otherwise in seconds (default False)formatdefine custom display format. See placeholders below (default ‘{ss}’)format_separatorseparator between minutes:seconds (default ‘:’)max_breaksmaximum number of breaks (default 4)num_progress_barsnumber of progress bars (default 5)sound_break_endbreak end sound (file path) (requires pyglet or pygame) (default None)sound_pomodoro_endpomodoro end sound (file path) (requires pyglet or pygame) (default None)sound_pomodoro_startpomodoro start sound (file path) (requires pyglet or pygame) (default None)timer_breaknormal break time (seconds) (default 300)timer_long_breaklong break time (seconds) (default 900)timer_pomodoropomodoro time (seconds) (default 1500)
- Format placeholders:
{bar}display time in bars{ss}display time in total seconds (1500){mm}display time in total minutes (25){mmss}display time in (hh-)mm-ss (25:00)
- Color options:
color_badPomodoro not runningcolor_degradedPomodoro breakcolor_goodPomodoro active
i3status.conf example:
pomodoro {
format = "{mmss} {bar}"
}
author Fandekasp (Adrien Lemaire), rixx, FedericoCeratto, schober-ch
process_status¶
Display if a process is running.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 10)formatdefault format for this module (default ‘{icon}’)fullif True, match against full command line (default False)icon_offshow when process not running (default ‘■’)icon_onshow when process running (default ‘●’)processprocess name to check for (default None)
- Format placeholders:
{icon}process icon{process}process name
- Color options:
color_badNot runningcolor_goodRunning
author obb, Moritz Lüdecke
rainbow¶
Add color cycling fun to your i3bar.
This is the most pointless yet most exciting module you can imagine.
It allows color cycling of modules. Imagine the joy of having the current time change through the colors of the rainbow.
If you were completely insane you could also use it to implement the i3bar equivalent of the <blink> tag and cause yourself endless headaches and the desire to vomit.
The color for the contained module(s) is changed and cycles through your chosen gradient by default this is the colors of the rainbow. This module will increase the amount of updates that py3status needs to do so should be used sparingly.
- Configuration parameters:
cycle_timeHow often we change this color in seconds (default 1)forceIf True then the color will always be set. If false the color will only be changed if it has not been set by a module. (default False)formatdisplay format for this module (default ‘{output}’)gradientThe colors we will cycle through, This is a list of hex values (default [ ‘#FF0000’, ‘#FFFF00’, ‘#00FF00’, ‘#00FFFF’, ‘#0000FF’, ‘#FF00FF’, ‘#FF0000’, ])multi_colorIf True then each module the rainbow contains will be colored differently (default True)stepsNumber of steps between each color in the gradient (default 10)
Example config:
order += "rainbow time"
# show time colorfully
rainbow time {
time {}
}
Example blinking config:
order += "rainbow blink_time"
# blinking text black/white
rainbow blink_time{
gradient = [
'#FFFFFF',
'#000000',
]
steps = 1
time {}
}
author tobes
rate_counter¶
Display time spent and calculate the price of your service.
- Configuration parameters:
cache_timeouthow often to update in seconds (default 5)config_filefile path to store the time already spent and restore it the next session (default ‘~/.i3/py3status/counter-config.save’)formatoutput format string (default ‘Time: {days} day {hours}:{mins:02d} Cost: {total}’)format_moneyoutput format string (default ‘{price}$’)hour_priceyour price per hour (default 30)taxtax value (1.02 = 2%) (default 1.02)
- Format placeholders:
{days}The number of whole days in running timer{hours}The remaining number of whole hours in running timer{mins}The remaining number of whole minutes in running timer{secs}The remaining number of seconds in running timer{subtotal}The subtotal cost (time * rate){tax}The tax cost, based on the subtotal cost{total}The total cost (subtotal + tax){total_hours}The total number of whole hours in running timer{total_mins}The total number of whole minutes in running timer
- Money placeholders:
{price}numeric value of money
- Color options:
color_runningRunning, default color_goodcolor_stoppedStopped, default color_bad
author Amaury Brisou <py3status AT puzzledge.org>
rss_aggregator¶
Display unread feeds in your favorite RSS aggregator.
- For now, supported aggregators are:
- OwnCloud/NextCloud with News application
- Tiny Tiny RSS 1.6 or newer
You can also decide to check only for specific feeds or folders of feeds. To use this feature, you have to first get the IDs of those feeds or folders. You can get those IDs by clicking on the desired feed or folder and watching the URL.
For OwnCloud/NextCloud:
https://yourcloudinstance.com/index.php/apps/news/#/items/feeds/FEED_ID
https://yourcloudinstance.com/index.php/apps/news/#/items/folders/FOLDER_ID
For Tiny Tiny RSS:
https://yourttrssinstance.com/index.php#f=FEED_ID&c=0
https://yourttrssinstance.com/index.php#f=FOLDER_ID&c=1
If both feeds list and folders list are left empty, all unread feed items will be counted. You may use both feeds list and folders list, but given feeds shouldn’t be included in given folders, else unread count number behavior is unpredictable. Same warning when aggregator allows subfolders: the folders list shouldn’t include a folder and one of its subfolder.
- Configuration parameters:
aggregatorfeed aggregator used. Supported values areowncloudandttrss. Other aggregators might be supported in future releases. Contributions are welcome. (default ‘owncloud’)cache_timeouthow often to run this check (default 60)feed_idslist of IDs of feeds to watch, see note below (default [])folder_idslist of IDs of folders ro watch (default [])formatformat to display (default ‘Feed: {unseen}’)passwordlogin password (default None)serveraggregator server to connect to (default ‘https://yourcloudinstance.com’)userlogin user (default None)
- Format placeholders:
{unseen}sum of numbers of unread feed elements
- Color options:
color_new_itemstext color when there is new items (default color_good)color_errortext color when there is an error (default color_bad)
- Requires:
requestspython module from pypi https://pypi.python.org/pypi/requests
author raspbeguy
rt¶
Display number of ongoing tickets from RT queues.
- Configuration parameters:
cache_timeouthow often we refresh this module in seconds (default 300)dbdatabase to use (default ‘’)formatsee placeholders below (default ‘general: {General}’)hostdatabase host to connect to (default ‘’)passwordlogin password (default ‘’)threshold_criticalset bad color above this threshold (default 20)threshold_warningset degraded color above this threshold (default 10)timeouttimeout for database connection (default 5)userlogin user (default ‘’)
- Format placeholders:
{YOUR_QUEUE_NAME}number of ongoing RT tickets (open+new+stalled)
- Color options:
color_badExceeded threshold_criticalcolor_degradedExceeded threshold_warning
- Requires:
- PyMySQL: https://pypi.python.org/pypi/PyMySQL or MySQL-python: http://pypi.python.org/pypi/MySQL-python
It features thresholds to colorize the output and forces a low timeout to limit the impact of a server connectivity problem on your i3bar freshness.
author ultrabug
scratchpad_async¶
Display number of windows and urgency hints asynchronously.
- Configuration parameters:
always_showalways display the format (default False)formatdisplay format for this module (default “{counter} ⌫”)
- Format placeholders:
{counter}number of scratchpad windows
- Requires:
author cornerman
license BSD
scratchpad_counter¶
Display number of windows in scratchpad.
- Configuration parameters:
cache_timeoutHow often we refresh this module in seconds (default 5)formatFormat of indicator (default ‘{counter} ⌫’)hide_when_noneHide indicator when there is no windows (default False)
- Format placeholders:
{counter}number of scratchpad windows
author shadowprince
license Eclipse Public License
screenshot¶
Take screenshots and upload them to a given server.
Display a ‘SHOT’ button in your i3bar allowing you to take a screenshot and directly send (if wanted) the file to your online server. When the screenshot has been taken, ‘SHOT’ is replaced by the file_name.
By default, this modules uses the ‘gnome-screenshot’ program to take the screenshot,
but this can be configured with the screenshot_command configuration parameter.
- Configuration parameters:
cache_timeouthow often to update in seconds (default 5)file_lengthgenerated file_name length (default 4)pushTrue/False if you want to push your screenshot to your server (default True)save_pathDirectory where to store your screenshots. (default ‘~/Pictures/’)screenshot_commandthe command used to generate the screenshot (default ‘gnome-screenshot -f’)upload_paththe remote path where to push the screenshot (default ‘/files’)upload_serveryour server address (default ‘puzzledge.org’)upload_useryour ssh user (default ‘erol’)
- Color options:
color_goodDisplayed color
author Amaury Brisou <py3status AT puzzledge.org>
selinux¶
Display SELinux state.
- This module displays the state of SELinux on your machine:
- Enforcing (good), Permissive (degraded), or Disabled (bad).
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 10)formatdisplay format for this module (default ‘SELinux: {state}’)state_disabledshow when no SELinux policy is loaded. (default ‘disabled’)state_enforcingshow when SELinux security policy is enforced. (default ‘enforcing’)state_permissiveshow when SELinux prints warnings instead of enforcing. (default ‘permissive’)
- Format placeholders:
{state}SELinux state
- Color options:
color_badEnforcingcolor_degradedPermissivecolor_goodDisabled
- Requires:
libselinux-pythonSELinux python bindings for libselinux
author bstinsonmhk
license BSD
spaceapi¶
Display status of a given hackerspace.
- Configuration parameters:
button_urlmouse button to open URL sent in space’s API (default 3)cache_timeoutrefresh interval for this module (default 60)formatdisplay format for this module (default ‘{state}[ {lastchanged}]’)format_lastchangeddisplay format for time (default ‘since %H:%M’)state_closedshow when hackerspace is closed (default ‘closed’)state_openshow when hackerspace is open (default ‘open’)urlspecify JSON URL of a hackerspace to retrieve from (default ‘http://status.chaospott.de/status.json’)
- Format placeholders:
{state}Hackerspace state{lastchanged}Time
- format_lastchanged conversion:
- ‘%’ Strftime characters to be translated
- Color options:
color_closedSpace closed, defaults to color_badcolor_openSpace open, defaults to color_good
author timmszigat
license WTFPL <http://www.wtfpl.net/txt/copying/>
spotify¶
Display song currently playing in Spotify.
- Configuration parameters:
cache_timeouthow often to update the bar (default 5)formatsee placeholders below (default ‘{artist} : {title}’)format_downdefine output if spotify is not running (default ‘Spotify not running’)format_stoppeddefine output if spotify is not playing (default ‘Spotify stopped’)sanitize_titleswhether to remove meta data from album/track title (default True)sanitize_wordswhich meta data to remove (default [‘bonus’, ‘demo’, ‘edit’, ‘explicit’, ‘extended’, ‘feat’, ‘mono’, ‘remaster’, ‘stereo’, ‘version’])
- Format placeholders:
{album}album name{artist}artiste name (first one){time}time duration of the song{title}name of the song
- Color options:
color_offlineSpotify is not running, defaults to color_badcolor_pausedSong is stopped or paused, defaults to color_degradedcolor_playingSong is playing, defaults to color_good
i3status.conf example:
spotify {
format = "{title} by {artist} -> {time}"
format_down = "no Spotify"
}
- Requires:
- spotify (>=1.0.27.71.g0a26e3b2)
author Pierre Guilbert, Jimmy Garpehäll, sondrele, Andrwe
static_string¶
Display static text.
- Configuration parameters:
formatdisplay format for this module (default ‘Hello, world!’)
author frimdo ztracenastopa@centrum.cz
sysdata¶
Display system RAM, SWAP and CPU utilization.
- Configuration parameters:
cache_timeouthow often we refresh this module in seconds (default 10)formatoutput format string (default ‘[?color=cpu CPU: {cpu_usage}%], ‘ ‘[?color=mem Mem: {mem_used}/{mem_total} GB ({mem_used_percent}%)]’)mem_unitthe unit of memory to use in report, case insensitive. [‘dynamic’, ‘KiB’, ‘MiB’, ‘GiB’] (default ‘GiB’)swap_unitthe unit of swap to use in report, case insensitive. [‘dynamic’, ‘KiB’, ‘MiB’, ‘GiB’] (default ‘GiB’)temp_unitunit used for measuring the temperature (‘C’, ‘F’ or ‘K’) (default ‘°C’)thresholdsthresholds to use for color changes (default [(0, “good”), (40, “degraded”), (75, “bad”)])zonethermal zone to use. If None try to guess CPU temperature (default None)
- Format placeholders:
{cpu_temp}cpu temperature{cpu_usage}cpu usage percentage{load1}load average over the last minute{load5}load average over the five minutes{load15}load average over the fifteen minutes{mem_total}total memory{mem_unit}unit for memory{mem_used}used memory{mem_used_percent}used memory percentage{swap_total}total swap{swap_unit}unit for swap{swap_used}used swap{swap_used_percent}used swap percentage{temp_unit}temperature unit
- Color thresholds:
cpuchange color based on the value of cpu_usagemax_cpu_memchange the color based on the max value of cpu_usage and mem_used_percentloadchange color based on the value of load1memchange color based on the value of mem_used_percentswapchange color based on the value of swap_used_percenttempchange color based on the value of cpu_temp
NOTE: If using the {cpu_temp} option, the sensors command should
be available, provided by the lm-sensors or lm_sensors package.
author Shahin Azad <ishahinism at Gmail>, shrimpza, guiniol
systemd¶
Check systemd unit status.
Check the status of a systemd unit.
- Configuration parameters:
cache_timeoutHow often we refresh this module in seconds (default 5)formatFormat for module output (default “{unit}: {status}”)unitName of the unit (default “dbus.service”)
- Format of status string placeholders:
{unit}name of the unit{status}‘active’, ‘inactive’ or ‘not-found’
- Color options:
color_goodUnit activecolor_badUnit inactivecolor_degradedUnit not found
Example:
# Check status of vpn service
# Start with left click
# Stop with right click
systemd vpn {
unit = 'vpn.service'
on_click 1 = "exec sudo systemctl start vpn"
on_click 3 = "exec sudo systemctl stop vpn"
format = '{unit} is {status}'
}
- Requires:
pydbuspython lib for dbus
author Adrian Lopez <adrianlzt@gmail.com>
license BSD
taskwarrior¶
Display tasks currently running in taskwarrior.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 5)formatdisplay format for this module (default ‘{task}’)
- Format placeholders:
{task}active tasks
- Requires
- task: https://taskwarrior.org/download/
author James Smith http://jazmit.github.io/
license BSD
timer¶
A simple countdown timer.
This is a very basic countdown timer. You can change the timer length as well as pausing, restarting and resetting it. Currently this is more of a demo of a composite.
Each part of the timer can be changed independently hours, minutes, seconds using mouse buttons 4 and 5 (scroll wheel). Button 1 starts/pauses the countdown. Button 2 resets timer.
- Configuration parameters:
formatdisplay format for this module (default ‘Timer {timer}’)soundplay sound file path when the timer ends (default None)timenumber of seconds to start countdown with (default 60)
- Format placeholders:
{timer}display hours:minutes:seconds
author tobes
tor_rate¶
Display the current transfer rates of a tor instance
- Configuration parameters:
cache_timeoutAn integer specifying the cache life-time of the modules output in seconds (default 2)control_addressThe address on which the Tor daemon listens for control connections (default “127.0.0.1”)control_passwordThe password to use for the Tor control connection (default None)control_portThe port on which the Tor daemon listens for control connections (default 9051)formatA string describing the output format for the module (default “↑ {up} ↓ {down}”)format_valueA string describing how to format the transfer rates (default “[?min_length=12 {rate:.1f} {unit}]”)rate_unitThe unit to use for the transfer rates (default “B/s”)si_unitsA boolean value selecting whether or not to use SI units (default False)
- Format placeholders:
{down}The incoming transfer rate{up}The outgoing transfer rate
- format_value placeholders:
{rate}The current transfer-rate’s value{unit}The current transfer-rate’s unit
- Requires:
stempython module from pypi https://pypi.python.org/pypi/stem
Example:
tor_rate {
cache_timeout = 10
format = "IN: {down} | OUT: {up}"
control_port = 1337
control_password = "TertiaryAdjunctOfUnimatrix01"
si_units = True
}
order += "tor_rate"
author Felix Morgner <felix.morgner@gmail.com>
license 3-clause-BSD
twitch_streaming¶
Display status on a given Twitch streamer.
Checks if a streamer is online using the Twitch Kraken API to see if a channel is currently streaming or not.
- Configuration parameters:
cache_timeouthow often we refresh this module in seconds (default 10)formatDisplay format when online (default “{stream_name} is live!”)format_invalidDisplay format when streamer does not exist (default “{stream_name} does not exist!”)format_offlineDisplay format when offline (default “{stream_name} is offline.”)stream_namename of streamer(twitch.tv/<stream_name>) (default None)
- Format placeholders:
{stream_name}name of the streamer
- Color options:
color_badStream offline or errorcolor_goodStream is live
author Alex Caswell horatioesf@virginmedia.com
license BSD
uname¶
Display system information from uname.
- Configuration parameters:
formatsee placeholders below (default ‘{system} {release} {machine}’)
- Format placeholders:
{system}system/OS name, e.g. ‘Linux’, ‘Windows’, or ‘Java’{node}computer’s network name (may not be fully qualified!){release}system’s release, e.g. ‘2.2.0’ or ‘NT’{version}system’s release version, e.g. ‘#3 on degas’{machine}machine type, e.g. ‘x86_64’{processor}the (real) processor name, e.g. ‘amdk6’
author ultrabug (inspired by ndalliard)
uptime¶
Display system uptime.
- Configuration parameters:
formatdisplay format for this module (default ‘up {days} days {hours} hours {minutes} minutes’)
- Format placeholders:
{decades}decades{years}years{weeks}weeks{days}days{hours}hours{minutes}minutes{seconds}seconds
- Note: If you don’t use one of the placeholders, the value will be carried over
- to the next unit. For example, given an uptime of 1h 30min: If you use {minutes} as your only placeholder, then its value will be 90. If you use {hours} and {minutes}, then its values will be 1 and 30, respectively.
Examples:
# show uptime without zeroes
uptime {
format = 'up [\?if=weeks {weeks} weeks ][\?if=days {days} days ]
[\?if=hours {hours} hours ][\?if=minutes {minutes} minutes ]'
}
# show uptime in multiple formats using group module
group uptime {
format = "up {output}"
uptime {
format = '[\?if=weeks {weeks} weeks ][\?if=days {days} days ]
[\?if=hours {hours} hours ][\?if=minutes {minutes} minutes]'
}
uptime {
format = '[\?if=weeks {weeks}w ][\?if=days {days}d ]
[\?if=hours {hours}h ][\?if=minutes {minutes}m]'
}
uptime {
format = '[\?if=days {days}, ][\?if=hours {hours}:]
[\?if=minutes {minutes:02d}]'
}
}
author Alexis “Horgix” Chotard <alexis.horgix.chotard@gmail.com>, tobes, lasers
license BSD
vnstat¶
Display vnstat statistics.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 180)coloringsee coloring rules below (default {})formatdisplay format for this module (default ‘{total}’)initial_multiset to 1 to disable first bytes (default 1024)left_align(default 0)multiplier_topif value is greater, divide it with unit_multi and get next unit from units (default 1024)precision(default 1)statistics_typed for daily, m for monthly (default ‘d’)unit_multivalue to divide if rate is greater than multiplier_top (default 1024)
- Coloring rules:
- If value is more than dict key, the string will change color based on the specified values in the coloring section.
Example:
coloring = {
800: "#dddd00", # over 800: yellow
900: "#dd0000", # over 900: red
}
- Format placeholders:
{down}download{total}total{up}upload
- Requires:
vnstata console-based network traffic monitor
author shadowprince
license Eclipse Public License
volume_status¶
Volume control.
Expands on the standard i3status volume module by adding color and percentage threshold settings. Volume up/down and Toggle mute via mouse clicks can be easily added see example.
- Configuration parameters:
button_downButton to click to decrease volume. Setting to 0 disables. (default 0)button_muteButton to click to toggle mute. Setting to 0 disables. (default 0)button_upButton to click to increase volume. Setting to 0 disables. (default 0)cache_timeouthow often we refresh this module in seconds. (default 10)channelchannel to track. Default value is backend dependent. (default None)commandChoose between “amixer”, “pamixer” or “pactl”. If None, try to guess based on available commands. (default None)deviceDevice to use. Defaults value is backend dependent (default None)formatFormat of the output. (default ‘[?if=is_input 😮|♪]: {percentage}%’)format_mutedFormat of the output when the volume is muted. (default ‘[?if=is_input 😶|♪]: muted’)is_inputIs this an input device or an output device? (default False)max_volumeAllow the volume to be increased past 100% if available. pactl supports this (default 120)thresholdsThreshold for percent volume. (default [(0, ‘bad’), (20, ‘degraded’), (50, ‘good’)])volume_deltaPercentage amount that the volume is increased or decreased by when volume buttons pressed. (default 5)
- Format placeholders:
{percentage}Percentage volume
- Color options:
color_mutedVolume is muted, if not supplied color_bad is used if set toNonethen the threshold color will be used.
Example:
# Add mouse clicks to change volume
# Set thresholds to rainbow colors
volume_status {
button_up = 4
button_down = 5
button_mute = 2
thresholds = [
(0, "#FF0000"),
(10, "#E2571E"),
(20, "#FF7F00"),
(30, "#FFFF00"),
(40, "#00FF00"),
(50, "#96BF33"),
(60, "#0000FF"),
(70, "#4B0082"),
(80, "#8B00FF"),
(90, "#FFFFFF")
]
}
- Requires:
alsa-utilsalsa backend (tested with alsa-utils 1.0.29-1)pamixerpulseaudio backend
- NOTE:
- If you are changing volume state by external scripts etc and want to refresh the module quicker than the i3status interval, send a USR1 signal to py3status in the keybinding. Example: killall -s USR1 py3status
author <Jan T> <jans.tuomi@gmail.com>
license BSD
vpn_status¶
Drop-in replacement for i3status run_watch VPN module.
Expands on the i3status module by displaying the name of the connected vpn using pydbus. Asynchronously updates on dbus signals unless check_pid is True.
- Configuration parameters:
cache_timeoutHow often to refresh in seconds when check_pid is True. (default 10)check_pidIf True, act just like the default i3status module. (default False)formatFormat of the output. (default ‘VPN: {name}|VPN: no’)pidfileSame as i3status.conf pidfile, checked when check_pid is True. (default ‘/sys/class/net/vpn0/dev_id’)
- Format placeholders:
{name}The name and/or status of the VPN.
- Color options:
color_badVPN connectedcolor_goodVPN down
- Requires:
pydbusWhich further requires PyGi. Check your distribution’s repositories.
author Nathan Smith <nathan AT praisetopia.org>
weather_yahoo¶
Display Yahoo! Weather forecast.
Based on Yahoo! Weather. forecast, thanks guys ! http://developer.yahoo.com/weather/
- Find your woeid using:
- http://woeid.rosselliot.co.nz/
- Configuration parameters:
cache_timeouthow often to check for new forecasts (default 7200)forecast_dayshow many forecast days you want shown (default 3)forecast_include_todayshow today’s forecast. Note that{today}informatshows the current conditions, while this variable shows today’s forecast. (default False)forecast_text_separatorseparator between forecast entries. (default ‘ ‘)formatuses 2 placeholdersforecast_text_separator(default ‘{today} {forecasts}’)format_forecastformat of a forecast item (default ‘{icon}’)format_todayformat for today{today}in format example: format = “Now: {icon}{temp}°{units} {text}” output: Now: ☂-4°C Light Rain/Windy (default ‘{icon}’)icon_cloudcloud icon, (default ‘☁’)icon_defaultunknown weather icon, (default ‘?’)icon_rainrain icon, (default ‘☂’)icon_snowsnow icon, (default ‘☃’)icon_sunsun icon, (default ‘☀’)request_timeoutcheck timeout (default 10)unitsCelsius (C) or Fahrenheit (F) (default ‘c’)woeidYahoo woeid (extended location) (default None)
- Format placeholders:
{today}text generated byformat_today{forecasts}text generated byformat_forecast, separated by
- Forcast placeholders:
{icon}Icon representing weather{low}low temperature{high}high temperature{units}units ‘C’ or ‘F’{text}text description of forecats
The WOEID in this example is for Paris, France => 615702
weather_yahoo {
woeid = 615702
format_today = "Now: {icon}{temp}°{units} {text}"
forecast_days = 5
}
author ultrabug, rail
whatismyip¶
Display public IP address and online status.
- Configuration parameters:
button_refreshmouse button to refresh this module (default 2)button_togglemouse button to toggle between states (default 1)cache_timeouthow often we refresh this module in seconds (default 30)expecteddefine expected values for format placeholders, and usecolor_degradedto show the output of this module if any of them does not match the actual value. This should be a dict eg {‘country’: ‘France’} (default None)formatavailable placeholders are {ip} and {country}, as well as any other key in JSON fetched fromurl_geo(default ‘{ip}’)hide_when_offlinehide the module output when offline (default False)icon_offwhat to display when offline (default ‘■’)icon_onwhat to display when online (default ‘●’)modedefault mode to display is ‘ip’ or ‘status’ (click to toggle) (default ‘ip’)negative_cache_timeouthow often to check again when offline (default 2)timeouthow long before deciding we’re offline (default 5)url_geoIP to check for geo location (must output json) (default ‘https://freegeoip.net/json/’)
- Format placeholders:
{icon}display the icon{country}display the country{ip}display current ip address any other key in JSON fetched fromurl_geo
- Color options:
color_badOfflinecolor_degradedOutput is unexpected (IP/country mismatch, etc.)color_goodOnline
author ultrabug
whoami¶
Display logged-in username.
- Configuration parameters:
formatdisplay format for whoami (default ‘{username}’)
- Format placeholders:
{username}display current username
- Inspired by i3 FAQ:
- https://faq.i3wm.org/question/1618/add-user-name-to-status-bar.1.html
author ultrabug
wifi¶
Display WiFi bit rate, quality, signal and SSID using iw.
- Configuration parameters:
bitrate_badBad bit rate in Mbit/s (default 26)bitrate_degradedDegraded bit rate in Mbit/s (default 53)blocksa string, where each character represents quality level (default “_▁▂▃▄▅▆▇█”)cache_timeoutUpdate interval in seconds (default 10)deviceWireless device name (default “wlan0”)down_colorOutput color when disconnected, possible values: “good”, “degraded”, “bad” (default “bad”)formatDisplay format for this module (default ‘W: {bitrate} {signal_percent} {ssid}|W: down’)round_bitrateIf true, bit rate is rounded to the nearest whole number (default True)signal_badBad signal strength in percent (default 29)signal_degradedDegraded signal strength in percent (default 49)use_sudoUse sudo to run iw, make sure iw requires some root rights without a password by adding a sudoers entry, eg… ‘<user> ALL=(ALL) NOPASSWD:/usr/bin/iw dev,/usr/bin/iw dev [a-z]* link’ (default False)
- Format placeholders:
{bitrate}Display bit rate{device}Display device name{icon}Character representing the quality based on bitrate, as defined by the ‘blocks’{ip}Display IP address{signal_dbm}Display signal in dBm{signal_percent}Display signal in percent{ssid}Display SSID
- Color options:
color_badSignal strength signal_bad or lowercolor_degradedSignal strength signal_degraded or lowercolor_goodSignal strength above signal_degraded
- Requires:
iwcli configuration utility for wireless devicesiponly for {ip}. may be part of iproute2: ip routing utilities
__Note: Some distributions eg Debian require iw to be run with privileges.
In this case you will need to use the use_sudo configuration parameter.__
author Markus Weimar <mail@markusweimar.de>
license BSD
window_title¶
Display window title.
Prints the name of focused window at frequent intervals.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 0.5)formatdisplay format for this module (default ‘{title}’)max_widthIf width of title is greater, shrink it and add ‘…’ (default 120)
author shadowprince
license Eclipse Public License
window_title_async¶
Display window title asynchronously.
Uses asynchronous update via i3 IPC events. Provides instant title update only when it required.
- Configuration parameters:
always_showdo not hide the title when it can be already visible (e.g. in tabbed layout). (default False)empty_titlestring that will be shown instead of the title when the title is hidden. (default “”)formatformat of the title, (default “{title}”)max_widthmaximum width of block (in symbols). If the title is longer thanmax_width, the title will be truncated tomax_width - 1first symbols with ellipsis appended. (default 120)
- Requires:
author Anon1234 https://github.com/Anon1234
license BSD
wwan_status¶
Display network and IP address for newer Huwei modems.
It is tested for Huawei E3276 (usb-id 12d1:1506) aka Telekom Speed Stick LTE III but may work on other devices, too.
- Configuration parameters:
baudrateThere should be no need to configure this, but feel free to experiment. (default 115200)cache_timeoutHow often we refresh this module in seconds. (default 5)consider_3G_degradedIf set to True, only 4G-networks will be considered ‘good’; 3G connections are shown as ‘degraded’, which is yellow by default. Mostly useful if you want to keep track of where there is a 4G connection. (default False)format_downWhat to display when the modem is not plugged in (default ‘WWAN: down’)format_errorWhat to display when modem can’t be accessed. (default ‘WWAN: {error}’)format_no_serviceWhat to display when the modem does not have a network connection. This allows to omit the (then meaningless) network generation. (default ‘WWAN: {status} {ip}’)format_upWhat to display upon regular connection (default ‘WWAN: {status} ({netgen}) {ip}’)interfaceThe default interface to obtain the IP address from. For wvdial this is most likely ppp0. For netctl it can be different. (default ‘ppp0’)modemThe device to send commands to. (default ‘/dev/ttyUSB1’)modem_timeoutThe timespan between querying the modem and collecting the response. (default 0.4)
- Color options:
color_badError or no connectioncolor_degradedLow generation connection eg 2Gcolor_goodGood connection
- Requires:
netifacespyserial
author Timo Kohorst timo@kohorst-online.com
PGP: B383 6AE6 6B46 5C45 E594 96AB 89D2 209D DBF3 2BB5
xrandr¶
Control screen layout.
- This modules allows you to handle your screens outputs directly from your bar!
- Detect and propose every possible screen combinations
- Switch between combinations using click events and mouse scroll
- Activate the screen or screen combination on a single click
- It will detect any newly connected or removed screen automatically
- For convenience, this module also proposes some added features:
- Dynamic parameters for POSITION and WORKSPACES assignment (see below)
- Automatic fallback to a given screen or screen combination when no more screen is available (handy for laptops)
- Automatically apply this screen combination on start: no need for xorg!
- Automatically move workspaces to screens when they are available
- Define your own subset of output combinations to use
- Configuration parameters:
cache_timeouthow often to (re)detect the outputs (default 10)fallbackwhen the current output layout is not available anymore, fallback to this layout if available. This is very handy if you have a laptop and switched to an external screen for presentation and want to automatically fallback to your laptop screen when you disconnect the external screen. (default True)fixed_widthshow output as fixed width (default True)force_on_startswitch to the given combination mode if available when the module starts (saves you from having to configure xorg) (default None)formatdisplay format for xrandr (default ‘{output}’)hide_if_single_combinationhide if only one combination is available (default False)icon_cloneicon used to display a ‘clone’ combination (default ‘=’)icon_extendicon used to display a ‘extend’ combination (default ‘+’)output_combinationsstring used to define your own subset of output combinations to use, instead of generating every possible combination automatically. Provide the values in the format that this module uses, splitting the combinations using ‘|’ character. The combinations will be rotated in the exact order as you listed them. When an output layout is not available any more, the configurations are automatically filtered out. Example: Assuming the default values foricon_cloneandicon_extendare used, and assuming you have two screens ‘eDP1’ and ‘DP1’, the following setup will reduce the number of output combinations from four (every possible one) down to two: output_combinations = “eDP1|eDP1+DP1” (default None)
- Dynamic configuration parameters:
- <OUTPUT>_pos: apply the given position to the OUTPUT Example: DP1_pos = “-2560x0” Example: DP1_pos = “above eDP1” Example: DP1_pos = “below eDP1” Example: DP1_pos = “left-of LVDS1” Example: DP1_pos = “right-of eDP1”
- <OUTPUT>_workspaces: comma separated list of workspaces to move to the given OUTPUT when it is activated Example: DP1_workspaces = “1,2,3”
- <OUTPUT>_rotate: rotate the output as told Example: DP1_rotate = “left”
- Color options:
color_badDisplayed layout unavailablecolor_degradedUsing a fallback layoutcolor_goodDisplayed layout active
Example config:
xrandr {
force_on_start = "eDP1+DP1"
DP1_pos = "left-of eDP1"
VGA_workspaces = "7"
}
author ultrabug
xrandr_rotate¶
Control screen rotation.
- Configuration parameters:
cache_timeouthow often to refresh this module. (default 10)formata string that formats the output, can include placeholders. (default ‘{icon}’)hide_if_disconnecteda boolean flag to hide icon whenscreenis disconnected. It has no effect unlessscreenoption is also configured. (default False)horizontal_icona character to represent horizontal rotation. (default ‘H’)horizontal_rotationa horizontal rotation for xrandr to use. Available options: ‘normal’ or ‘inverted’. (default ‘normal’)screendisplay output name to rotate, as detected by xrandr. If not provided, all enabled screens will be rotated. (default None)vertical_icona character to represent vertical rotation. (default ‘V’)vertical_rotationa vertical rotation for xrandr to use. Available options: ‘left’ or ‘right’. (default ‘left’)
- Format placeholders:
{icon}a rotation icon, specified byhorizontal_iconorvertical_icon.{screen}a screen name, specified byscreenoption or detected automatically if only one screen is connected, otherwise ‘ALL’.
- Color options:
color_degradedScreen is disconnectedcolor_goodDisplayed rotation is active
author Maxim Baz (https://github.com/maximbaz)
license BSD
xscreensaver¶
Control Xscreensaver.
This script is useful for people who let Xscreensaver manage DPMS settings. Xscreensaver has its own DPMS variables separate from xset. DPMS can be safely turned off in xset as long as Xscreensaver is running. Settings can be managed using “xscreensaver-demo”.
- Configuration parameters:
button_activatemouse button to activate Xscreensaver (default 3)button_togglemouse button to toggle Xscreensaver (default 1)cache_timeoutrefresh interval for this module (default 15)formatdisplay format for this module (default ‘{icon}’)icon_offshow when Xscreensaver is not running (default ‘XSCR’)icon_onshow when Xscreensaver is running (default ‘XSCR’)
- Format placeholders:
{icon}Xscreensaver icon
- Color options:
color_onEnabled, defaults to color_goodcolor_offDisabled, defaults to color_bad
author neutronst4r <c7420{at}posteo{dot}net>, lasers
xsel¶
Display X selection.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 0.5)commandthe clipboard command to run (default ‘xsel -o’)formatdisplay format for this module (default ‘{selection}’)max_sizestrip the selection to this value (default 15)symmetricshow beginning and end of the selection string with respect to configured max_size. (default True)
- Format placeholders:
{selection}output from clipboard command
- Requires:
xsela command-line program to retrieve/set the X selection
author Sublim3 umbsublime@gamil.com
license BSD
yandexdisk_status¶
Display Yandex.Disk status.
- Configuration parameters:
cache_timeoutrefresh interval for this module (default 10)formatdisplay format for this module (default ‘Yandex.Disk: {status}’)status_busyshow when Yandex.Disk is busy (default None)status_offshow when Yandex.Disk isn’t running (default ‘Not started’)status_onshow when Yandex.Disk is idling (default ‘Idle’)
- Format placeholders:
{status}Yandex.Disk status
- Color options:
color_badNot startedcolor_degradedIdlecolor_goodBusy
- Requires:
yandex-diskcommand line interface for Yandex.Disk
author Vladimir Potapev (github:vpotapev)
license BSD