Commit graph

144 commits

Author SHA1 Message Date
may
0ffe6ae718
wayland: Implement cursor-shape-v1 2024-09-09 16:21:27 +02:00
skewballfox
7da0bc430a added cursor_follows_focus and focus_follows_cursor 2024-09-04 20:22:40 +02:00
Victoria Brekenfeld
971c28db38 xwayland: Add descaling option 2024-09-02 18:58:13 +02:00
Ian Douglas Scott
ed64e26faf Add xdg-foreign-unstable-v2 protocol 2024-08-30 13:08:08 +02:00
Ian Douglas Scott
1342c000ab Add ext-foreign-toplevel-list-v1 protocol 2024-08-29 17:04:12 +02:00
Ian Douglas Scott
889499b64d Add single-pixel-buffer-v1 2024-08-21 09:26:13 -06:00
Victoria Brekenfeld
3eb002c3f1 state: Also set primary_output/preferred_scale for lock/cursor-surfaces 2024-08-08 21:26:30 +02:00
Ian Douglas Scott
5537fa4822 Use EGL_MESA_device_software as fallback for screen capture
Previously, screenshots and screencopy panicked if no DRM render nodes
are present.

Instead, create a `GlowRenderer` using llvmpipe, if available. This
should work as a fallback until pixman is integrated.
2024-08-07 10:49:39 -07:00
Ian Douglas Scott
87020c79ba Define a RendererRef enum, referencing multi or glow renderer
Avoids a little duplication (matching two variants, instead of three
backends).

The behavior, including errors and panics, should be unchanged for now.
Performance should also not be impacted.

This should help for adding llvmpipe rendering without a device node on
the kms backend, or for adding a variant for pixman.
2024-08-07 10:49:39 -07:00
Michael Aaron Murphy
553c49b42b feat: runtime configurable keybindings 2024-07-01 15:20:23 +02:00
Victoria Brekenfeld
26ccb653b7 output: Store position as u32 and offset bad configs 2024-06-27 12:34:51 +02:00
Victoria Brekenfeld
eea93d543e state: Correctly update primary output 2024-06-26 12:59:33 +02:00
Victoria Brekenfeld
12fab6e220 kms: Don't block surface-threads on startup cond 2024-06-26 12:59:33 +02:00
Victoria Brekenfeld
31ff17a323 kms: Limit frame-callbacks to one per refresh 2024-06-26 12:59:33 +02:00
Victoria Brekenfeld
92f3dbce01 chore: Cleanup 2024-06-26 12:59:33 +02:00
Victoria Brekenfeld
cc0bbb61e3 debug: Drop FPS struct for kms timings 2024-06-26 12:59:33 +02:00
Victoria Brekenfeld
469a366207 kms: New backend
New backend utilizing a thread per surface for precise frame
scheduling.
2024-06-26 12:59:33 +02:00
Victoria Brekenfeld
3b7bba3add debug: Drop puffin, interactivity, renderdoc 2024-06-26 12:59:33 +02:00
Victoria Brekenfeld
9e05a84db2 state: Split up send_frames 2024-06-26 12:59:33 +02:00
Victoria Brekenfeld
f481112cf9 output-configuration: Test all outputs at once 2024-06-26 12:59:33 +02:00
Ian Douglas Scott
036ca84829 Add alpha-modifier-v1 protocol 2024-06-10 14:31:51 +02:00
Ian Douglas Scott
4f076e0753 Update smithay, with xwayland shell, Cow, etc. 2024-05-21 19:31:50 +02:00
Ian Douglas Scott
47f8c1da38 Define a advertised_node_for_client instead of duplicating code
Can't use this in `SecurityContextHandler` since it only has a `ClientId`,
not a `Client`.
2024-05-15 13:12:24 +02:00
Ian Douglas Scott
73b12194c0 Update smithay 2024-05-10 13:51:28 +02:00
Ian Douglas Scott
a9740e5040 Change how COSMIC_ENABLE_WAYLAND_SECURITY/privileged is handled
Manually starting `cosmic-panel` was not working properly in release
builds, because without `cfg!(debug_assertions)`, the `privileged` flag
wasn't sent on the panel, so it couldn't be propagated to the applets,
which also fail the `client_has_no_security_context()` check.

