The Linux kernel adds a few evdev keycodes roughly every other release. These
aren't available as keysyms through XKB until they have been added as keycode
in xkeyboard-config and mapped there to a newly defined keysym in the X11
proto headers.
In the past, this was done manually, a suitable keysym was picked at
random and the mapping updated accordingly. This doesn't scale very well and,
given we have a large reserved range for XF86 keysyms anyway, can be done
easier.
Let's reserve the range 0x10081XXX range for a 1:1 mapping of Linux kernel
codes. That's 4095 values, the kernel currently uses only 767 anyway. The
lower 3 bytes of keysyms within that range have to match the kernel value to
make them easy to add and search for. Nothing in X must care about the actual
keysym value anyway.
Since we expect this to be parsed by other scripts for automatic updating, the
format of those #defines is quite strict. Add a script to generate keycodes as
well as verify that the existing ones match the current expected format.
The script is integrated into the CI and meson test, so we will fail if an
update breaks the expectations.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Build an Arch image that tests a meson build with all build options we support
(well, the single one so far).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
We've been adding to those over the last few years. Not a huge amount but
enough that we should stop pretending we don't touch that header.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
They are fixed length (4 characters), and don't need NUL-terminators.
This makes gcc stop warning when they're not NUL-terminated, and instead
warn if they are passed to functions expecting NUL-terminated strings.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Meson's pkg.generate() is not suitable for header only libraries
and using configure_file() allows for more fine tuned control.
This also makes the meson and autotools builds more in sync where
they both use the same .pc.in files.
v2: Drop exec_prefix.
As of version 7.7, the X protocol does not define a Unicode equivalent for
them. The U+27E8 and U+27E9 equivalents were introduced by 618956f1f ("The
big keysym cleanup, to bring implementation in line with the recent revision
of Appendix A of the protocol spec."), but as xterm Patch #226 explicitly
notes, U+2329 and U+232A should be used rather than U+27E8 and U+27E9. Gtk
also inherited this.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Add XF86XK_FullScreen keysym, to be used as mapping for evdev's
KEY_FULL_SCREEN.
Chromebooks have a special media key for toggling full screen mode.
Signed-off-by: Sebastian Wick <sebastian@sebastianwick.net>
This will allow applications to respond to changes of power level
of a monitor, e.g. an application may stop rendering and related
calculations when the monitor is off.
Bump DPMS version to 1.2, install dpmsproto.pc.
Signed-off-by: Alexander Volkov <a.volkov@rusbitech.ru>
The Meson and Autotools builds disagree about what extensions are legacy.
This patch makes the Meson build identical to autotools.
Signed-off-by: Ross Burton <ross.burton@intel.com>
These headers refer to libX11 types and don't belong in this package.
libX11 and libXv have been updated to supply these headers themselves
now, so these are only useful for building older versions of those
libraries.
Fixes: xorg/proto/xorgproto#10
The parameter for alloca() was "int" for the (long-obsolete) SunOS 4.
In Solaris and anything newer than the early 1990s, it is "size_t".
Signed-off-by: Thomas E. Dickey <dickey@invisible-island.net>
We didn't document the 'update' parameter, which has to match what the
client previously requested. Also, the server, client library, and
protocol header call it UnredirectSubwindows, not UnredirectWindows.
Fixes: xorg/proto/xorgproto#15
automake only recognizes EXTRA_DIST - but it looked like it worked since
the *.pc.in were included since they're listed in configure.ac, unless
you tried building from the tarballs with --enable-legacy, and then it
broke.
Also adds --enable-legacy to the flags that "make distcheck" uses to
configure, to catch problems like this.
Fixes: https://gitlab.freedesktop.org/xorg/proto/xorgproto/issues/12
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Add XF86XK_RotationLockToggle keysym, to be used as mapping for evdev's
KEY_ROTATE_LOCK_TOGGLE.
I've a Point of View P1006W-232 Windows tablet which actually has a
rotate-lock toggle-button. The latest kernel correctly generates
KEY_ROTATE_LOCK_TOGGLE events for this. So now I'm hooking up support for
it through all the higher layers.
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jian-Hong Pan <jian-hong@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Add XF86XK_MonBrightnessCycle keysym, to be used as mapping for evdev's
KEY_BRIGHTNESS_CYCLE keycode which is generated from ACPI video module's
ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS on some Acer AIO desktop buttons.
The button changes the screen's brightness on Windows.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=108861
Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
These have always done nothing on all platforms except CRAY.
As https://bugs.freedesktop.org/show_bug.cgi?id=45202 points out
we don't even detect when they've been wrong for decades.
Performed via:
find include -name '*.h' | grep -v md.h | xargs perl -i -p -e 's{\s+B\d+}{}g'
followed by manual whitespace fixups to preserve visual alignment.
The #defines for B16 & B32 are left in place to preserve compatibility
in any code that used them outside the xorgproto repo.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Acked-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
It failed to mention it is followed by a bit-mask and then the atoms.
Signed-off-by: Roman Kapl <code@rkapl.cz>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>