Commit graph

370 commits

Author SHA1 Message Date
Daniel Lublin
1c2bb72e9d
Merge cf2f6326b7 into dcd64ae48b 2026-01-14 12:03:48 +00:00
Daniel Lublin
cf2f6326b7 fixup! Add -S to set display socket name; avoid auto wayland-0 2026-01-14 13:03:27 +01:00
Daniel Lublin
2d42dcc599 Add -S to set display socket name; avoid auto wayland-0
Being able to set the socket name helps with having a predictable name
when for example connecting wayvnc to it.

Not trying the socket name "wayland-0" seems to be best practice:
https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/486
2026-01-14 13:03:27 +01:00
Yuxuan Shui
dcd64ae48b Implement the drm-lease-v1 protocol
Some checks failed
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
2026-01-08 23:35:35 +01:00
Simon Ser
73bf1c8bd6 xwayland: fix crash when request_fullscreen is called while unmapped
Some checks failed
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
Closes: https://github.com/cage-kiosk/cage/issues/463
2026-01-03 12:29:34 +01:00
Simon Ser
832e88b0c9 xdg_shell: skip configure in request_fullscreen handler if unmapped
Some checks failed
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
wlr_xdg_surface_schedule_configure() requires the xdg_surface to
be initialized.

Closes: https://github.com/cage-kiosk/cage/issues/456
2025-12-27 10:13:10 +01:00
Yuxuan Shui
cb8582c056 Fix segfault when title or app_id is NULL
Some checks failed
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
2025-12-18 14:59:57 +01:00
Simon Ser
ea2069f427 xwayland: remove associate/dissociate listeners
Some checks failed
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
2025-12-11 15:38:50 +01:00
GnSight
af0a3cf8a6 Add support for wlr-foreign-toplevel-management 2025-12-11 14:45:53 +01:00
Simon Ser
f9626f7951 build: bump version to 0.2.1
Some checks failed
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
2025-10-01 17:46:45 +02:00
Simon Ser
2e593fe5a8 Fix renderer, allocator and scene memory leaks on exit
Some checks failed
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
2025-07-02 09:09:20 +02:00
Simon Ser
3da3ec0c27 output: use backend commits
Some checks failed
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
Pass the whole new desired state to the backend, so that the
backend can leverage KMS atomic commits.
2025-06-20 19:19:25 +02:00
Simon Ser
c311ee5cdc ci: set --wrap-mode=nodownload
Some checks failed
Continuous integration build / format (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
Make sure Meson doesn't automagically download and build
dependencies, so that we use system libraries.
2025-06-12 18:03:53 +02:00
Simon Ser
e8eec54129 ci: install libdisplay-info
This dependency was missing.
2025-06-12 16:04:05 +02:00
Simon Ser
63f186632e xdg_shell: bump to v5
Some checks failed
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
v5 adds the wm_capabilities event. cage only supports fullscreen.
2025-06-03 23:22:53 +02:00
Simon Ser
60d41fb93c xdg_shell: handle xdg_popup reposition signal
We are advertising xdg-shell v4, but forgot to handle this signal.
2025-06-03 23:22:35 +02:00
Simon Ser
119f98f2b8 xdg_shell: rename xdg_toplevel signal handlers
Some checks failed
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
These handlers aren't invoked for all types of xdg_shell surfaces:
they are only invoked for xdg_toplevel, and are not for xdg_popup.
Rename them accordingly.
2025-06-01 15:08:50 +02:00
Simon Ser
9ad44e4f52 Upgrade wlroots to v0.19
Some checks failed
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
2025-05-26 23:09:43 +02:00
Simon Ser
6efb3b5042 cage: remove global server listeners on shutdown 2025-04-15 15:26:03 +02:00
Simon Ser
e21c155bcd seat: destroy keyboard groups on shutdown
These are not destroyed automatically because they are entirely
managed by the compositor.
2025-04-15 15:26:03 +02:00
Simon Ser
6b1ba34a4a output: drop unused wlr_matrix.h include
This is dropped in the next wlroots release.
2025-04-10 17:49:51 +02:00
Horror Proton
360e259ca5 Fix getopt("D") 2024-12-23 14:56:15 +01:00
Simon Ser
19157d3564 Make application arguments optional
If no application is specified, run without starting a child
process. Leave it up to the user to start applications externally
and stop cage with a signal.
2024-11-22 12:09:16 +01:00
Simon Ser
852839e59f Add CLI flag to enable debug logs
For bug reports, it's useful to ask for a debug log. However there's
no way for users to enable debug logs without recompiling. Add a
CLI flag to do so.
2024-11-22 12:03:40 +01:00
Michal Vaniš
0208f565dc
readme: add link to man page 2024-11-03 16:29:19 +01:00
Simon Ser
e128a9f251 build: bump to version 0.2.0 2024-10-06 15:24:22 +02:00
Simon Ser
34de3f7bac ci: drop libwayland C23 workaround 2024-10-02 09:15:44 +02:00
Simon Ser
f0651c7671 xdg_shell: wait for initial commit to unconstrain popups 2024-09-07 23:42:24 +02:00
Simon Ser
412c11ea91 cage: fix abort on shutdown
Workaround for [1]: register a listener for wl_display destroy and
avoid calling wl_display_terminate() after.

[1]: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/421
2024-09-07 23:42:24 +02:00
Simon Ser
1abf7e5a4b xdg_shell: wait for initial commit to set xdg-decoration mode
Sending the xdg-decoration mode when the xdg_toplevel_decoration
object is created is incorrect: we need to wait for the initial
commit.
2024-09-07 23:42:24 +02:00
Simon Ser
fa90174607 xdg_shell: configure surface on initial commit
Instead of waiting for the surface to be mapped before sending a
configure event, do it on initial commit.

Note, wlroots 0.18 no longer sends automatic configure events on
initial commit.
2024-09-07 23:42:24 +02:00
Simon Ser
17af2f7be9 ci: workaround libwayland C23 bug 2024-09-07 23:42:24 +02:00
Simon Ser
a81cc2a8e4 seat: rename WLR_INPUT_DEVICE_TABLET_TOOL to WLR_INPUT_DEVICE_TABLET 2024-09-07 23:42:24 +02:00
Simon Ser
874a4a1e79 xdg_shell: use new lifecycle events 2024-09-07 23:42:24 +02:00
Simon Ser
7cc49d2292 cage: drop wlr_scene_set_presentation()
Scene-graph will do the right thing without this call.
2024-09-07 23:42:24 +02:00
Simon Ser
b9add8b729 cage: create backend with wl_event_loop and output layout with wl_display 2024-09-07 23:42:24 +02:00
Simon Ser
47ea6a5d68 seat: pass relative direction to wlr_seat_pointer_notify_axis() 2024-09-07 23:42:24 +02:00
Simon Ser
8714a82c24 Bump wlroots requirement to v0.18 2024-09-07 23:42:24 +02:00
Simon Ser
eaeab71ffa cage: fix SIGINT/SIGTERM handler data
server.wl_display is already a pointer.

Reported-by: Jonathan GUILLOT <jonathan@joggee.fr>
2024-08-28 12:03:10 +02:00
Simon Ser
69c5eccc50 ci: turn on --fatal-meson-warnings
Catches mistakes such as non-existing build options.
2024-08-26 18:10:26 +02:00
Jonathan GUILLOT
df508d65e7 readme: update meson commands 2024-08-22 08:35:58 +02:00
Jonathan GUILLOT
018d5bc4b9 readme: update wlroots dependency version 2024-08-22 08:35:58 +02:00
Simon Ser
d3fb99d665 build: drop xwayland option
This is unnecessary because Xwayland logic doesn't bring in new
dependencies. We can just compile in our Xwayland-related code
when wlroots has been built with Xwayland support.

See this Sway patch: https://github.com/swaywm/sway/pull/8165
2024-07-30 00:42:32 +02:00
Simon Ser
e7d8780f46 Add support for primary selection 2024-02-26 16:41:17 +01:00
Simon Ser
9d43282fa0 Add .editorconfig
Allows text editors to display files with the correct tab width.
2024-02-23 12:14:39 +01:00
Simon Ser
d07afac4ae output: fix assert when re-adding output to layout
wlr_scene_output_layout_add_output() aborts when called with an
already-added output.

To reproduce, run wlr-randr to reconfigure one of the enabled
outputs.
2024-02-23 12:14:00 +01:00
Simon Ser
767ccf9bbd output: use wlr_output_head_v1_state_apply()
No need to hand-roll this code, there is a wlroots helper for it.
Additionally, this fixes missing adaptive sync handling.
2024-02-20 11:01:41 +01:00
Supreeeme
b6f8f92585 xwayland: fix double wl_list_remove
When destroying an xwayland surface, the dissociate and destroy handlers
are called, but both of these were removing the map and unmap signal
handlers, causing a segfault when the destroy handler went to remove
them.
Fixes #309
2024-02-12 11:57:38 +01:00
Kenny Levinsen
8a009212bc output: Transition to wlr_output_state
We previously used the wlr_output's built-in pending state and
wlr_output_rollback. The modern state API is much nicer.
2024-01-26 23:45:57 +01:00
Kenny Levinsen
f0bc13bef7 output: Add scene output layout helper manually 2024-01-26 23:45:57 +01:00