osd: add multi-monitor support
Some checks failed
labwc.github.io / notify (push) Has been cancelled

Adds `output` attribute to control which monitor(s) display the window
switcher OSD. Supports three modes:
- "all": display on all monitors (default)
- "pointer": display on monitor with mouse cursor
- "keyboard": display on monitor with keyboard focus

The configuration structure is also refactored to nest OSD-specific
settings (show, style, output, thumbnailLabelFormat) under an <osd>
element within <windowSwitcher>, improving logical organization.
This commit is contained in:
Samet Aylak 2025-11-09 23:16:26 -05:00 committed by GitHub
parent 79fbb611e0
commit d65caf8bfd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 105 additions and 25 deletions

View file

@ -77,8 +77,8 @@
</font>
</theme>
<windowSwitcher show="yes" style="classic" preview="yes"
outlines="yes" allWorkspaces="no" unshade="yes">
<windowSwitcher preview="yes" outlines="yes" allWorkspaces="no" unshade="yes">
<osd show="yes" style="classic" output="all" thumbnailLabelFormat="%T" />
<fields>
<field content="icon" width="5%" />
<field content="desktop_entry_name" width="30%" />
@ -98,7 +98,8 @@
Some contents are fixed-length and others are variable-length.
See "man 5 labwc-config" for details.
<windowSwitcher show="yes" preview="no" outlines="no" allWorkspaces="yes">
<windowSwitcher preview="no" outlines="no" allWorkspaces="yes">
<osd show="yes" />
<fields>
<field content="workspace" width="5%" />
<field content="state" width="3%" />
@ -118,7 +119,8 @@
then workspace name, then identifier/app-id, then the window title.
It uses 100% of OSD window width.
<windowSwitcher show="yes" preview="no" outlines="no" allWorkspaces="yes">
<windowSwitcher preview="no" outlines="no" allWorkspaces="yes">
<osd show="yes" />
<fields>
<field content="custom" format="foobar %b %3s %-10o %-20W %-10i %t" width="100%" />
</fields>