Re: [hackers] [svkbd] Xft + Layers + Overlays + Mobile

From: Hiltjo Posthuma <>
Date: Sun, 2 Aug 2020 18:42:34 +0200

On Sun, Aug 02, 2020 at 03:46:05PM +0200, Maarten van Gompel wrote:
> This is v2 of a big patch for svkbd. 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
> ( by Miles Alan.
> On request by Hiltjo I squashed less commits so the incremental history
> should be clearer, although this does result in a much longer patch series
> (14 now).
> This message summarizes all of the changes. I incorporated all the
> feedback I received from Hiltjo, but be aware this occurs in patches 12
> and 13 of this series, so bear with me as you work through the earlier
> patches. It's an incremental/evolutionary path.
> Miles had forked svkbd to make it more mobile friendly (smaller layout etc), the first
> few patches are his unaltered contributions, I hope they come through correctly
> as-such when I send them with git-send-mail (thought I had some issues last time
> but all turned out well in the end).
> I expanded upon his work by 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:
> * mobile-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
> * mobile-plain - This is the original English layout for sxmo with only a qwerty layer and numeric/punctuation layer.
> I made the new 'mobile-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 and partially applied,
> see the discussion here:
> and here:
> . But I think it makes most sense to incorporate these changes in svkbd
> itself rather than maintain a fork.

Oops and to add:

The environment variables should also be documented:


Kind regards,
Received on Sun Aug 02 2020 - 18:42:34 CEST

This archive was generated by hypermail 2.3.0 : Sun Aug 02 2020 - 18:48:32 CEST