i3status-rs(1) General Commands Manual i3status-rs(1) (NAME) i3status-rs - i3status Rust. (SYNOPSIS) i3status-rs [--never-pause] [-j|--threads] [-h|--help] [-V|--version] [CONFIG] (DESCRIPTION) i3status(1) Rust . i3status-rs <<>> ( ) JSON i3bar(1) sway-bar(5) . (OPTIONS) --never-pause i3 -j, --threads=BLOCKING_THREADS [: 2] (blocking threads) tokio -h, --help ( '-h') -V, --version [CONFIG] [: config.toml] TOML 1. : `/home/foo/i3rs-config.toml` 2. "custom_theme.toml" `$XDG_CONFIG_HOME/i3status-rust` 3. `$XDG_DATA_HOME/i3status-rust` 4. `/usr/share/i3status-rust` (BLOCKS) amd_gpu AMD (Configuration) ---------------------------------------------------------------------------------- device /sys/class/drm/ AMD . format " $icon $utilization " . . format_alt None format format_alt interval 5 ---------------------------------------------------------------------------------------------- icon - utilization % GPU vram_total VRAM vram_used VRAM vram_used_percents VRAM % / VRAM --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- toggle_format format format_alt [[block]] block = "amd_gpu" format = " $icon $utilization " format_alt = " $icon MEM: $vram_used_percents ($vram_used/$vram_total) " interval = 1 o 2 gpu backlight (backlight) X11 Wayland . inotify (interval) . DBus systemd-logind sysfs . (Root scaling) . 2.4 3.0 root_scaling . 1.0 () . : https://en.wikipedia.org/wiki/Lightness (Configuration) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- device (regex) /sys/class/backlight ( ). device /sys/class/backlight . format " $icon $brightness " . . missing_format " no backlight . devices " step_width 5 minimum 5 maximum 100 cycle [minimum, maximum] root_scaling 1.0 ( ) invert_icons false ddcci_sleep_multiplier https://www.ddcutil.com/performance_options/#option-sleep-multiplier 1.0 ddcutil ddcci_max_tries_write_read 10 ddcci ------------------------------------------------------------------------------------------- icon Icon - brightness Number % -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle Left brightness_up Wheel Up brightness_down Wheel Down [[block]] block = "backlight" device = "intel_backlight" : [[block]] block = "backlight" missing_format = "" calibright $XDG_CONFIG_HOME/calibright/config.toml . https://github.com/bim9262/calibright . $XDG_CONFIG_HOME/calibright/config.toml . D-Bus (D-Bus Fallback) systemd-logind i3status-rust sysfs . . udev . groups "video" . /etc/udev/rules.d/ backlight.rules: ACTION=="add", SUBSYSTEM=="backlight", GROUP="video", MODE="0664" video . . (Icons Used) o 2 backlight ( ) battery (Full Charging Discharging) / . (Configuration) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). T} -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- device sysfs/UPower: /sys/class/power_supply/ ( UPower "DisplayDevice" . DisplayDevice ). apc_ups: IPv4Address:port hostname:port sysfs: /sys/class/power_supply "BATx" "CMBx" . apc_ups: "localhost:3551". upower: DisplayDevice T} driver "sysfs" "apc_ups" "upower" "sysfs" T} model /sys/class/power_supply/.../model_name . . T} interval . driver = "sysfs" "apc_ups" . 10 T} format . . " $icon $percentage " T} full_format format " $icon " T} charging_format format format T} empty_format format " $icon " T} not_charging_format format . . " $icon " T} missing_format format . " $icon " T} info info 60 T} good good 60 T} warning warning 30 T} critical critical 15 T} full_threshold ( full_format) 95 T} empty_threshold 7.5 T} tab( ); lw(8.3n) lw(46.5n) lw(12.1n) lw(3.2n). T} -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- icon T} - percentage T} time_remaining () . () . T} - time () . () . T} - power T} time time_remaining . (EXAMPLES) : [[block]] block = "battery" format = " $icon $percentage " [[block]] block = "battery" format = " $percentage {$time_remaining.dur(hms:true, min_unit:m) |}" device = "DisplayDevice" driver = "upower" : [[block]] block = "battery" missing_format = "" o bat ( ) o bat_charging ( ) o bat_not_available bluetooth . D-Bus API Bluez . . . ( ) . : . bluez . (Configuration) --------------------------------------------------------------------------------------- mac MAC adapter_mac MAC None ( ) format " $icon $name{ $percentage|} " . . disconnected_format " $icon{ $name|} " . . battery_state 0..15 -> critical, 16..30 -> warning, 31..60 -> info, 61..100 -> good () . . ------------------------------------------------------------------------------------------------------------ icon - name - percentage % ( ) battery_icon ( - ) available - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- toggle . [[block]] block = "bluetooth" mac = "00:18:09:92:1B:BA" disconnected_format = "" format = " $icon " [block.battery_state] "0..20" = "critical" "21..70" = "warning" "71..100" = "good" " (Icons Used)" o 2 headphones "audio-card" "audio-headset" "audio-headphones" o 2 joystick "input-gaming" o 2 keyboard "input-keyboard" o 2 mouse "input-mouse" o 2 bluetooth calendar (Calendar) CalDav ICalendar . " (Configuration)" tab( ); lw(14.0n) lw(28.0n) lw(28.0n). T} ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- next_event_format . . " $icon $start.datetime(f:`%a %H:%M') $summary " T} ongoing_event_format . " $icon $summary (ends at $end.datetime(f:`%H:%M')) " T} no_events_format " $icon " T} redirect_format " $icon Check your web browser " T} fetch_interval 60 T} alternate_events_interval 10 T} events_within_hours 48 T} source [] T} warning_threshold 300 T} browser_cmd . HTML "xdg-open" T} tab( ); lw(14.0n) lw(28.0n) lw(28.0n). T} ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- url URL CalDav T} auth (unauthenticated basic oauth2) unauthenticated T} calendars . . [] T} : ------------------------------------------------------------------------------------ open_link HTML (EXAMPLES) (Unauthenticated) [[block]] block = "calendar" next_event_format = " $icon $start.datetime(f:'%a %H:%M') $summary " ongoing_event_format = " $icon $summary (ends at $end.datetime(f:'%H:%M')) " no_events_format = " $icon no events " fetch_interval = 30 alternate_events_interval = 10 events_within_hours = 48 warning_threshold = 600 browser_cmd = "firefox" [[block.source]] url = "https://caldav.example.com/calendar/" calendars = ["user/calendar"] [block.source.auth] type = "unauthenticated" (Basic Authentication) [[block]] block = "calendar" next_event_format = " $icon $start.datetime(f:'%a %H:%M') $summary " ongoing_event_format = " $icon $summary (ends at $end.datetime(f:'%H:%M')) " no_events_format = " $icon no events " fetch_interval = 30 alternate_events_interval = 10 events_within_hours = 48 warning_threshold = 600 browser_cmd = "firefox" [[block.source]] url = "https://caldav.example.com/calendar/" calendars = [ "Holidays" ] [block.source.auth] type = "basic" username = "your_username" password = "your_password" : username password TOML . ~/.config/i3status-rust/example_credentials.toml username = "my-username" password = "my-password" credentials_path: [block.source.auth] type = "basic" credentials_path = "~/.config/i3status-rust/example_credentials.toml" CalDav API API client_id client_secret : 1. Google Cloud Console : Google Cloud Console . 2. : "New Project" . "Create" . 3. CalDAV API: "APIs & Services" > "Library" . "CalDAV API" "Enable" . 4. OAuth consent screen: "APIs & Services" > "OAuth consent screen" . . 5. (Credentials): - "APIs & Services" > "Credentials" . - "Create Credentials" "OAuth 2.0 Client IDs" . - . - "Web application" . - redirect URI . http://localhost:8080. - "Create" client_id client_secret . 6. : OAuth 2.0 Client ID JSON client ID client secret . . [[block]] block = "calendar" next_event_format = " $icon $start.datetime(f:'%a %H:%M') $summary " ongoing_event_format = " $icon $summary (ends at $end.datetime(f:'%H:%M')) " no_events_format = " $icon no events " fetch_interval = 30 alternate_events_interval = 10 events_within_hours = 48 warning_threshold = 600 browser_cmd = "firefox" [[block.source]] url = "https://apidata.googleusercontent.com/caldav/v2/" calendars = ["primary"] [block.source.auth] type = "oauth2" client_id = "your_client_id" client_secret = "your_client_secret" auth_url = "https://accounts.google.com/o/oauth2/auth" token_url = "https://oauth2.googleapis.com/token" auth_token = "~/.config/i3status-rust/calendar.auth_token" redirect_port = 8080 scopes = ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.events"] : client_id client_secret TOML . ~/.config/i3status-rust/google_credentials.toml client_id = "my-client_id" client_secret = "my-client_secret" credentials_path: [block.source.auth] type = "oauth2" credentials_path = "~/.config/i3status-rust/google_credentials.toml" auth_url = "https://accounts.google.com/o/oauth2/auth" token_url = "https://oauth2.googleapis.com/token" auth_token = "~/.config/i3status-rust/calendar.auth_token" redirect_port = 8080 scopes = ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.events"] . : - $summary: - $description: - $url: (URL) - $location: - $start: - $end: (Icons Used) o calendar (cpu) (Configuration) ------------------------------------------------------------------------------------------- format " $icon $utilization " . . format_alt None format format_alt interval 5 info_cpu 30.0 info warning_cpu 60.0 warning critical_cpu 90.0 critical ------------------------------------------------------------------------------------------------------------ icon () Icon - utilization Number % utilization N- Number % barchart Text - frequency Number Hz ( ) frequency N- Number Hz ( ) max_frequency Number Hz boost Text - (turbo boost) ( ) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- toggle_format (Left) format format_alt [[block]] block = "cpu" interval = 1 format = " $icon $barchart $utilization " format_alt = " $icon $frequency{ $boost|} " info_cpu = 20 warning_cpu = 50 critical_cpu = 90 (Icons Used) o 2 cpu ( ) o 2 cpu_boost_on o 2 cpu_boost_off custom json JSON (schema) : {"icon": "...", "state": "...", "text": "...", "short_text": "..."} icon ( ""). state Idle Info Good Warning Critical ( Idle). short_text . (Configuration) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format "{ $icon|} $text.pango-str() " . . command None persistent false cycle None interval 10 ( "once" ) json JSON false . JSON . watch_files None . ~ . hide_when_empty false ( json) shell $SHELL sh ---------------------------------------------------------------------------------------------------- icon icon - JSON text text JSON short_text short_text JSON --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle : [[block]] block = "custom" command = ''' cat /sys/class/thermal/thermal_zone0/temp | awk '{printf("%.1f\n",$1/1000)}' ''' "ON" "OFF" : [[block]] block = "custom" cycle = ["echo ON", "echo OFF"] interval = 1 [[block.click]] button = "left" action = "cycle" JSON: [[block]] block = "custom" command = "echo '{\"icon\":\"weather_thunder\",\"state\":\"Critical\", \"text\": \"Danger!\"}'" json = true : [[block]] block = "custom" command = "uname -r" interval = "once" intel pkill -SIGRTMIN+4 i3status-rs : [[block]] block = "custom" command = ''' cat /sys/class/backlight/intel_backlight/brightness | awk '{print $1}' ''' signal = 4 interval = "once" : [[block]] block = "custom" command = "cat custom_status" watch_files = ["custom_status"] interval = "once" " (TODO):" o 2 shellexpand custom_dbus DBus DBus rs.i3status . rs.i3status.custom . busctl --user introspect rs.i3status / rs.i3status.custom: NAME TYPE SIGNATURE RESULT/VALUE FLAGS rs.i3status.custom interface - - - .SetIcon method s s - .SetState method s s - .SetText method ss s - tab( ); lw(14.0n) lw(28.0n) lw(28.0n). T} --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format . "{ $icon|}{ $text.pango-str()|} " T} ------------------------------------------------------------------------------------------------------- icon Icon - SetIcon . text Text - SetText short_text Text - SetText : [[block]] block = "custom_dbus" path = "/my_path" : ### 'hello' 'hi' busctl --user call rs.i3status /my_path rs.i3status.custom SetText ss hello hi ### 'music' busctl --user call rs.i3status /my_path rs.i3status.custom SetIcon s music ### 'good' busctl --user call rs.i3status /my_path rs.i3status.custom SetState s good dbus . I3RS_DBUS_NAME . 'top' rs.i3status.top ..SS (TODO) o disk_iostats / (I/O) (Configuration) ------------------------------------------------------------------------------------------- device ( /dev/ interval ) format " $icon $speed_read.eng(prefix:K) . $speed_write.eng(prefix:K) " . interval 2 missing_format format " x " ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- icon Icon - device Text - speed_read Number speed_write Number [[block]] block = "disk_iostats" device = "sda" format = " $icon $speed_write.eng(prefix:K) " Games /dev/disk/by-*/ [[block]] block = "disk_iostats" device = "disk/by-partlabel/Games" format = " $icon $speed_write.eng(prefix:K) " " (Icons Used)" o 2 disk_drive disk_space " (Configuration)" tab( ); lw(14.0n) lw(28.0n) lw(28.0n). ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- path "/" . ~ . interval 20 format " $icon $available " . . format_alt None format format_alt warning 20.0 (warning) alert 10.0 (critical) info_type "available" . "available" "free" "used" alert_unit None alert warning. . "B" "KB" "KiB" "MB" "MiB" "GB" "Gib" "TB" "TiB" backend "vfs" . "vfs" ( du(1)) "btrfs" --------------------------------------------------------------------------------------------------------------------------- icon Icon - path path Text - percentage Number % . info_type total Number Bytes used Number Bytes free Number Bytes available Number Bytes ( ) tab( ); lw(15.1n) lw(40.7n) lw(14.2n). --------------------------------------------------------------------------------------------------------------------------- toggle_format format format_alt [[block]] block = "disk_space" info_type = "available" alert_unit = "GB" alert = 10.0 warning = 15.0 format = " $icon $available " format_alt = " $icon $available / $total " : [[block]] block = "disk_space" [[block.click]] button = "right" update = true : [[block]] block = "disk_space" format = " $free.eng(range:..10e9) |" o disk_drive docker docker ------------------------------------------------------------------------------------- interval 5 . format " $icon $running.eng(w:1) " . . socket_path "/var/run/docker.sock" docker. ~ . ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- icon Icon - total Number - running Number - stopped Number - paused Number - images Number - [[block]] block = "docker" interval = 2 format = " $icon $running/$total " (Icons Used) o 2 docker external_ip IP (Configuration) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format " $ip $country_flag " . . interval 300 with_network_manager `true' true NetworkManager IP use_ipv4 `true' false IPv4 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ip IP - version IPv4 IPv6 - city "San Francisco" - region "California" - region_code "CA" California - country ( ISO 3166-1 alpha-2) - country_name - country_code ( ISO 3166-1 alpha-2) - country_code_iso3 ( ISO 3166-1 alpha-3) - country_capital - country_tld (TLD) - continent_code - in_eu "CA" (Flag) - postal / ZIP - latitude - (TODO: ) longitude - (TODO: ) timezone - utc_offset UTC ( ) +HHMM - -HHMM (HH MM ) country_calling_code ( ) - currency (ISO 4217) - currency_name - languages ( ISO 639 - ) country_area ( ) - country_population - timezone - org - asn (AS) - country_flag - () [[block]] block = "external_ip" format = " $ip $country_code " https://ipapi.co/json : https://ipapi.co/api/#complete-location5 IP : ) i3status-rs ) D-Bus ) . IP IP . : . . : https://www.babelstone.co.uk/Fonts/Flags.html focused_window / ( sway/i3) . : sway i3 wlroots. driver . tab( ); lw(14.0n) lw(28.0n) lw(28.0n). --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format . " . $title.str(max_w:21) |" driver . : sway_ipc - "auto" i3 sway wlr_toplevel_management - Wayland https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/blob/master/unstable/wlr-foreign-toplevel-management-unstable-v1.xml wlr-foreign-toplevel-management-unstable-v1 auto - . ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ title ( - ) marks - ( sway/i3 ) visible_marks - _ ( sway/i3 ) [[block]] block = "focused_window" [block.format] full = " $title.str(max_w:15) |" short = " $title.str(max_w:10) |" "Missing" : [[block]] block = "focused_window" format = " $title.str(0,21) | Missing " github GitHub GitHub . https://github.com/settings/tokens/new (personal access token) (scope) "notifications" I3RS_GITHUB_TOKEN token . ( ) : critical warning info good (Configuration) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ format " $icon $total.eng(w:1) " . . interval 30 token None GitHub "notifications" hide_if_total_is_zero false critical None (critical) warning None (warning) info None (info) good None (good) (placeholders) . ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- icon total assign (issue) author (thread) comment ci_activity (workflow run) GitHub Actions invitation manual ( issue pull request) mention (@mentioned) review_requested (review) pull request security_alert state_change ( issue pull request) subscribed (watch) team_mention (mention) [[block]] block = "github" format = " $icon $total.eng(w:1)|$mention.eng(w:1) " interval = 60 token = "..." [[block]] block = "github" token = "..." format = " $icon $total.eng(w:1) " info = ["total"] warning = ["mention","review_requested"] hide_if_total_is_zero = true " " o 2 github hueshift . . click_temp 6500K . (6500K) . tab( ); lw(14.0n) lw(28.0n) lw(28.0n). T} ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format . . " $temperature " T} step . 100 T} hue_shifter . T} max_temp . 10000 T} min_temp . 1000 T} click_temp . 6500 T} ---------------------------------------------------------------------------------------------- temperature - ---------------------------------------------- set_click_temp reset temperature_up temperature_down tab( ); l l. ---------------------------------------------- "redshift" X11 "sct" X11 "gammastep" X11 Wayland "wl_gammarelay" Wayland "wl_gammarelay_rs" Wayland "wlsunset" Wayland wl_gammarelay wl_gammarelay_rs . Wayland . (Example) [[block]] block = "hueshift" hue_shifter = "redshift" step = 50 click_temp = 3500 max_temp 10000K min_temp 1000K . step 500K . kdeconnect KDEConnect KDEConnect . bat_* 0 ..SS " (Configuration)" ------------------------------------------------------------------------------------------ device_id kdeconnect --list-devices. . format " $icon $name{ $bat_icon $bat_charge|}{ $notif_icon|} " . . format_disconnected format " $icon " format_missing format " $icon x " bat_info 60 info . bat_good 60 good . bat_warning 30 warning . bat_critical 15 critical . --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- icon - bat_icon - ( ) bat_charge % ( ) network_icon - ( ) network_type - ( ) network_strength % ( ) notif_icon - notif_count - ( ) name - KDEConnect ( ) "good" . [[block]] block = "kdeconnect" format = " $icon {$bat_icon $bat_charge |}{$notif_icon |}{$network_icon$network_strength $network_type |}" bat_good = 101 " (Icons Used)" o 2 bat ( ) o 2 bat_charging ( ) o 2 net_cellular ( ) o 2 notification o 2 phone o 2 phone_disconnected keyboard_layout : - xkbevent x11 - setxkbmap ( xkbevent) - xkbswitch ( xkbevent) - localebus D-Bus systemd org.freedesktop.locale1 - kbddbus https://github.com/qnikst/kbdd kbdd DBus - sway sway IPC setxkbmap xkbswitch v0.35.0 . . " (Configuration)" tab( ); lw(14.0n) lw(28.0n) lw(28.0n). --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- driver "xkbevent" "xkbevent" "setxkbmap" "xkbswitch" "localebus" "kbddbus" "sway" . interval 60 . "setxkbmap" . format " $layout " . . sway_kb_identifier swaymsg -t get_inputs . mappings layout (variant) None . interval v0.35.0 . ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- layout String variant String N/A D-Bus : [[block]] block = "keyboard_layout" driver = "localebus" kbdd : "English (US)" - {$layout ($variant)} block.mappings . format = " $layout ($variant) " dbus-monitor interface=ru.gentoo.kbdd (variant) [[block]] block = "keyboard_layout" driver = "kbddbus" [block.mappings] "English (US)" = "us" "Bulgarian (new phonetic)" = "bg" sway : [[block]] block = "keyboard_layout" driver = "sway" sway_kb_identifier = "1133:49706:Gaming_Keyboard_G110" sway : [[block]] block = "keyboard_layout" driver = "sway" format = " $layout " [block.mappings] "English (Workman)" = "EN" "Russian (N/A)" = "RU" xkb : [[block]] block = "keyboard_layout" driver = "xkbevent" load " (Configuration)" tab( ); lw(7.3n) lw(57.5n) lw(5.3n). ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format " $icon $1m.eng(w:4) " . . interval 3 info 0.3 info warning 0.6 warning critical 0.9 critical -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- icon Icon - 1m Number - 5m Number - 15m Number - [[block]] block = "load" format = " $icon 1min avg: $1m.eng(w:4) " interval = 1 o 2 cogs maildir . maildir . maildir : cargo build --release --features maildir tab( ); lw(14.0n) lw(28.0n) lw(28.0n). -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format " $icon $status " . . inboxes maildir . /glob ( ~ *). threshold_warning 1 (warning) . threshold_critical 10 (critical) . interval 5 . display_type maildir "new" : "new" "cur" "all". -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- icon - status - [[block]] block = "maildir" interval = 60 inboxes = ["~/mail/local", "~/maildir/account1/*"] threshold_warning = 1 threshold_critical = 10 display_type = "new" " " o 2 mail memory swap "" tab( ); lw(14.0n) lw(28.0n) lw(28.0n). -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format " $icon $mem_used.eng(prefix:Mi)/$mem_total.eng(prefix:Mi)($mem_used_percents.eng(w:2)) " "Memory". . format_alt None format format_alt interval 5 warning_mem 80.0 warning warning_swap swap 80.0 warning critical_mem 95.0 critical critical_swap swap 95.0 critical -------------------------------------------------------------------------------------------------------------------------- icon - icon_swap swap - mem_total (RAM) mem_free userspace ( mem_avail ) mem_free_percents mem_avail mem_avail_percents mem_total_used mem_total - mem_free mem_total_used_percents mem_used htop mem_used_percents buffers htop buffers_percent cached ( ZFS ARC) htop cached_percent swap_total swap swap_free swap swap_free_percents swap_used swap swap_used_percents zram_compressed zram zram_decompressed zram `zram_comp_ratio' - zram zswap_compressed zswap (>=Linux 5.19) zswap_decompressed zswap (>=Linux 5.19) zswap_decompressed_percents zswap (>=Linux 5.19) `zswap_comp_ratio' - zswap (>=Linux 5.19) tab( ); lw(15.1n) lw(40.7n) lw(14.2n). -------------------------------------------------------------------------------------------------------------------------- toggle_format Left format format_alt (EXAMPLES) [[block]] block = "memory" format = " $icon $mem_used_percents.eng(w:1) " format_alt = " $icon_swap $swap_free.eng(w:3,u:B,p:Mi)/$swap_total.eng(w:3,u:B,p:Mi)($swap_used_percents.eng(w:2)) " interval = 30 warning_mem = 70 critical_mem = 90 swap : [[block]] block = "memory" format = " $icon $swap_used.eng(range:1..) |" o memory_mem o memory_swap menu . - . - - . - . (Configuration) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- text . items "items". . [[block]] block = "menu" text = "\uf011" [[block.items]] display = " -> Sleep <-" cmd = "systemctl suspend" [[block.items]] display = " -> Power Off <-" cmd = "poweroff" confirm_msg = "Are you sure you want to power off?" [[block.items]] display = " -> Reboot <-" cmd = "reboot" confirm_msg = "Are you sure you want to reboot?" music / . https://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html MediaPlayer2 Interface . : o 2 Spotify o 2 VLC o 2 mpd ( https://github.com/eonpatapon/mpDris2 mpDris2 ) . (bus) MPRIS . . "player" (pin) . (Configuration) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format " $icon {$combo.str(max_w:25,rot_interval:0.5) . $play |}" . format_alt None format format_alt player () None MPRIS () . . busctl --user list | grep "org.mpris.MediaPlayer2." | cut -d' ' -f1 "org.mpris.MediaPlayer2." . interface_name_exclude ["playerctld"] (regex) MPRIS . separator " - " . seek_step_secs 1 / . . seek_forward_step_secs seek_step_secs . . seek_backward_step_secs seek_step_secs . . volume_step 5 / . . : icon . . ---------------------------------------------------------------------------------------- icon artist title url (URL) combo "$artist[sep]$title" "$artist" "$title" "$url" . [sep] separator . player ( MPRIS ) avail cur play / next prev volume_icon . . volume . . tab( ); l l. ---------------------------------------------------------------------------------------- play_pause_btn $play next_btn $next prev_btn $prev -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- play_pause play_pause_btn next next_btn prev prev_btn next_player seek_forward seek_backward volume_up - volume_down - toggle_format Spotify play next : [[block]] block = "music" format = " $icon {$combo.str(max_w:20) $play $next |}" player = "spotify" "mpd" "kdeconnect" : [[block]] block = "music" format = " $icon {$combo.str(max_w:20) $play $next |}" interface_name_exclude = [".*kdeconnect.*", "mpd"] : [[block]] block = "music" format = " $icon {$combo.str(max_w:20,rot_interval:0.5) $play $next |}" interface_name_exclude = [".*kdeconnect.*", "mpd"] / : [[block]] block = "music" format = " format 1 " format_alt = " format 2 " [[block.click]] button = "left" action = "play_pause" [[block.click]] button = "middle" widget = "." action = "toggle_format" () forward back (seek): [[block]] block = "music" format = " $icon $volume_icon $combo $play $next| " seek_step_secs = 10 [[block.click]] button = "up" action = "volume_up" [[block.click]] button = "down" action = "volume_down" [[block.click]] button = "forward" action = "seek_forward" [[block.click]] button = "back" action = "seek_backward" " (Icons Used)" o 2 music o 2 music_next o 2 music_play o 2 music_prev o 2 volume_muted o 2 volume ( ).SS net sysfs netlink . (Configuration) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). T} -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- device ( /sys/class/net/ ). regex . interval T} interval 2 T} format . . " $icon ^icon_net_down $speed_down.eng(prefix:K) ^icon_net_up $speed_up.eng(prefix:K) " T} format_alt format format_alt None T} inactive_format format " $icon Down " T} missing_format format " x " T} ------------------------------------------------------------------------------------ toggle_format format format_alt (Left) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- icon - speed_down speed_up graph_down - graph_up - device - ssid SSID - ( WiFi) frequency WiFi (Hz) signal_strength WiFi % bitrate WiFi ip IPv4 - ipv6 IPv6 - nameserver (Nameserver) - WiFi [[block]] block = "net" format = " $icon {$signal_strength $ssid $frequency|Wired connection} via $device " [[block]] block = "net" device = "^wlo0$" o 2 net_loopback o 2 net_vpn o 2 net_wired o 2 net_wireless ( ) o 2 net_up o 2 net_down notify / . (Configuration) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- driver "dunst" . : "dunst" "swaync" format " $icon " . . --------------------------------------------------------------------------------------------------- icon Icon - notification_count[1] Number - ( 0 ) history_count[2] Number - ( 0 ) paused Flag - ------------------------------------------- toggle_paused Left show - show_all - show show_all SwayNC ..SS paused [[block]] block = "notify" format = " $icon {$paused{Off}|On} " notification_count [[block]] block = "notify" format = " $icon {($notification_count.eng(w:1)) |}" [[block]] block = "notify" driver = "swaync" [[block.click]] button = "left" action = "show" [[block.click]] button = "right" action = "toggle_paused" o bell o bell-slash notmuch notmuch notmuch . notmuch $HOME/.mail . notmuch : cargo build --release --features notmuch ----------------------------------------------------------------------------------------- format " $icon $count " . . maildir ~/.mail notmuch. ~ . query "" . threshold_critical 99999 critical . threshold_warning 99999 warning . threshold_good 99999 good . threshold_info 99999 info . interval 10 . ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ icon - count - [[block]] block = "notmuch" query = "tag:alert and not tag:trash" threshold_warning = 1 threshold_critical = 10 [[block.click]] button = "left" update = true (Icons Used) o 2 mail nvidia_gpu NVidia show_temperature . "temperature" . "fan speed" . () . nvidia-smi nvidia_settings . (Configuration) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ gpu_id GPU . 0 format " $icon $utilization $memory $temperature . " . interval 1 . idle 50 idle good 70 good info 75 info warning 80 warning ------------------------------------------------------- icon - name - utilization memory temperature fan_speed clocks power -------------------------------------------------- mem_btn $memory fan_btn $fan_speed tab( ); l l. -------------------------------------------------- toggle_mem_total mem_btn toggle_fan_controlled fan_btn fan_speed_up fan_btn fan_speed_down fan_btn (Example) [[block]] block = "nvidia_gpu" interval = 1 format = " $icon GT 1030 $utilization $temperature $clocks " (Icons Used) o gpu (TODO) o mappings keyboard_layout GPU (packages) apt pacman . : - apk Alpine Linux - apt Debian/Ubuntu - aur Arch - brew Homebrew - dnf Fedora - flatpak Flatpak - pacman Arch - snap Snap - xbps Void Linux - zypper openSUSE (Configuration) ------------------------------------------------------------------------------------------------------ interval 600 . package_manager format $total format " $icon $total.eng(w:1) " . . format_singular format " $icon $total.eng(w:1) " . format_up_to_date format " $icon $total.eng(w:1) " . warning_updates_regex None (warning) . critical_updates_regex None (critical) . ignore_updates_regex None . ignore_phased_updates false . ( Debian/Ubuntu) aur_command AUR $aur pacman . : yay -Qua ( Arch) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- icon - apk - Alpine Linux apt - Debian/Ubuntu aur - Arch brew - Homebrew dnf - Fedora flatpak - Flatpak pacman - Arch snap - Snap xbps - Void Linux zypper - openSUSE total - Apt apt (root) i3status-rust /tmp/i3rs-apt/ . apt - issue . : APT_CONFIG=/tmp/i3rs-apt/apt.conf apt list --upgradable . Pacman fakeroot ( pacman ). : fakeroot pacman -Qu --dbpath /tmp/checkup-db-i3statusrs-$USER/ . CHECKUPDATES_DB . : pikaur (hang) https://github.com/actionless/pikaur/issues/595 . AUR . Pacman (Pacman hook) : Arch Linux pacman i3status-rs pacman . signal = 1 ( 1 ): [[block]] block = "packages" signal = 1 /etc/pacman.d/hooks/i3status-rust.hook : [Trigger] Operation = Upgrade Type = Package Target = * [Action] When = PostTransaction Exec = /usr/bin/pkill -SIGRTMIN+1 i3status-rs (Example) Apk: [[block]] block = "packages" package_manager = ["apk"] interval = 1800 error_interval = 300 max_retries = 5 format = " $icon $apk.eng(w:1) updates available " format_singular = " $icon One update available " format_up_to_date = " $icon system up to date " [[block.click]] ### dmenu . dmenu . button = "left" cmd = "apk --no-cache --upgradable list | dmenu -l 10" Apt: [[block]] block = "packages" interval = 1800 error_interval = 300 max_retries = 5 package_manager = ["apt"] format = " $icon $apt updates available" format_singular = " $icon One update available " format_up_to_date = " $icon system up to date " [[block.click]] ### dmenu . dmenu . button = "left" cmd = "APT_CONFIG=/tmp/i3rs-apt/apt.conf apt list --upgradable | tail -n +2 | rofi -dmenu" [[block.click]] ### button = "right" update = true Brew: [[block]] block = "packages" package_manager = ["brew"] interval = 1800 error_interval = 300 max_retries = 5 format = " $icon $brew.eng(w:1) updates available " format_singular = " $icon One update available " format_up_to_date = " $icon system up to date " [[block.click]] ### dmenu . dmenu . button = "left" cmd = "brew outdated | dmenu -l 10" Dnf: [[block]] block = "packages" package_manager = ["dnf"] interval = 1800 error_interval = 300 max_retries = 5 format = " $icon $dnf.eng(w:1) updates available " format_singular = " $icon One update available " format_up_to_date = " $icon system up to date " [[block.click]] ### dmenu . dmenu . button = "left" cmd = "dnf list -q --upgrades | tail -n +2 | rofi -dmenu" Flatpak: [[block]] block = "packages" package_manager = ["flatpak"] interval = 1800 error_interval = 300 max_retries = 5 format = " $icon $flatpak.eng(w:1) updates available " format_singular = " $icon One update available " format_up_to_date = " $icon system up to date " [[block.click]] ### dmenu . dmenu . button = "left" cmd = "flatpak remote-ls --updates --columns=ref | rofi -dmenu" Pacman: [[block]] block = "packages" package_manager = ["pacman"] interval = 600 error_interval = 300 max_retries = 5 format = " $icon $pacman updates available " format_singular = " $icon $pacman update available " format_up_to_date = " $icon system up to date " [[block.click]] ### . wofi . button = "left" cmd = "fakeroot pacman -Qu --dbpath /tmp/checkup-db-i3statusrs-$USER/ | wofi --show dmenu" [[block.click]] ### button = "right" update = true Pacman AUR: [[block]] block = "packages" package_manager = ["pacman", "aur"] interval = 600 error_interval = 300 max_retries = 5 format = " $icon $pacman + $aur = $total updates available " format_singular = " $icon $total update available " format_up_to_date = " $icon system up to date " ### aur_command ( echo -ne "update\n") aur_command = "yay -Qua" Snap: [[block]] block = "packages" package_manager = ["snap"] interval = 1800 error_interval = 300 max_retries = 5 format = " $icon $snap.eng(w:1) updates available " format_singular = " $icon One update available " format_up_to_date = " $icon system up to date " [[block.click]] ### dmenu . dmenu . button = "left" cmd = "snap refresh --list | dmenu -l 10" Xbps: [[block]] block = "packages" package_manager = ["xbps"] interval = 1800 error_interval = 300 max_retries = 5 format = " $icon $xbps.eng(w:1) updates available " format_singular = " $icon One update available " format_up_to_date = " $icon system up to date " [[block.click]] ### dmenu . dmenu . button = "left" cmd = "xbps-install -Mun | dmenu -l 10" Zypper: [[block]] block = "packages" package_manager = ["zypper"] interval = 1800 error_interval = 300 max_retries = 5 format = " $icon $zypper.eng(w:1) updates available " format_singular = " $icon One update available " format_up_to_date = " $icon system up to date " [[block.click]] ### dmenu . dmenu . button = "left" cmd = "zypper -q list-updates | tail -n +3 | rofi -dmenu -window-title 'Upgradable packages:'" : (1800 ): [[block]] block = "packages" package_manager = ["apk", "apt", "aur", "brew", "dnf", "flatpak", "pacman", "snap", "xbps", "zypper"] interval = 1800 error_interval = 300 max_retries = 5 format = " $icon $apk + $apt + $aur + $brew + $dnf + $flatpak + $pacman + $snap + $xbps + $zypper = $total updates available " format_singular = " $icon One update available " format_up_to_date = " $icon system up to date " ### linux ZFS ### . warning_updates_regex = "(linux|linux-lts|linux-zen)" ### ZFS ### . critical_updates_regex = "(zfs|zfs-lts)" " " o 2 update pomodoro https://en.wikipedia.org/wiki/Pomodoro_Technique .SS (Technique) : ) . ) ( ). ) . ) . ) (- ) . ) (- ) . (Configuration) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format " $icon{ $message|} " idle prompt notify pomodoro_format " $icon $status_icon{ $completed_pomodoros.tally()|} $time_remaining.duration(hms:true) (paused) " break_format " $icon $status_icon Break: $time_remaining.duration(hms:true) " message "Pomodoro over! Take a break!" break_message "Break over! Time to work!" notify_cmd None . {msg} message break_message . blocking_cmd notify_cmd false . . ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- icon Icon status_icon Icon pomodoro_format, break_format message Text format time_remaining Duration pomodoro_format, break_format ( ) completed_pomodoros Number pomodoro_format swaynag : [[block]] block = "pomodoro" notify_cmd = "swaynag -m '{msg}'" blocking_cmd = true notify-send : [[block]] block = "pomodoro" notify_cmd = "notify-send '{msg}'" blocking_cmd = false (Icons Used) o 2 pomodoro o 2 pomodoro_started o 2 pomodoro_stopped o 2 pomodoro_paused o 2 pomodoro_break privacy (Configuration) tab( ); lw(28.5n) lw(20.7n) lw(20.7n). ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- driver ( ). format "{ $icon_audio |}{ . $icon_audio_sink |}{ $icon_video |}{ $icon_webcam |}{ $icon_unknown |}" format_alt "{ $icon_audio . $info_audio |}{ $icon_audio_sink $info_audio_sink |}{ $icon_video $info_video |}{ $icon_webcam $info_webcam |}{ $icon_unknown $info_unknown |}" pipewire ( pipewire) ------------------------------------------------------------------------------------------------------------------------------------ name pipewire exclude_output [] : ["HD Pro Webcam C920"] exclude_input [] : ["openrgb"] display name : name description nickname tab( ); lw(9.3n) lw(18.7n) lw(23.3n) lw(18.7n). ------------------------------------------------------------------------------------------------------------------------------------ name vl4 exclude_device [] : ["/dev/video5"] exclude_consumer ["pipewire", "wireplumber"] --------------------------------------------------------------------------------------------------------------- icon_{audio,audio_sink,video,webcam,unknown} - info_{audio,audio_sink,video,webcam,unknown} - : ------------------------------------------------------------------------ audio ( ) audio_sink ( openrgb) video ( ) webcam unknown tab( ); lw(15.1n) lw(40.7n) lw(14.2n). T} ------------------------------------------------------------------------ toggle_format format format_alt T} (Example) [[block]] block = "privacy" [[block.driver]] name = "v4l" [[block.driver]] name = "pipewire" exclude_input = ["openrgb"] display = "nickname" (Icons Used) o microphone o volume o xrandr o webcam o unknown rofication rofication-daemon . (Configuration) ---------------------------------------------------------------------------------- interval 1 . format " $icon $num.eng(w:1) " . . socket_path "/tmp/rofi_notification_daemon" rofication. ~ . ------------------------------------------------------------------------------------------------------------------------------------------ icon - num - [[block]] block = "rofication" interval = 1 socket_path = "/tmp/rofi_notification_daemon" [[block.click]] button = "left" cmd = "rofication-gui" o 2 bell scratchpad scratchpad tab( ); lw(14.0n) lw(28.0n) lw(28.0n). ------------------------------------------------------------------------------------------------------------------------------------------ format $icon $count.eng(range:1..) | ---------------------------------------------------------------------------------------------------------------- icon - count - scratchpad [[block]] block = "scratchpad" o scratchpad service_status systemd ..SS " (Configuration)" -------------------------------------------------------------------------------------- driver init "systemd" . : "systemd" service user true false . active_format " $service active " . . inactive_format " $service inactive " . . active_state [State] [State::Idle] inactive_state [State] [State::Critical] ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ service - : [[block]] block = "service_status" service = "cups" active_format = " ^icon_tea " inactive_format = " no ^icon_tea " inactive_state : [[block]] block = "service_status" service = "shadow" active_format = "" inactive_format = " Integrity of password and group files failed " inactive_state = "Warning" sound ( PulseAudio ALSA) . / () . PulseAudio alsa-utils ALSA . PulseAudio ( pactl) "pulseaudio" ( "auto") . tab( ); lw(14.0n) lw(28.0n) lw(28.0n). ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ driver "auto" pipewire "pulseaudio" "auto" "alsa". ( Pipewire Pulseaudio ALSA) format " $icon {$volume.eng(w:2) |}" . . format_alt None format format_alt . name PulseAudio: PulseAudio @DEFAULT_SINK@ / ALSA ALSA: Master amixer -D yourdevice scontrols. device ALSA default "hw:X" "hw:X,Y" X Y aplay -l . device_kind "sink" PulseAudio: source sink. natural_mapping false ALSA " (mapped volume)" alsamixer/amixer -M . step_width 5 / . . max_vol None . . show_volume_when_muted false (mute) . headphones_indicator false ( pulseaudio) mappings output_name None . mappings_use_regex true mappings (regex) . (capture groups) . active_port_mappings active_port None . . --------------------------------------------------------------------------------------------------- icon - volume % . . output_name - PulseAudio ALSA output_description - PulseAudio output_name ( output_name ) active_port - ( Ports pactl list cards). driver active_port_mappings "" . tab( ); l l. --------------------------------------------------------------------------------------------------- toggle_format toggle_mute volume_down volume_up (EXAMPLES) : [[block]] block = "sound" step_width = 3 : [[block]] block = "sound" format = " $icon $output_name{ $volume|} " [block.mappings] "alsa_output.usb-Harman_Multimedia_JBL_Pebbles_1.0.0-00.analog-stereo" = "Speakers" "alsa_output.pci-0000_00_1b.0.analog-stereo" = "Headset" device_kind sink microphone source : [[block]] block = "sound" driver = "pulseaudio" device_kind = "source" : [[block]] block = "sound" driver = "pulseaudio" device_kind = "source" format = " $icon { $volume|} {$active_port |}" [block.active_port_mappings] "analog-input-rear-mic" = "" # `$active_port` "analog-input-front-mic" = "ERR!" (Icons Used) o microphone_muted ( ) o microphone ( ) o volume_muted ( ) o volume ( ) o headphones.SS speedtest speedtest-cli . (Configuration) ------------------------------------------------------------------------------------------- format " ^icon_ping $ping ^icon_net_down $speed_down . ^icon_net_up $speed_up " . interval 1800 -------------------------------------------------------------------------------------- ping speed_down speed_up (Example) ( ) [[block]] block = "speedtest" interval = 1800 format = " ^icon_ping $ping " ( ) [[block]] block = "speedtest" interval = 1800 format = " $speed_down.eng(w:4,u:B) $speed_up(w:4,u:B) " o ping o net_down o net_up taskwarrior taskwarrior . (Configuration) ----------------------------------------------------------------------------------------------------- interval 600 ( ) warning_threshold 10 ( ) (warning) critical_threshold 20 ( ) (critical) filters [{name = "pending", filter = "-COMPLETED -DELETED"}] ( ) format " $icon $count.eng(w:1) " . . format_singular format " $icon $count.eng(w:1) " . format_everything_done format " $icon $count.eng(w:1) " . data_location "~/.task" taskwarrior . ~ . tab( ); lw(14.0n) lw(28.0n) lw(28.0n). ----------------------------------------------------------------------------------------------------- name filter config_override [] context (Placeholders) ------------------------------------------------------------------------------------------------------------------ icon - count - filter_name - (Actions) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- next_filter (Right) count . [[block]] block = "taskwarrior" interval = 60 format = " $icon count.eng(w:1) tasks " format_singular = " $icon 1 task " format_everything_done = "" warning_threshold = 10 critical_threshold = 20 [[block.filters]] name = "today" filter = "+PENDING +OVERDUE or +DUETODAY" [[block.filters]] name = "some-project" filter = "project:some-project +PENDING" config_override = ["rc.context:none"] " (Icons Used)" o 2 tasks tea_timer " (Configuration)" tab( ); lw(14.0n) lw(28.0n) lw(28.0n). T} -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format . . " $icon {$time.duration(hms:true) |}" T} increment . 30 T} done_cmd sh . None T} ----------------------------------------------------------------------------------------------------- icon Icon - time Duration - hours Text h minutes Text mn seconds Text s time hours minutes seconds . hours minutes seconds time . -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- increment / (Left / Wheel Up) decrement (Wheel Down) reset (Right) [[block]] block = "tea_timer" format = " $icon {$minutes:$seconds |}" done_cmd = "notify-send 'Timer Finished'" (ICONS USED) o 2 tea (temperature) libsensors . : <<>> ("collapsed") <<>> ("expanded") format . sensors chip inputs . libsensors . sensors . . . (CONFIGURATION) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). T} -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format . " $icon $average avg, $max max " T} format_alt format format_alt None T} interval 5 T} scale "celsius" "fahrenheit" "celsius" T} good good 20 C (68 F) T} idle idle 45 C (113 F) T} info info 60 C (140 F) T} warning warning. critical 80 C (176 F) T} chip . * (wildcard) . None T} inputs . None T} ------------------------------------------------------------------------------------ toggle_format Left format format_alt --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- min average max . (Example) [[block]] block = "temperature" format = " $icon $max max " format_alt = " $icon $min min, $max max, $average avg " interval = 10 chip = "*-isa-*" (Icons Used) o 2 thermometer time . (Configuration) tab( ); lw(28.5n) lw(20.7n) lw(20.7n). --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format . " $icon $timestamp.datetime() https://docs.rs/chrono/0.3.0/chrono/format/strftime/index.html#specifiers " chrono . interval 10 timezone ( "Europe/Lisbon") ----------------------------------------------------------------------------------------------------------- icon Icon - timestamp Datetime - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- next_timezone prev_timezone [[block]] block = "time" interval = 60 [block.format] full = " $icon $timestamp.datetime(f:'%a %Y-%m-%d %R %Z', l:fr_BE) " short = " $icon $timestamp.datetime(f:%R) " (Non Gregorian calendars) locale . chrono icu4x : short medium long full. ** icu_calendar . ** (Example) [[block]] block = "time" interval = 60 format = "$timestamp.datetime(locale:'fa_IR-u-ca-persian', f:'full')" (Icons Used) o 2 time toggle (Toggle) (command_off) (command_on) . critical . (command_state). . interval command_state . $SHELL . sh . (Configuration) tab( ); lw(14.0n) lw(28.0n) lw(28.0n). T} ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format . " $icon " T} command_on T} command_off T} command_state . => => . T} icon_on "toggle_on" T} icon_off "toggle_off" T} interval . command_state . T} state_on [State] () [idle][State::Idle] T} state_off [State] () [idle][State::Idle] T} ------------------------------------------------------------------------------------------------ icon Icon - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- toggle (Left) : [[block]] block = "toggle" format = " $icon 4k " command_state = "xrandr | grep 'DP1 connected 38' | grep -v eDP1" command_on = "~/.screenlayout/4kmon_default.sh" command_off = "~/.screenlayout/builtin.sh" interval = 5 state_on = "good" state_off = "warning" " " o 2 toggle_off o 2 toggle_on uptime . "" tab( ); lw(16.4n) lw(41.7n) lw(11.9n). T} ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format . " $icon $uptime " T} interval 60 T} ------------------------------------------------------------------------------------------------- icon - text - uptime - text uptime ..SS [[block]] block = "uptime" interval = 3600 # o uptime vpn VPN . (/ ). --------------------------------------------------------------------------------------------- driver "nordvpn" vpn . : "nordvpn" "mullvad" "tailscale" interval 10 . format_connected " VPN: $icon " . . format_disconnected " VPN: $icon " . . state_connected info vpn . state_disconnected idle vpn . -------------------------------------------------------------------------------------------------------------------- icon - country - flag - ( ) profile - (tailnet) error - --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- toggle Left vpn (/ ) Mullvad mullvad mullvad . mullvad . nordvpn nordvpn nordvpn . (root) . Tailscale tailscale tailscale . tailscale : sudo tailscale set --operator=$USER Cloudflare WARP WARP warp-cli . (root) . " (Example)" vpn : [[block]] block = "vpn" driver = "nordvpn" interval = 10 format_connected = "VPN: $icon " format_disconnected = "VPN: $icon " state_connected = "good" state_disconnected = "warning" state_connected state_disconnected: warning critical good info idle " (Icons Used)" o 2 net_vpn o 2 net_wired o 2 net_down o 2 ( ) : . . : https://www.babelstone.co.uk/Fonts/Flags.html watson Watson http://tailordev.github.io/Watson Watson (CLI) . . show_time . " (Configuration)" tab( ); lw(14.0n) lw(28.0n) lw(28.0n). --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format " $text |" . show_time false . state_path $XDG_CONFIG_HOME/watson/state Watson. ~ . interval 60 . ---------------------------------------------------------------------- text - -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- toggle_show_time show_time [[block]] block = "watson" show_time = true state_path = "~/.config/watson/state" " (TODO)" o 2 : / watson weather . API . OpenWeatherMap met.no US National Weather Service . API . autolocate autolocate ipapi.co . autolocate_interval = "once" . " (Configuration)" tab( ); lw(14.0n) lw(28.0n) lw(28.0n). -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- service ( ). format " $icon $weather $temp " . . Escaping Text . format_alt None format format_alt . interval 600 . autolocate false IP ipapi.co ( API ). API . autolocate_interval interval autolocate "once" API () . tab( ); lw(9.3n) lw(18.7n) lw(23.3n) lw(18.7n). T} -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- name openweathermap. T} api_key API OpenWeatherMap . T} coordinates * GPS (tuple) : ["39.2362","9.3317"] T} city_id OpenWeatherMap . * () T} place * OpenWeatherMap "By {city name},{state code},{country code}". https://openweathermap.org/api/geocoding-api#direct_name . API T} zip * OpenWeatherMap "By {zip code},{country code}". https://openweathermap.org/api/geocoding-api#direct_zip . API T} units "metric" "imperial". "metric" T} lang . https://openweathermap.org/current#multi . weather_verbose . "en" T} forecast_hours ( ) 12 T} coordinates city_id place zip . coordinates city_id place zip . api_key city_id place zip OPENWEATHERMAP_API_KEY OPENWEATHERMAP_CITY_ID OPENWEATHERMAP_PLACE OPENWEATHERMAP_ZIP . forecast_hours > 0 ..SS met.no ----------------------------------------------------------------------------------------------------------------- name metno. coordinates autolocate = false GPS : ["39.2362","9.3317"] lang : en en nn nb altitude forecast_hours 12 Met.no autolocate autolocate . US National Weather Service ----------------------------------------------------------------------------------------------- name nws. coordinates autolocate = false GPS : ["39.2362","9.3317"] forecast_hours 12 units "metric" "metric" "imperial". forecast_hours ..SS --------------------------------------------------------------------------------------------------------------- location ( - ) icon{,_ffin} - weather{,_ffin} - "Raining" weather_verbose{,_ffin} - "overcast clouds" temp{,_{favg,fmin,fmax,ffin}} apparent{,_{favg,fmin,fmax,ffin}} humidity{,_{favg,fmin,fmax,ffin}} % wind{,_{favg,fmin,fmax,ffin}} - wind_kmh{,_{favg,fmin,fmax,ffin}} . - direction{,_{favg,fmin,fmax,ffin}} - "NE" sunrise - ( )[3] sunset - ( )[4] : ---------------------------------------------------- _favg _fmin _fmax _ffin ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- toggle_format format format_alt OpenWeatherMap: [[block]] block = "weather" format = " $icon $weather ($location) $temp, $wind m/s $direction " format_alt = " $icon_ffin Forecast (9 hour avg) {$temp_favg ({$temp_fmin}-{$temp_fmax})|Unavailable} " [block.service] name = "openweathermap" api_key = "XXX" city_id = "5398563" units = "metric" forecast_hours = 9 null island [[block]] block = "weather" format = "up $sunrise.datetime(f:'%R') down $sunset.datetime(f:'%R')" [block.service] name = "metno" coordinates = ["0", "0"] " (USED ICONS)" o 2 weather_sun ( "Clear" ) o 2 weather_moon ( "Clear" ) o 2 weather_clouds ( "Clouds" ) o 2 weather_clouds_night ( "Clouds" ) o 2 weather_fog ( "Fog" "Mist" ) o 2 weather_fog_night ( "Fog" "Mist" ) o 2 weather_rain ( "Rain" "Drizzle" ) o 2 weather_rain_night ( "Rain" "Drizzle" ) o 2 weather_snow ( "Snow" ) o 2 weather_thunder ( "Thunderstorm" ) o 2 weather_thunder_night ( "Thunderstorm" ) xrandr X11 X11 ( ). . xrandr backlight . : ( https://github.com/greshake/i3status-rust/issues/274 https://github.com/greshake/i3status-rust/issues/668 . ..SS " (Configuration)" tab( ); lw(14.0n) lw(28.0n) lw(28.0n). ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- format " $icon $display $brightness_icon . $brightness " . step_width 5 / ( ). interval 5 . invert_icons false ---------------------------------------------------------------------------------------------------------- icon - display - brightness % brightness_icon - resolution - res_icon - refresh_rate ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ cycle_outputs brightness_up brightness_down [[block]] block = "xrandr" format = " $icon $brightness $resolution $refresh_rate " " " o 2 xrandr o 2 backlight o 2 resolution " (NOTES)" [1] notification_count dunst dunst > 1.9.0 . [2] history_count SwayNC notification_count . [3] . . met.no nws OpenWeatherMap . [4] . . met.no nws OpenWeatherMap . " (THEMES)" " " : [theme] theme = "solarized-dark" [icons] icons = "awesome6" . [theme] theme = "" [icons] icons = "" : "1." 3 : /home/foo/custom_theme.toml "2." 3 "custom_theme.toml" $XDG_CONFIG_HOME/i3status-rust/themes "3." 3 $XDG_DATA_HOME/i3status-rust/themes "4." 3 /usr/share/i3status-rust/themes : - themes icons . - file .toml . - / . " " : swaybar . o 2 plain () [: plain] o 2 solarized-dark [: solarized-dark] o 2 solarized-light [: solarized-light] o 2 slick [: slick] o 2 modern [: modern] o 2 bad-wolf [: bad-wolf] o 2 gruvbox-light [: gruvbox-light] o 2 gruvbox-dark [: gruvbox-dark] o 2 space-villain [: space-villain] o 2 native ( plain ) [: native] o 2 semi-native ( native ) [: semi-native] o 2 nord-dark ( ) [: nord-dark] o 2 dracula [: dracula] o 2 srcery [: srcery] o 2 ctp-frappe [: ctp-frappe] o 2 ctp-latte [: ctp-latte] o 2 ctp-macchiato [: ctp-macchiato] o 2 ctp-mocha [: ctp-mocha] o 2 tomorrow-night [: tomorrow-night].SS " (Available icon sets)" o 2 none (. ) o 2 awesome4 (Font Awesome 4.x) o 2 awesome5 (Font Awesome 5.x) o 2 awesome6 (Font Awesome 6.x) o 2 emoji o 2 material o 2 material-nf ( Nerd Fonts) : material () material icons https://gist.github.com/draoncc/3c20d8d4262892ccd2e227eefeafa8ef/raw/3e6e12c213fba1ec28aaa26430c3606874754c30/MaterialIcons-Regular-for-inline.ttf . bar i3 . " (Overriding themes and icon sets)" theme icons : [theme] theme = "solarized-dark" [theme.overrides] # : `idle` idle_bg = "#123456" idle_fg = "#abcdef" # : `good` `warning` good_fg = { link = "warning_fg" } good_bg = { link = "warning_bg" } warning_fg = { link = "good_fg" } warning_bg = { link = "good_bg" } [icons] icons = "awesome6" [icons.overrides] bat = [ "| |", "|1/4|", "|1/2|", "|3/4|", "|X|", ] bat_charging = "|^|" theme_overrides icons_overrides icons_format . : [[block]] block = "cpu" icons_format = "{icon}" [block.theme_overrides] idle_bg = "#123456" idle_fg = "#abcdef" [block.icons_overrides] cpu_boost_on = "ON" cpu_boost_off = "OFF" " (Available theme overrides)" bg fg : o 2 html #000000 #789ABC ( #acbdef42) . 00 FF () o 2 : { link = "idle-bg" } o 2 ~/.Xresources x:background *background: #aabbcc ~/.Xresources ( https://wiki.debian.org/Xresources .Xresources ). . . . . o 2 idle_bg o 2 idle_fg o 2 good_bg o 2 good_fg o 2 warning_bg o 2 warning_fg o 2 critical_bg o 2 critical_fg o 2 info_bg o 2 info_fg o 2 alternating_tint_bg o 2 alternating_tint_fg o 2 separator_bg o 2 separator_fg o 2 separator o 2 end_separator o 2 start_separator.SS " (Available icon overrides)" () (escape sequence) TOML "\uf0f3" - "\U0001f312" - . . . " (VERSION)" v0.36.1 " (AUTHORS)" Kai Greshake GitHub (https, //github.com/greshake/i3status-rust/graphs/contributors) i3status-rs 0.36.1 i3status-rs(1)