[hackers] [svkbd PATCH] Xft + Layers + Overlays + Mobile

From: Maarten van Gompel <proycon_AT_anaproy.nl>
Date: Fri, 24 Jul 2020 21:49:53 +0200

This is a big patch for svkbd, split into six parts to keep history from getting too convoluted. This
message summarizes all of the changes.

The overall intention is to make svkbd viable keyboard on a smartphone (the
pinephone in particular). Svkbd is the keyboard of choice in the SXMO project
(https://sr.ht/~mil/Sxmo/) by Miles Alan.

He had forked svkbd to make it more mobile friendly (smaller layout etc), his
combined changes constitute the first of this patch series.

I expanded upon this my adding the following functionality:

 * Added Xft and Xinerama support
 * Changed default fonts and layouts (default dark theme)
 * Multiple layers, svkbd now support as many layers as you want and there's a
   button to cycle between them.
 * Overlay support, you can now long-press (>1s) certain keys and
   an overlay will be put on the keyboard allowing you to enter variants
   of the pressed letter. This is used e.g. for input of diacritics or
   emojis. The overlay dissappears again as soon as a key is pressed.
   (note: this functionality inevitably affects the ability to press
   and without release hold certain keys and have them outputted on repeat)
 * Added a degree of configurability using command line parameters and environment variables,
   because some run-time flexibility is needed on mobile devices. Layers can be enabled/disabled on program start, overlay functionality can be disabled on program start or on the fly (with a button).
 * Made the original layouts compatible with the new implementation

The result is now that there are two new layouts:

 * intl - A small international layout optimised for mobile devices. This layout consists of multiple layers which
        can be switched on the fly, and overlays that appear on long-press of certain keys, adding input ability for
        diacritics and other variants, as well as some emoji. The available layers in this layout are:
    * a basic qwerty layer
    * a layer for numeric input, arrows, and punctuation
    * a layer for function keys, media keys, and arrows
    * a cyrillic layer (ЙЦУКЕН)
    * a dialer/numeric layer
 * sxmo - This is the original English layout for sxmo with only a qwerty layer and numeric/punctuation layer.

I made the new 'intl' layout the default, as it provides most of the features
one would expect on a mobile device. The older layouts should also work as they
did, and do not use any layers or overlays.

The README has been updated with more details.

This patch was also submitted downstream to SXMO, see the discussion here: https://lists.sr.ht/~mil/sxmo-devel/%3C20200718122732.1192398-1-proycon%40anaproy.nl%3E . But I think it makes most sense to incorporate these changes in svkbd itself rather than maintain a fork.
Received on Fri Jul 24 2020 - 21:49:53 CEST

This archive was generated by hypermail 2.3.0 : Fri Jul 24 2020 - 22:00:33 CEST