waybar-wlr-taskbar(5)

πŸ’– waybar-wlr-taskbar(5) πŸ’–

okay bestie, welcome to the wlr taskbar module page from the waybar manual β€” section 5, File Formats Manual, if you're keeping score ✨


🌸 NAME 🌸

waybar β€” the wlr taskbar module 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

So this module literally shows you all the apps you have open rn. It's giving "mission control but cute". the catch? it needs a compositor that implements the foreign-toplevel-manager interface. no interface, no vibes, no taskbar. periodt. πŸ’…


πŸŽ€ CONFIGURATION πŸŽ€

You address this whole situation with wlr/taskbar. iykyk.

  • all-outputs
    • typeof: bool
    • default: false
    • if it's set to false, you only see the apps chilling on waybar's current output. set it to true and every single app shows up, no matter the output. ⭐
  • format
    • typeof: string
    • default: {icon}
    • the format, aka how the info should be displayed. the whole glow-up blueprint. ✨
  • icon-theme
    • typeof: array|string
    • the names of the icon-themes that should be used to find an icon. the list gets traversed from left to right (so first one that hits, wins πŸ’…). if you omit it, the system default gets used. no cap.
  • icon-size
    • typeof: integer
    • default: 16
    • the size of the icon. tiny icon, big icon, your call. πŸŽ€
  • markup
    • typeof: bool
    • default: false
    • set it to true and pango markup gets accepted in format and tooltip-format. fancy text era. πŸ’œ
  • tooltip
    • typeof: bool
    • default: true
    • set it to false and no tooltip will be shown. gone. ghosted. πŸ™ˆ
  • tooltip-format
    • typeof: string
    • default: {title}
    • the format for how info in the tooltip should be displayed. πŸ¦‹
  • active-first
    • typeof: bool
    • default: false
    • set it to true and the tasks get reordered so the currently active one is always first. otherwise, don't reorder β€” leave them exactly where they are. πŸ‘‘
  • sort-by-app-id
    • typeof: bool
    • default: false
    • set it to true and tasks get grouped by their app_id. cannot be used with active-first β€” pick a lane bestie, you can't have both. πŸ’€
  • on-click
    • typeof: string
    • the action that gets triggered when you click the application button with the left mouse button. πŸ–±οΈ
  • on-click-middle
    • typeof: string
    • the action that gets triggered when you click the application button with the middle mouse button. πŸ–±οΈ
  • on-click-right
    • typeof: string
    • the action that gets triggered when you click the application button with the right mouse button. πŸ–±οΈ
  • on-update
    • typeof: string
    • command to execute when the module is updated. like a lil snack for your shell every time things refresh πŸ“
  • ignore-list
    • typeof: array
    • list of app_id/titles to be invisible. yes, invisible. they simply don't exist to this module anymore. ✨
  • app_ids-mapping
    • typeof: object
    • dictionary of app_id to be replaced with. glow-up renaming πŸ’…
  • rewrite
    • typeof: object
    • rules to rewrite the module format output. see rewrite rules below πŸ‘‡

πŸ’… FORMAT REPLACEMENTS πŸ’…

these are the lil placeholders you can drop into your format strings, and honestly? iconic.

  • {icon} β€” the icon of the application. πŸŽ€
  • {name} β€” the application name as in desktop file if appropriate desktop files are found. otherwise it's the same as {app_id}.
  • {title} β€” the title of the application.
  • {app_id} β€” the app_id (== application name) of the application. yes it literally equals the application name, that's not me being cute.
  • {state} β€” the state of the application, which can be minimized, maximized, active, or fullscreen.
  • {short_state} β€” the state represented as one character of the application: minimize == m, maximized == M, active == A, fullscreen == F. short queen behavior ⭐

πŸ”₯ CLICK ACTIONS πŸ”₯

these are the moves you can attach to your mouse buttons:

  • activate β€” bring the application into the foreground. main character energy only πŸ‘‘
  • minimize β€” toggle the application's minimized state.
  • minimize-raise β€” bring the application into the foreground or toggle its minimized state.
  • maximize β€” toggle the application's maximized state.
  • fullscreen β€” toggle the application's fullscreen state.
  • close β€” close the application. bye bestie πŸ’€

🌈 REWRITE RULES 🌈

so rewrite is an object where the keys are regular expressions and the values are rewrite rules that apply if the expression matches. rules may contain references to captures of the expression. fr fr.

Regular expression and replacement follow ECMA-script rules.

If no expression matches, the format output is left unchanged. no drama.

Invalid expressions (e.g., mismatched parentheses 🫠) are just... skipped. silently. we don't talk about them.


✨ EXAMPLES ✨

here's the whole thing looking cute in a config:

"wlr/taskbar": {
     "format": "{icon}",
     "icon-size": 14,
     "icon-theme": "Numix-Circle",
     "tooltip-format": "{title}",
     "on-click": "activate",
     "on-click-middle": "close",
     "ignore-list": [
         "Alacritty"
     ],
     "app_ids-mapping": {
          "firefoxdeveloperedition": "firefox-developer-edition"
     },
     "rewrite": {
          "Firefox Web Browser": "Firefox",
          "Foot Server": "Terminal"
     }
}

🧚 Style 🧚

css selectors, go off:

  • #taskbar
  • #taskbar button
  • #taskbar button.maximized
  • #taskbar button.minimized
  • #taskbar button.active
  • #taskbar button.fullscreen

ok that's the whole page bestie, you ate that πŸ’– now go theme your taskbar and make it gorgeous πŸŽ€

this was waybar-wlr-taskbar(5) from the File Formats Manual, dated 2026-02-08 β€” luv u, bye 🫢✨

πŸ“¦ where this page comes from