Cursor sizes on wayland
Martin Flöser
mgraesslin at kde.org
Sun May 13 15:34:02 UTC 2018
Am 2018-05-09 12:08, schrieb Aleix Pol:
> On Tue, May 8, 2018 at 8:57 PM, Martin Flöser <mgraesslin at kde.org>
> wrote:
>>
>>
>> Am 8. Mai 2018 17:05:57 MESZ schrieb Aleix Pol <aleixpol at kde.org>:
>>> Hi,
>>> I've been looking into getting a consistent cursor look on wayland,
>>> which is specially daunting because of scaling.
>>>
>>> I'd like to look into fixing it for xwayland clients. Would somebody
>>> be able to shed some light into the issue so I can understand it and
>>> fix it?
>>>
>> Xwayland clients use the normal X11 API to set cursors. Xwayland just
>> forwards them through the Wayland protocol. The env variable for
>> cursor size is the same on Wayland and X11, so there should not be any
>> difference.
>>
>> I'm not sure what exactly you want to look into. Personally I had the
>> feeling that apps started to act crazy concerning cursor sizes - on
>> Wayland and on X11. Normally there just should not be any difference.
>> There's one env variable controlling it and if all apps would just use
>> it and not do crazy stuff instead it would just work.
>
> Well, setting the cursor size isn't any useful if you have two
> monitors. I have it configured at resolution-dependent at the moment
> and sometimes I lose my cursor on my high dpi screen.
> If I use something bigger, when I move it to my external monitor I get
> a monstrosity.
>
> David mentioned at the sprint that we maybe should be correcting its
> scale on the kwin size, if it's not being scaled yet.
This might be part of the solution. This needs a more general solution
and might require changes to Wayland protocols and each toolkit and
KWin.
For "normal" windows we use the wl_surface::enter to inform on which
output they are. Thus they can adjust for different dpi. Similar there
is the scale information on a wl_surface.
For a cursor wl_surface KWin neither emits the output information nor
uses the scale information. Both would be relative easy to implement.
But only makes sense if toolkits support it. Last time I looked at Qt
code, Qt did not (but that's some time ago).
So to get this properly working, I would suggest to add the output
enter/leave information to cursor surfaces and honor scale in KWin. Then
add the same to QtWayland if it doesn't exist already.
Cheers
Martin
More information about the Plasma-devel
mailing list