Skip to content

feat(workspace-tray): add workspace tray bar widget with dropdown panel#3072

Open
joao-paulo-santos wants to merge 1 commit into
noctalia-dev:mainfrom
joao-paulo-santos:feat/workspace-tray-widget
Open

feat(workspace-tray): add workspace tray bar widget with dropdown panel#3072
joao-paulo-santos wants to merge 1 commit into
noctalia-dev:mainfrom
joao-paulo-santos:feat/workspace-tray-widget

Conversation

@joao-paulo-santos

@joao-paulo-santos joao-paulo-santos commented Jun 19, 2026

Copy link
Copy Markdown

Adds a new bar widget (workspace_tray) designed as a simpler
alternative to the workspaces widget. Shows only the active workspace
name as colored text, and opens a dropdown panel on click to switch
workspaces. Intended for users who prefer minimal visual clutter over
numbered workspace pills.

2026-06-19.01-25-04.mp4

Bar widget

  • Text-only rendering, no pill background by default; capsule styling
    adds background when configured
  • Active workspace colored with focused_color; unfocused monitors use
    occupied_color when focused_only is enabled
  • Scroll to cycle adjacent workspaces
  • Optional chevron indicator
  • hide_when_empty to hide when all workspaces on the monitor are empty

Dropdown panel

  • Lists all workspaces for the monitor that opened it
  • Active workspace highlighted in focused color
  • Same placement system as other panels (attached / floating / centered
    with optional open-near-click), consistent with wallpaper, session,
    and tray-drawer panels
  • Optional new-workspace button with user-defined command and icon.
    Compositor-agnostic: the user provides the command that works for
    their environment
  • Panel dimensions computed from widget config and workspace count

Settings

Widget settings include: display mode (id / name), max label chars,
show chevron, focused highlight only, hide when empty, custom focused /
occupied colors, show new workspace button, new workspace command,
new workspace icon.

Panel placement settings appear in Settings > Panels alongside other
panels.

Config example

[widget.workspace_tray]
type = "workspace_tray"
display = "name"
focused_only = true
max_label_chars = 3
show_new_workspace = true
new_workspace_command = "hyprctl dispatch workspace emptyw"
new_workspace_glyph = "plus"

Compatibility

Uses CompositorPlatform exclusively for workspace data and
activation. Works across all supported compositors (Hyprland, niri,
Sway, dwl, mango, triad, ext-workspace).

New bar widget that shows the active workspace name as colored text
(no pill background by default), with a dropdown panel listing all
workspaces on the current monitor. Click to switch, scroll to cycle.

Widget settings: display mode (id/name), max label chars, show
chevron, focused highlight only (different color per monitor focus),
hide when empty, custom focused/occupied colors, optional new-workspace
button with user-defined command and icon.

The dropdown panel follows the same placement system as other panels
(wallpaper, session, tray-drawer): attached/floating/centered with
optional open-near-click positioning.
@joao-paulo-santos joao-paulo-santos force-pushed the feat/workspace-tray-widget branch from c912af2 to eaef638 Compare June 19, 2026 01:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant