Commit graph

481 commits

Author SHA1 Message Date
dcz
c4f1dfbbd0 Start new experimental text-input development
This commit introduces an experimental text-input protocol as a functionally exact copy of text-input-v3.

The goal of this is to arrive at an improved text-input-next protocol, without committing to backwards-compatible changes beforehand.

Signed-off-by: Dorota Czaplejewicz <gilapfco.dcz@porcupinefactory.org>
2025-10-28 13:33:25 +00:00
Pekka Paalanen
98f27dcf24 staging/color-management: add normative appendix
It is not possible to write equations nicely in the XML, so we need an
appendix.

First, the appendix explicitly defines the transfer functions that the
protocol enumeration refers to. Leaving them to be inferred from the
ITU-R and other specifications was too confusing.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2025-10-21 13:18:41 +03:00
Pekka Paalanen
f3e14e4007 staging/color-management: clarify the displayness
There have been complaints that it was not clear everything is
display-referred:
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/442#note_3079533

The section in Wayland documentation makes it very clear, so link to it.

Mention the attention to the display explicitly.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2025-10-21 11:21:49 +03:00
Pekka Paalanen
a5a33944a1 staging/color-management: remove references to H.273
References to H.273 are confusing people:
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/442#note_3079717

The confusion arises from H.273 usually referring to encoding standards
which only indirectly define a reference display. Wayland
color-management is only interested in the displays.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2025-10-21 11:21:49 +03:00
Pekka Paalanen
8271c366e4 staging/color-management: redefine set_luminance
The BT.1886 recommendation is impossible to implement precisely if
min_lum includes other sources than the display emission. BT.1886
transfer function requires L_W and L_B to determine the function
parameters black level lift and gain. The black level lift changes the
non-linearity, and cannot be implemented as an optical addition.

I believe the inclusion of optical additives, particularly the ambient
flare, came from sRGB specification. I do not recall seeing it anywhere
else.

Drop the optical additives from the definitions of the luminances. It
was probably incorrect for everything but sRGB, if they even had it
specified at all. This allows implementing BT.1886 as specified.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2025-10-21 11:06:31 +03:00
Pekka Paalanen
fff667c829 staging/color-management: remove notes about TF encoding
These wordings have raised confusion around encoding vs. decoding:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36444#note_3036854

Remove them, they didn't contain anything significant for the protocol.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2025-09-01 14:38:52 +03:00
Simon Ser
57c78b9b8a build: add headers to declare_dependency() sources
Before the dependency is usable, enum headers need to be built.
Fixes missing header files when wayland-protocols is used as a
subproject.

Signed-off-by: Simon Ser <contact@emersion.fr>
2025-08-27 16:15:07 +00:00
Simon Ser
ec65e4366b build: set includedir in pkg-config file
When wayland-protocols is installed to a custom prefix, we need to
point dependencies to that prefix' include dir.

