Skip to content

Widgets Reference

This page documents every widget available in Tsumiki, its configuration options, defaults, and behavior.

Widgets are configured under [widgets.<name>] in config.toml and placed in the bar via layout sections.


Displays CPU usage with multiple display modes.

[widgets.cpu]
show_icon = true
icon = ""
tooltip = true
round = true
temperature_unit = "celsius"
show_unit = true
sensor = "acpitz"
mode = "graph" # "label" | "graph" | "circular"
graph_length = 4
  • mode: Display style — label shows percentage text, graph shows a sparkline, circular shows a circular progress ring.
  • graph_length: Number of data points for the sparkline graph.
  • sensor: Thermal zone sensor path (e.g. acpitz, k10temp). Leave empty for auto-detect.

Displays memory usage with multiple display modes.

[widgets.memory]
show_icon = true
icon = ""
tooltip = true
mode = "label" # "label" | "graph" | "circular"
graph_length = 4
unit = "gb" # Display unit for memory values

Displays GPU usage (supports AMD via amdgpu and NVIDIA via nvidia-smi).

[widgets.gpu]
show_icon = true
icon = ""
tooltip = true
mode = "circular" # "label" | "graph" | "circular"
graph_length = 4

Displays disk usage for a given path.

[widgets.storage]
path = "/"
show_icon = true
icon = "󰋊"
mode = "label" # "label" | "graph" | "circular"
tooltip = true
graph_length = 4
unit = "gb"

Monitors real-time network upload/download speeds.

[widgets.network_usage]
tooltip = true
label_format = "{upload}  {download} "
upload_threshold = 1024
download_threshold = 1024
kb_digits = 0
mb_digits = 2
interval = 2000 # Polling interval in milliseconds

Variables available in label_format: {upload}, {download}.

Checks for system package updates (Arch Linux, Flatpak, Snap, Homebrew).

[widgets.updates]
show_icon = true
available_icon = "󰏗"
no_updates_icon = "󰏖"
os = "arch"
hover_reveal = true
reveal_duration = 500
interval = 3600 # Refresh interval in seconds
tooltip = true
terminal = "kitty"
pad_zero = false
label = true
auto_hide = false
flatpak = true
snap = false
brew = false
  • interval: Polling interval in seconds (default: 3600 = 1 hour).
  • os: Distribution for native package checking (supports arch, fedora, ubuntu).
  • flatpak/snap/brew: Enable checking for these package formats.

Shows battery level with customizable icons and notifications.

[widgets.battery]
full_battery_level = 100
hide_percent_when_full = true
hide_when_missing = true
icons = ["", "", "", "", ""]
tooltip = true
label_format = "{icon} {percent}"
[widgets.battery.notifications]
low_threshold = 10
full_battery = false
low_battery = false
charging = false

Variables available in label_format: {icon}, {percent}, {time_remaining}.

The notifications section controls which battery events trigger desktop notifications.

Controls system audio output volume.

[widgets.volume]
tooltip = true
step_size = 5

Click to toggle mute, scroll to adjust volume.

Controls screen and keyboard brightness.

[widgets.brightness]
tooltip = true
step_size = 5

Requires brightnessctl. Click to toggle, scroll to adjust.

Manages Bluetooth connections and visibility.

[widgets.bluetooth]
label = true
tooltip = true

Opens a popover to manage paired devices and toggle Bluetooth.

Shows microphone status and muting.

[widgets.microphone]
label = false
tooltip = true
show_icon = true

Click to toggle microphone mute.

System power menu with shutdown, reboot, suspend, hibernate, lock, and logout.

[widgets.power]
icon = "󰐥"
tooltip = true
items_per_row = 3
icon_size = 100
show_icon = true
label = false
confirm = true
[widgets.power.item_shortcuts]
shutdown = "s"
reboot = "r"
hibernate = "h"
suspend = "u"
lock = "l"
logout = "o"
[widgets.power.buttons]
shutdown = "systemctl poweroff"
reboot = "systemctl reboot"
hibernate = "systemctl hibernate"
suspend = "systemctl suspend"
lock = "loginctl lock-session"
logout = "loginctl terminate-user $USER"
  • confirm: Shows a confirmation dialog before executing power actions.
  • item_shortcuts: Keyboard shortcuts for power menu items.

Toggle Hyprland’s idle management daemon.

[widgets.hypridle]
enabled_icon = ""
disabled_icon = ""
label = true
tooltip = true

Toggle blue-light filter (night mode) via Hyprsunset.

