accessibility: implementation of zoom/invert on Wayland?

Carlos Garnacho carlosg at
Thu Jul 1 23:24:09 UTC 2021

Hi Patrick,

On Thu, Jul 1, 2021 at 11:11 PM Patrick Pelletier
<code at> wrote:
> Hi,
> I'm new to Wayland and only have a fairly basic understanding of how the
> different parts fit together.  I'm trying to find out more about how the
> following two accessibility features (for visually impaired users) are
> implemented and how I might be able to contribute to them:
> * Zoom
> * Invert colors
> For example, these features are described in the Ubuntu documentation here:
> I'm assuming zoom and invert are implemented in the Wayland compositor?
> Is there any code for this in the reference implementation (Weston) or
> does each desktop environment have to implement these features from
> scratch in their own compositor?
> Background/motivation: I have a visually impaired friend who is
> currently "trapped" on MacOS because Linux's implementation of zoom and
> invert does not have feature parity with MacOS's implementation.  (For
> example, keyboard or keyboard+mouse shortcuts for changing the zoom
> factor on the fly.)  I'd like for her to be able to use Linux, so I'm
> interested in finding out how I can contribute to solving the following
> problems:
> * Some desktop environments (such as Xfce) don't seem to support zoom
> and invert at all.
> * The default desktop environment for Ubuntu (see link above) implements
> zoom and invert in a very clunky way.  To change the zoom factor, you
> have to go to the settings application.  (Versus just being able to use
> a modifier key and the scroll gesture to be able to zoom in and out on
> MacOS.)

It seems that this piece of the documentation is incomplete, the
"<super><alt>Plus" and "<super><alt>Minus" keyboard shortcuts should
work to change zoom level when Zoom is enabled..

> Also, it appears that there is no way to invert without also
> turning on zoom.

The zoom level goes down to 1.0, that would achieve inverted+unzoomed.

> Is this a battle that has to be fought on a per-desktop environment
> basis, or would it be possible to contribute some code to Weston that
> would make a good implementation of zoom and invert available to all
> desktop environments?

For these specific accessibility features, this is something that each
compositor has to deal with by themselves. Wayland is largely an IPC
protocol, and does not specify how images get to your screen. Weston
is a reference implementation of a wayland compositor, but that does
not mean its graphics layer shall be reused by other implementations.

FWIW, Weston already implements <super>scroll to zoom in/out, only
palette inversion is missing AFAICS.


More information about the wayland-devel mailing list