Signed-off-by: Simon Ser <contact@emersion.fr>
2025-08-16 19:37:09 +02:00
dcz
9730142a7f xx-input-method: Clarify when state is reset
Signed-off-by: Dorota Czaplejewicz
2025-08-15 10:16:04 +00:00
dcz
47f7c72171 xx-input-method: fix typos
Signed-off-by: Dorota Czaplejewicz
2025-08-15 10:16:04 +00:00
dcz
6ac53b159f build: Add xx-input-method-v2
Signed-off-by: Dorota Czaplejewicz
2025-08-05 11:25:54 +00:00
Peter Hutterer
6a73aacd7c tablet: fix all comment-references to the zwp_tablet elements
Some of these used wl_tablet or the outdated wp_tablet.
No functional changes, only descriptions are affected.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2025-08-03 11:59:17 +00:00
Xaver Hugl
c61399a0cc xdg-shell: warn about putting UI outside of window geometry
There should only be decoration outside of it, no functional UI elements. This
is especially important on some compositors that clip windows to their window
geometry in some situations (like when it's in a tile).

Signed-off-by: Xaver Hugl <xaver.hugl@kde.org>
2025-08-03 11:38:49 +00:00
Simon Ser
46f46863b7 color-representation-v1: add protocol error for invalid chroma location
Clients are allowed to send any value from the enum (unlike other
requests where only supported values are allowed), however clients
are not allowed to send out-of-enum values.

Signed-off-by: Simon Ser <contact@emersion.fr>
2025-07-24 15:28:22 +00:00
dcz
abd33a52d8 xx-input-method-v2: Define a popup
The original MR did not copy the popup interface because it's been limited and inadequate for actual use.
This introduces a version heavily based on xdg-popup.

Signed-off-by: Dorota Czaplejewicz
2025-07-21 16:12:37 +00:00
Xaver Hugl
efbc060534 staging/ext-background-effect: fix capability value for blur
The value was zero because the enum was not a bitfield at some point when the protocol was
developed and I forgot to change the value to one when making it a bitfield.

This is technically a breaking change, but as the client could never receive the blur
capability before this commit, it won't actually break anything - it was already broken.

Signed-off-by: Xaver Hugl <xaver.hugl@kde.org>
2025-06-25 15:51:54 +02:00
0c79b5c96f
xdg-shell: Fix edge constraint typo
Signed-off-by: Mihai Fufezan <mihai@fufexan.net>
2025-06-14 00:06:42 +03:00
Jonas Ådahl
0091197f5c build: Bump version to 1.45
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2025-06-13 09:38:08 +02:00
Neal Gompa
b3f29d8a41 Add pointer warp protocol
This global interface allows applications to request the pointer
to be moved to a position relative to a wl_surface.

Co-authored-by: Xaver Hugl <xaver.hugl@kde.org>
Co-authored-by: Matthias Klumpp <matthias@tenstral.net>
Co-authored-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>

Signed-off-by: Neal Gompa <neal@gompa.dev>
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
2025-06-12 13:53:10 +00:00
Pekka Paalanen
dceda690c0 staging/color-management: recommend gamma22 instead of srgb
https://gitlab.freedesktop.org/pq/color-and-hdr/-/blob/main/doc/wayland_qa.md#q-should-srgb-content-be-decoded-with-the-piecewise-srgb-transfer-function

I found it unfortunate that we left in a TF code that will intuitively
be used incorrectly. It is as if we designed the protocol so that
compositors will need to fix up client image descriptions.

I am not aware of any use case that would want to target a display with
the sRGB piece-wise transfer function, that would be a non-standard
display.

This patch does not help compositors avoid needing to second-guess
client image descriptions using srgb TF, but it at least documents the
situation. We could choose to out-law srgb TF in a minor version bump,
or drop it completely in the next major version. Compositors can also
not advertise support for srgb TF.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2025-06-10 14:58:26 +03:00
Caitlyn Stewart
c855c8725b single-pixel-buffer-v1: clarify create_u32_rgba_buffer
Signed-off-by: Caitlyn Stewart <caitlynrosestewart@gmail.com>
2025-06-09 08:32:41 +00:00
dcz
3718d0077b text-input-v3: Replace "active"
"Active" is not defined anywhere. The meaning of "focused" can be extrapolated from surfaces to text fields.

Signed-off-by: Dorota Czaplejewicz
2025-06-05 16:23:23 +00:00
dcz
104eda7e1f text-input-v3: Clarify enabling and seats
This fixes the ambiguous language which caused https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/214 .

This also replaces "active" with "enabled" in the next sentence. No "active" state is defined anywhere in the document.

Signed-off-by: Dorota Czaplejewicz
2025-06-05 16:23:23 +00:00
Kirill Primak
f08dbbc7bd ext-workspace: fix a typo in the ext_workspace_handle_v1 description
Signed-off-by: Kirill Primak <vyivel@eclair.cafe>
2025-05-30 19:45:44 +03:00
Xaver Hugl
dac6393216 staging: add ext-background-effect-v1
This protocol allows the client to specify a region behind the surface that should
be blurred, with the intention to improve the visuals of for example panels or
terminals.

This protocol is roughly based on the org_kde_kwin_blur protocol, which has been
in use since 2015. The protocol is made more generically though, so that other
related effects can be added in the future, like for example contrast improvements.

Signed-off-by: Xaver Hugl <xaver.hugl@kde.org>
2025-05-26 15:00:56 +02:00
dcz
73b6115799 experimental/input-method: Implement only text-input counterparts
This change strips down the protocol to functionality that corresponds
to text-input-v3, is already useful, typically implemented in the wild
(squeekboard), and well-understood.

Dificult to implement well functionality like keyboard grabs is removed
to find a better solution without stopping the development of the basic
functionality.

Signed-off-by: Dorota Czaplejewicz
2025-05-22 11:00:54 +02:00
dcz
8d1ccbdebe experimental/input-method: Rename to xx_input_method_v2
This is a separate commit so that it's clear the base for this protocol
was just a copy with no changes.

It also includes the protocol in the build system.

Signed-off-by: Dorota Czaplejewicz
2025-05-22 11:00:54 +02:00
dcz
4da04536e8 Start an input-method protocol
This commit introduces an experimental input-method protocol as an exact
copy of the fle describing the unofficial zwp_input_method_v2 from
squeekboard.

It's also supported by wlroots and smithay.

This protocol is the counterpart to text-input-v3. It gives the
compositor a standard way to outsource the handling of the input method.

Signed-off-by: Dorota Czaplejewicz
2025-05-22 11:00:54 +02:00
Jonas Ådahl
eda9bb4651 experimental: Add xx-session-management-v1
This is identical to the experimental version implemented by kwin and
mutter.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2025-05-05 12:42:16 +02:00
Jonas Ådahl
c446847b7f build: Add 'experimental' protocols
These protocols are not installed; users need to access these files via
methods other than released tarballs, for example via a meson subproject.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2025-05-05 12:42:16 +02:00
Jonas Ådahl
810f1adaf3 build: Bump version to 1.44
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2025-04-23 15:57:30 +02:00
zorowk
f564b2312b color-representation-v1: correct 'RSMPTE' to 'SMPTE' in coefficients enum
Signed-off-by: zorowk pengwenhao@uniontech.com
2025-04-23 15:25:47 +08:00
Sebastian Wick
27107e1ba1 staging: add color-representation protocol
This new protocol aims to let clients define the remaining bits of the color
encoding they are using in their buffers.

In particular, this lets clients define the how the alpha has been encoded and
how conversions from YCbCr to RGB take place.

Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com>
Co-authored-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Co-authored-by: Robert Mader <robert.mader@collabora.com>
Co-authored-by: Sebastian Wick <sebastian.wick@redhat.com>
Co-authored-by: Simon Ser <contact@emersion.fr>
Co-authored-by: Xaver Hugl <xaver.hugl@kde.org>
2025-04-22 12:49:05 +02:00
Jonas Ådahl
4313a51a17 build: Bump version to 1.43
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2025-04-08 10:09:10 +02:00
Xaver Hugl
723270ad4a staging: add toplevel tag protocol
The window id protocol allows clients to set a tag for toplevels, which
the compositor can use to identify them even after the application
has been restarted. This persistent identification can be used by the
compositor to restore properties like position, size, "always on top",
and it can also be used for allowing users to create rules that change
compositor behavior for specific windows.

Signed-off-by: Xaver Hugl <xaver.hugl@kde.org>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
2025-04-02 16:16:43 +02:00
Xaver Hugl
7636151e4a meson: sort protocols alphabetically
Signed-off-by: Xaver Hugl <xaver.hugl@kde.org>
2025-04-02 16:16:24 +02:00
Jonas Ådahl
86750c99ed xdg-shell: Add edge constraints
An edge constraint is an complementery state to the tiled state, meaning
that it's not only tiled, but constrained in a way that it can't resize
in that direction.

This typically means that the constrained edge is tiled against a
monitor edge. An example configuration is two windows tiled next to each
other on a single monitor. Together they cover the whole work area.

The left window would have the following tiled and edge constraint
state:

  [ tiled_top, tiled_right, tiled_bottom, tiled_left,
    constrained_top, constrained_bottom, constrained_left ]

while the right window would have the following:

  [ tiled_top, tiled_right, tiled_bottom, tiled_left,
    constrained_top, constrained_bottom, constrained_right ]

This aims to replace and deprecate the `gtk_surface1.configure_edges`
event and the `gtk_surface1.edge_constraint` enum.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2025-03-25 09:41:38 +00:00
Simon Ser
00a5b23bfe color-management-v1: fix typo in feature.windows_scrgb
The request is named create_windows_scrgb.

Signed-off-by: Simon Ser <contact@emersion.fr>
2025-03-24 08:57:51 +00:00
Jonas Ådahl
a8d2201f0b build: Bump version to 1.42
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2025-03-24 09:37:50 +01:00
Peter Hutterer
8d0a52298b tablet: add support for relative dials
Some tablets provide one or more rotary controls (see e.g. the Huion
Inspiroy Dial 2) that provide delta information effectively equivalent
to a mouse wheel. Expose those in the same way as the strip or ring
controls, with the event matching the wl_pointer.axis_v120 approach.

Like a typical mouse wheel we do not expect there to be a source
information, so this is left out of the interface.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2025-03-19 20:52:18 +10:00
Peter Hutterer
96c8caa329 tablet: add a bustype event to the initial burst of tablet events
Just VID/PID is not enough, we need the bustype too. And since we now
have that event remove the mention of USB from zwp_tablet_v2.id.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2025-03-19 20:52:17 +10:00
Peter Hutterer
23bfdb50df tablet: bump the tablet protocol version
Unfortunately all the objects depend on each other so any change in any
requires bumping all versions.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2025-03-19 20:48:45 +10:00
Matthias Clasen
bd9096688a cursor-shape: Add the 'all-resize' cursor shape
The move cursor is ambiguous, since it is used in two context:
for DND, and for resizing. This commit adds a separate enum
value for a cursor that indicates something can be resized
in all directions. A suitable image for this value is a four-headed
arrow.

Signed-off-by: Matthias Clasen <mclasen@redhat.com>
2025-02-28 08:35:39 -05:00
Matthias Clasen
43620ec29a cursor-shape: Add the 'ask' cursor shape
This is the cursor shape that corresponds to the ASK drag action
in the core protocol. The expected semantics of ASK are that the
drop target presents the user with a choice of actions when the
drop happens. A typical image for this cursor is a default cursor
with a '?' emblem.

Signed-off-by: Matthias Clasen <mclasen@redhat.com>
2025-02-28 08:08:20 -05:00
Matthias Clasen
b697b9e45b cursor shape: Add some docs
Add some hints about related groups of cursor shapes and recommend
that they should use visually compatible images.

Signed-off-by: Matthias Clasen <mclasen@redhat.com>
2025-02-28 08:01:03 -05:00
Matthias Clasen
22619f08fd cursor-shape: Bump protocol version
We are going to add new values to the cursor shape enum,
so a new protocol version is needed.

Signed-off-by: Matthias Clasen <mclasen@redhat.com>
2025-02-28 08:01:02 -05:00
Nick Diego Yamane
d5aed4e490 governance: Add chromium as a member project
Signed-off-by: Nick Diego Yamane <nickdiego@igalia.com>
2025-02-21 12:58:12 +00:00
Vlad Zahorodnii
af2716ecfe members: Add Xaver Hugl as a KWin point-of-contact
Xaver is a KWin maintainer.

Signed-off-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
2025-02-18 14:32:16 +00:00
Jonas Ådahl
71da8bd7f9 build: Bump version to 1.41
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2025-02-17 16:34:30 +08:00
Pekka Paalanen
b3e507b102 staging/color-management: credit Niels
Niels' efforts predate Sebastian's by another 5 years and they deserve
to be mentioned.

Sorry for missing them from the commit.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2025-02-13 15:27:33 +02:00