[widgets.hyprsunset]
temperature = "2800k"
enabled_icon = "󱩌"
disabled_icon = "󰛨"
label = true
tooltip = true

Color picker that captures a color from the screen.

[widgets.hyprpicker]
icon = ""
tooltip = true
label = false
quiet = false
show_icon = true

The selected color is copied to clipboard. In quiet mode, no notification is shown.

Shows when applications are using the microphone, camera, or screen sharing.

[widgets.privacy_indicator]
tooltip = true
hide_when_inactive = true
modules = ["camera", "microphone", "screen"]

Displays virtual desktops with click/scroll switching. See the full Workspaces documentation for details.

[widgets.workspaces]
count = 10
hide_unoccupied = true
ignored = [-99]
reverse_scroll = false
style = "numbered" # "numbered" | "pill" | "icon" | "default" | "underline" | "bubble"
empty_scroll = false
label_format = "{id}"
icon_map = {}
  • style: Choose from numbered, pill, icon, default, underline, or bubble.
  • icon_map: Map workspace IDs to custom icons: { "1": "", "2": "" }.
  • label_format: Format string with {id} variable.

Shows the title of the currently focused window.

[widgets.window_title]
icon = true
truncation = true
truncation_size = 50
tooltip = true
mappings = true
title_map = []
fallback = "class" # "class" | "title"
  • title_map: List of mapping rules to rename window titles.
  • fallback: What to show when no title is available.

Shows the number of windows in the current workspace.

[widgets.window_count]
label_format = " [{count}]"
hide_when_zero = true
tooltip = true

Variables available in label_format: {count}.

Button that opens the window overview/exposé.

[widgets.overview_button]
icon = "󰡃"
tooltip = true
label = false

Shows running applications as clickable icons similar to a traditional taskbar.

[widgets.taskbar]
icon_size = 22
ignored = []
tooltip = true

Shows the current date/time with a calendar popover and event notifications.

[widgets.date_time]
date_format = " %a %b %d,"
calendar = true
clock_format = "12h" # "12h" | "24h"
hover_reveal = false
reveal_duration = 500
[widgets.date_time.notification]
enabled = true
count = true
hide_count_on_zero = true

Shows time in multiple timezones.

[widgets.world_clock]
icon = "󰃰"
use_24hr = true
show_icon = true
timezones = ["America/New_York", "Asia/Tokyo"]

Displays currently playing media with playback controls.

[widgets.mpris]
truncation_size = 20
tooltip = true
label_format = "{title} - {artist}"
hide_when_no_player = true
ignore = []

Variables available in label_format: {title}, {artist}, {album}, {name}.

Requires playerctl. Automatically hides when no media player is running.

Real-time audio visualization powered by Cava.

[widgets.cava]
bars = 10
color = "#89b4fa"

Requires Cava to be installed and configured.


Capture screenshots with annotation support.

[widgets.screenshot]
path = "Pictures/Screenshots"
icon = "󰄀"
tooltip = true
annotation = true
delayed = false
delayed_timeout = 5000
label = false
capture_sound = false

Uses grimblast for captures and satty for annotations.

Start/stop screen recording with optional audio.

[widgets.recorder]
path = "Videos/Screencasting"
tooltip = true
audio = true
delayed = false
delayed_timeout = 5000

Uses wf-recorder for recording.

Extract text from a screen region using Tesseract.

[widgets.ocr]
icon = "󰐳"
tooltip = true
label = false
show_icon = true
quiet = false

Requires tesseract, slurp, and imagemagick.

Clipboard history manager with image support.

[widgets.clipboard]
icon = ""
label = false
tooltip = true
item_tooltip = false
show_images = true
enable_pinning = true

Uses cliphist for clipboard history.

Manage USB drive mounting and ejection.

[widgets.usb_manager]
icon = "󰕓"
label = false
tooltip = true
auto_refresh = true
refresh_interval = 5

Displays the current keyboard layout.

[widgets.keyboard]
icon = "󰌌"
label = true
tooltip = true
show_icon = false

Shows the current input language.

[widgets.language]
icon = ""
tooltip = true
truncation_size = 2
show_icon = false

Displays the active Hyprland keybind submap.

[widgets.submap]
icon = "󰌌"
label = true
tooltip = true
show_icon = false
hide_on_default = false

Hides automatically when the active submap is the default.


Opens the application launcher popup.

[widgets.launcher_button]
icon = "view-app-grid-symbolic"
icon_size = 20
tooltip = true

