Commit graph

1219 commits

Author SHA1 Message Date
Jack Zeal
6885d5b887
Merge branch 'master' into master 2026-05-27 03:36:48 +00:00
Johan Malm
151acae28a Add default keybind super-d for ToggleShowDesktop 2026-05-25 20:22:59 +02:00
Consolatis
bce14a5ad7 toplevel-capture: partial initial implementation
Missing:
- xwayland child windows
- xwayland unmanaged windows, e.g. popups / menus / ...
- xdg child window positioning
- xdg subsurfaces (test-case: mate-terminal settings listboxes)
- xdg popup positioning
2026-05-20 17:49:06 +01:00
Tomi Ollila
80ff89c640 Typo/style fixes in docs and code comments
Codespell(1)-pointed typos in files listed by `git ls-files`
(sans checkpatch.pl and possibly some others). Removed some
extra spaces. Added a few missing trailing periods.
`Default is ...`.  Added spaces in ' />' where missing
(sans e.g. wayland protocol and t/* files).
Fit some lines in docs/*.scd to 80 colums.

Used git grep commands (to find similar cases):
$ git grep -n '\S/>'
$ git grep -nF '.  '
$ git grep -n '[^\t*'\'',{#]\t'
$ git grep -ni 'default '

No functional change. No change in *.[ch] line numbers.
2026-05-18 19:55:05 +01:00
massi
cd7be59d5f window-title: rewording, renaming, lint fixes 2026-05-16 14:36:51 +01:00
massi
df6dde131f window-title: implement window-title command line argument
When -t or --window-title is supplied, its required argument is treated as a
format string where `%o` is replaced by the `wlr-output`'s `name` when we set
the window title.

This uses glib to split and join the format string because our own
`string-helpers` library only has `str_join`. Otherwise using `string-helpers`
would have been preferred.
2026-05-16 14:36:51 +01:00
Christopher Snowhill
c1b11c7821 chase wlroots: Add support for HDR10 output
v2: Switch XRGB to XBGR
v3: Rewrite HDR mode checking and setting
v4: Restructure HDR support detection
v5: Fix code style
v6: Fix old style function declaration
v7: This function should be declared static
v8: This helper function can accept a const struct on input
v9: Rebase now that 0.20 is merged
v10: Rewrite with multiple color format attempts
v11: Add in the parts that accidentally got left in my
     original color-management-v1 patch
v12: Add missing function prototype
v13: Apply suggested changes
v14: Changed HDR application setup in new output
v15: Rewrite configure_new_output to use lab_wlr_scene_output_commit
v16: Fixed application of HDR on external mode or output config change
v17: Fixed it for real this time instead of crashing
v18: Moved the effective resolution collection, plus one style change.
2026-05-07 15:21:34 +02:00
Consolatis
2480a23b19 common/macros: change WLR_VERSION macro to runtime evaluation 2026-05-07 06:24:30 +01:00
Alex Chernika
3632c6703a menu: implement menu accelerators
Menu accelerators are one-letter mnemonics to quickly select/exec
items from the current menu. For each menu item, the accelerator is
defined as the first character of the item label, converted to
lowercase. A different accelerator can be explicitly defined in
menu.xml with the special '_' character before the target letter.

- Add a field `accelerator` to the `menuitem` struct
- Implement `menu_item_select_by_accelerator()`

Example:
The accelerator for an item with the label "e_macs" is 'm'.
2026-05-05 19:16:59 +01:00
Alex Chernika
07a0a4e59b scaled-buffer: introduce scaled_font_buffer_update_markup()
This function behaves identically to `scaled_font_buffer_update()`
but allows setting the text as pango markup, supporting further
customization like underscores.
2026-05-05 19:16:59 +01:00
elviosak
6ce25978e7 Add Next/PreviousWindowImmediate to switch windows without OSD
Some checks failed
labwc.github.io / notify (push) Has been cancelled
Co-authored-by: @johanmalm
2026-05-02 13:37:34 +01:00
Jos Dehaes
998fd80737 session: run activation env update synchronously
dbus-update-activation-environment and systemctl --user import-environment
were fired asynchronously via spawn_async_no_shell, racing with the autostart
script. Any systemd user service started from autostart (e.g. via
labwc-session.target) could start before the import completed, leaving
WAYLAND_DISPLAY and related variables absent from its environment and those
of any apps it launches.

Run both commands synchronously via a new spawn_sync_no_shell helper so
the import is guaranteed to complete before the autostart script executes.
2026-04-29 19:45:01 +01:00
Jos Dehaes
fe6ea66b82 server: add pending auto-raise state + decl
Add two fields to struct server:

  struct view *pending_auto_raise_view;
  struct wl_event_source *pending_auto_raise_timer;

and forward-declare desktop_cancel_pending_auto_raise() in labwc.h.
The state is a single 'slot' (at most one view/timer pending) since
a new focus change supersedes any previous pending raise.

This commit just reserves the state and the public API; the
behaviour is implemented in the following commit.
2026-04-28 20:33:09 +01:00
Jos Dehaes
7b3f37725f rcxml: add raiseOnFocusDelay option
Add a new <focus><raiseOnFocusDelay> element accepting an integer in
milliseconds. The default of 0 preserves the current behavior (raise
immediately when raiseOnFocus is enabled).

The new field is carried as uint32_t raise_on_focus_delay_ms on
struct rcxml. This commit only adds the parser and default; the
actual delay logic follows in a subsequent commit.
2026-04-28 20:33:09 +01:00
diniamo
5c7bfe3c67 Add onbutton scrollMethod, scrollButton 2026-04-27 20:55:55 +01:00
daniel
5c582bda09 config: migrate from amixer to pactl 2026-04-19 13:29:37 +01:00
Yannis Drougas
c5ea41e876 Add overrideInhibition to keyboard.keybind
Some checks failed
labwc.github.io / notify (push) Has been cancelled
2026-04-14 22:33:49 +01:00
Johan Malm
da37e97a45 Add action ToggleShowDesktop
Some checks are pending
labwc.github.io / notify (push) Waiting to run
2026-04-13 21:59:09 +01:00
Tobias Bengfort
8b32422b93 rcxml: allow to restrict privileged interfaces
Some checks failed
labwc.github.io / notify (push) Has been cancelled
2026-04-11 16:34:11 +02:00
Johan Malm
c8bb3381a4 Add key state OSD for debugging
Some checks are pending
labwc.github.io / notify (push) Waiting to run
Add action `DebugToggleKeyStateIndicator` to show in the top-left corner
the pressed, bound, pressed-sent keys as well as modifiers.

This should help fault find issues like #2771 and #3238

Based-on: #3262
Co-authored-by: @tokyo4j
2026-04-10 21:19:11 +01:00
daniel
afaed4af63
config: remove the underline from the XF86 keys
to match the actual key names in xkbcommon-keysyms.h
2026-04-08 10:37:35 +02:00
Jack Zeal
b2803b8f4d Add highlight/shadow controls for beveled items 2026-04-06 20:09:51 -07:00
Jack Zeal
6dffb80d6a Add infrastructure to generatecustom highlight/lowlight 2026-04-06 09:59:40 -07:00
Jack Zeal
8997f35607 Rename camelcase names 2026-04-05 17:57:15 -07:00
Jack Zeal
987b2c2a89 Realign with codesniffer rules 2026-04-05 17:48:57 -07:00
Jack Zeal
f3711b294a Add fields for button borders 2026-04-04 08:56:12 -07:00
Jack Zeal
43d643c878 Explicitly differentiate between 'no border' and 'flat border' since it's visible with gradients 2026-04-04 07:38:27 -07:00
Jack Zeal
59c37bc91b Start on texture on the main title bar segment 2026-04-03 23:17:28 -07:00
Jack Zeal
e7b53c5d28 Pull menu bevels from theme 2026-04-01 21:31:21 -07:00
Jack Zeal
362c3e1b47 Add osd.border.type and osd.border.bevel-width options 2026-04-01 20:40:21 -07:00
Jack Zeal
773996f1ee add window.*.border.type and window.*.border.bevel-width options 2026-04-01 20:18:43 -07:00
Jack Zeal
b07165f154 Ensure we use all details of borders when caching them 2026-04-01 19:43:20 -07:00
Jack Zeal
fe44a2e9b3 Reuse common code for raised and sunken bevels 2026-04-01 19:39:24 -07:00
Jack Zeal
6ae186edc5
Merge branch 'master' into master 2026-04-01 05:27:23 +00:00
Jens Peters
0d049552bc input: support tablet tool pressure range configuration
Needs wlroots 0.20.0.
2026-03-31 19:56:07 +02:00
tokyo4j
cdee4ba5f1 xwayland: use wlr_xwayland_surface_fetch_icon() 2026-03-30 11:55:37 +02:00
Christopher Snowhill
cee5712877 chase wlroots: wlr_scene_set_gamma_control_manager_v1
Ref: 515275ee7214bf91f8a758b660093eb4b932195a
(wlr_scene: Introduce wlr_scene_set_gamma_control_manager_v1)

This wlroots change eliminates the need for separate event tracking for gamma
control application.

v2: Fix code style
v3: Rebase now that 0.20 is merged
2026-03-30 11:18:53 +02:00
tokyo4j
647e9b7658 Drop cosmic-workspace and use wlroots implementation of ext-workspace-v1 2026-03-30 10:29:04 +02:00
Manuel Barrio Linares
76f166ae42 chase wlroots: wlr_xwayland_set_cursor now takes a wlr_buffer (MR 5230)
Ref: 84d603acc06a45dd3c3a4b2cf1fd08b2933ca2b5
(xwayland: take wlr_buffer in wlr_xwayland_set_cursor())

Ref: 6ae54dca23064e897b393283887986e5719a747f
(xwayland: lock new buffer instead of the old one)

Co-Authored-By: Consolatis

This wlroots change fixes a potential UAF which we dealt with in labwc.
We can thus remove the workaround completely.
2026-03-29 15:58:13 +01:00
Consolatis
f2867e5f0a [wip] keep wlr_buffers around 2026-03-29 14:27:00 +02:00
Jack Zeal
d80dd2470b Centralize buffer preparation and standardize placement 2026-03-28 09:01:21 -07:00
John Lindgren
3ce6328f6d xwayland: set initial view state + geometry in handle_associate()
Empirically, the associate event is always seen just after map_request
but before surface map. Window properties are also read by wlroots just
before emitting associate. So after some trial and error, this seems to
be the best place to set initial view states and compute initial
placement.

Fixes initial positioning of "urxvt -g -0-0".

urxvt placement regressed in:
9903331995
("xwayland: rework setting initial geometry from surface")

map_request handler was added ~2 years ago in:
c9018da4c4
("xwayland: set initial geometry in map_request handler")

I'm not sure if the map_request handler was incorrect from day one,
or if something changed in wlroots and/or Xwayland since then.
2026-03-28 14:59:29 +00:00
Jack Zeal
0be9082ea8 Add bevels to the window size/position box 2026-03-27 23:37:18 -07:00
Jack Zeal
536847cb5b Use cache for title bar double beveled borders 2026-03-27 20:57:28 -07:00
Jack Zeal
2a0ff0d5b4 Initial use of a centralized caching border generator 2026-03-27 20:24:24 -07:00
Jack Zeal
f7d2be37ea Clean up codesniffer issues 2026-03-26 21:50:55 -07:00
Jack Zeal
25b5ad08e4 Handle the highlights on the window switcher with a different bevel that doesn't involve leaving crumbs 2026-03-26 19:35:38 -07:00
Jack Zeal
69e372cc5f Sharp borders and flag-controlled bevels for the menus/dialogues 2026-03-25 21:08:20 -07:00
Jack Zeal
effc16fc05 Window bevel depth is now configurable 2026-03-25 20:03:01 -07:00
Jack Zeal
4ff1832eb3 Gate beveled borders behind border.beveled theme option 2026-03-23 22:14:28 -07:00