ardangelo / sharp-drm-driver

Linux DRM Driver for 2.7" Sharp Memory LCD
GNU General Public License v2.0
35 stars 15 forks source link

Move indicators out of display driver, generalized overlays #9

Closed ardangelo closed 8 months ago

ardangelo commented 8 months ago

The original key modifier overlays were implemented via ioctl calls that modified global state in the display driver, with hardcoded indicator icons. Notably, this caused crashes when modifier keys were pressed while entering or exiting X11. To fix this, and support a wider range of screen overlays, I changed the ioctl system to use Linux's DRM display ioctl subsystem, and expanded the overlay interface. Now, the keyboard driver is responsible for setting its own modifier overlays.

With the new screen overlay system, it is now possible to implement the symbol key overlay, to display which symbols are produced by a given Sym+key combination. A utility to parse the X11 keymap, render the symbols, and display them using the new screen overlay system is triggered by holding the Sym key.