I don't see a way to have both the `cfg!(debug_assertions)` check and
`COSMIC_ENABLE_WAYLAND_SECURITY`. Now only the latter is used, and it
determines the value of `privileged` for clients started normally. In
the future, we could make the default value of
`COSMIC_ENABLE_WAYLAND_SECURITY` depend on `cfg!(debug_assertions)` if
desired.

This also corrects the inconsistency that the `cfg!(debug_assertions)`
check wasn't applied to the render-node-specific Wayland sockets.
2024-05-08 13:10:07 +02:00
Victoria Brekenfeld
5f4377bf59 wayland: Add cosmic-output-management 2024-05-07 12:25:15 +02:00
Victoria Brekenfeld
98ec82db77 output-configuration: Add vrr state 2024-05-07 12:25:15 +02:00
Mattias Eriksson
19ba568f02 Initial support for idle notify and idle ihibit 2024-05-03 14:38:58 +02:00
Victoria Brekenfeld
5d5a510691 state: Move shell behind RwLock 2024-04-16 18:50:54 +02:00
Victoria Brekenfeld
647deb81f1 shell: Move seats into shell 2024-04-16 18:50:54 +02:00
Victoria Brekenfeld
b40d153809 cosmic-screencopy-v2 2024-03-25 16:55:31 +01:00
Ryan Brue
fc2173d028 feat: workspace switching touchpad gestures 2024-03-22 12:12:25 +01:00
Ian Douglas Scott
a1c8b3aa3e Add support for profiling using tracy 2024-03-20 23:55:21 +01:00
Victoria Brekenfeld
ddea391129 state: Always send throttled frame callbacks for minimized windows 2024-03-04 19:20:52 +01:00
Victoria Brekenfeld
7776d057da state: Consistent frame callbacks for sticky windows 2024-03-04 19:20:52 +01:00
Victoria Brekenfeld
fffae1491d state: Also arrange empty layer-map for scale changes 2024-03-04 19:20:52 +01:00
Victoria Brekenfeld
db27fa483d kms: Optimize frame scheduling 2024-02-19 13:09:49 +01:00
Victoria Brekenfeld
96518a9f29 state: Fixup grabbed window frame callbacks 2024-02-19 13:09:49 +01:00
Victoria Brekenfeld
d8c1087ebe dbus: Add power-daemon hotplug handling 2024-02-19 13:09:49 +01:00
Victoria Brekenfeld
ef3486f7e0 kms: Track used devices and free resources 2024-02-19 13:09:49 +01:00
Victoria Brekenfeld
98f877359f state: Send frame/dmabuf_feedback/presentation events to sticky windows 2024-01-02 13:24:07 +01:00
Ian Douglas Scott
cf9ae91e96 Initial support for tablet input 2024-01-02 12:44:10 +01:00
Victoria Brekenfeld
8c4d77e43c shell: Add window menu 2023-12-12 18:39:41 +01:00
Victoria Brekenfeld
c09a735289 state: Move Xwayland state into shell 2023-11-23 12:57:42 +01:00
Ian Douglas Scott
41a69cfc9f Update Smithay
For the `drm` protocol, we can't construct an `ImportNotifier`, since
that is specifically based around `ZwpLinuxBufferParamsv1`. So we need a
new method for importing with that protocol.

This could be improved, but should match current behavior.
2023-11-23 12:43:28 +01:00
Ian Douglas Scott
440cd03371 Handle session lock surfaces in visible_outputs_for_surface
Fixes issue with re-draw not being queued on initial surface commit
until cursor is moved.
2023-11-15 13:41:19 +01:00
xDarksome
72ee1c4d5a
Enable wlr_data_control protocol (#101) 2023-11-13 21:47:43 +01:00
Victoria Brekenfeld
542fe1f52d state: fix privileged access with sec context 2023-11-08 14:50:54 +01:00
Ian Douglas Scott
5fcdd81fc3 Enable necessary protocols for supporting IMEs 2023-11-07 10:26:22 -08:00
Ian Douglas Scott
9abeeea5df Allow session lock if existing session lock is no longer valid
This makes it possible to handle a crash in the session lock client by
restarting it, for instance. This is similar to how Sway behaves.
2023-11-07 08:31:58 -08:00