A comprehensive quick settings panel with user info, controls, media, and shortcuts.

[widgets.quick_settings]
hover_reveal = false
[widgets.quick_settings.user]
avatar = "~/.face"
name = "system"
distro_icon = true
[widgets.quick_settings.controls]
sliders = ["brightness", "volume"]
[widgets.quick_settings.media]
enabled = true
ignore = []
truncation_size = 30
show_album = true
show_artist = true
show_time = true
show_time_tooltip = true
[widgets.quick_settings.shortcuts]
enabled = true
[[widgets.quick_settings.shortcuts.items]]
icon = ""
label = "Terminal"
command = "kitty"
tooltip = "Open terminal"
icon_size = 18

System tray for background applications (NetworkManager, Bluetooth, etc.).

[widgets.system_tray]
icon_size = 16
ignored = []
hidden = []
hide_when_empty = false

Opens the wallpaper selection popup.

[widgets.wallpaper]
icon = "󰸉"
label = false
tooltip = true

Opens the in-app settings GUI.

[widgets.settings]
icon = "󰒓"
tooltip = true
label = false

Quickly switch between installed themes.

[widgets.theme_switcher]
icon = ""
notify = false # Show notification on theme change

Displays a searchable keybind cheatsheet for Hyprland.

[widgets.cheatsheet]
label = true
label_text = "Keys"
tooltip = true
title = "Hyprland Cheatsheet"
columns = 3
groups_per_page = 6
max_entries_per_group = 8

Search and insert emoji characters.

[widgets.emoji_picker]
icon = ""
label = false
tooltip = true
per_row = 9
per_column = 4

A simple Kanban task management board.

[widgets.kanban]
icon = "󱞁"
label = false
tooltip = true

A Pomodoro productivity timer.

[widgets.pomodoro]
icon = "🍅"
label = true
label_text = "Pomo"
tooltip = true

Displays GitHub repository information (issues, PRs).

[widgets.git_companion]
icon = ""
label = false
label_text = "Git"
tooltip = true
username = "rubiin"
repository = "rubiin/tsumiki"
avatar_size = 44
default_tab = "issues" # "issues" | "pull_requests"
cache_ttl = 300

Manage Cloudflare WARP VPN connection — connect, disconnect, and view status.

[widgets.cloudflare_warp]
label = false
label_text = "WARP"
tooltip = true
connected_icon = ""
disconnected_icon = ""
  • connected_icon / disconnected_icon: Nerd Font icons shown in the bar for each state.
  • Click the widget to open a popover with a toggle button.
  • Requires warp-cli from Cloudflare WARP Client for Linux.
  • The service polls warp-cli status every 5 seconds to detect state changes.

Quickly switch between popular DNS providers directly from the bar.

[widgets.dns_switcher]
icon = "󰚘"
label = false
label_text = "DNS"
tooltip = true

Click to open a popover with pre-configured providers:

Provider Primary DNS Secondary DNS
Cloudflare 1.1.1.1 1.0.0.1
Google 8.8.8.8 8.8.4.4
OpenDNS 208.67.222.222 208.67.220.220
AdGuard 94.140.14.14 94.140.15.15
Quad9 9.9.9.9 149.112.112.112

Includes a “Reset to Default (ISP)” button to restore automatic DNS.

  • Uses nmcli (NetworkManager) to manage DNS settings.
  • DNS changes require Polkit authentication (pkexec).
  • The service polls nmcli every 3 seconds to detect the current DNS server.

Displays the current IP address.

[widgets.ip_monitor]
icon = "󰖟"
label = false
label_text = "IP"
tooltip = true

A simple stopwatch/timer.

[widgets.stopwatch]
stopped_icon = "󱫞"
running_icon = "󱫠"

A counter that increments on each click.

[widgets.click_counter]
count = 0

A breathing exercise guide widget.

[widgets.breathe]
icon = ""
label = false
tooltip = true

Displays current weather conditions for a location.

[widgets.weather]
location = "kathmandu"
label_format = "{temperature} {condition}"
tooltip = true
expanded = true
temperature_unit = "celsius" # "celsius" | "fahrenheit"
wind_speed_unit = "kmh" # "kmh" | "mph" | "ms" | "beaufort"
interval = 86400
hover_reveal = true
reveal_duration = 500
provider = "open-meteo" # "open-meteo" | "wttr"

Variables available in label_format: {temperature}, {condition}.


A visual separator between bar sections.

[widgets.divider]
size = 2

For advanced configuration, see Advanced Configuration for configuration and usage.