Replace the short video with an animated vector image that shows the
swipe gesture.
This is much lighter and reliable than the mp4 video, which failed to
play on many devices.
Source for the image of the key is in inkscape SVG format in srcs/res
and is converted to an android drawable when needed. The swipe animation
is hand-written.
Add the ':char' syntax for defining character keys with a different
symbol.
This new kind of keys is used to implement Ctrl combinations in the
Serbian Cyrillic layout without showing latin letters while the Ctrl
modifier is activated.
This allows to add new kinds of keys that need more data without making
KeyValue's footprint bigger for common keys.
This changes the [_symbol] field into [_payload], which holds the same
as the previous field for more common keys but can hold bigger objects
for keys of the new "Complex" kind.
This also adds a complex key: String keys with a symbol different than
the outputted string.
Unit tests are added as the Java language is not helpful in making
robust code.
* shell.nix: fix gradle error
error was:
> \> Task :compileDebugJavaWithJavac FAILED
> error: Source option 7 is no longer supported. Use 8 or later.
> error: Target option 7 is no longer supported. Use 8 or later.
fixed by overriding the jdk version for gradle to openjdk17
* layouts/latn_bone: fix layout
- fix alignment with tabs mess
- make like actual bone layout, instead of trying to fit it into a 10 key
wide keyboard
- fixes missing üäö
- fix missing $
- moves q and ß where they belong
- remove all of the diacritic keys (they can be added through the
settings as extra keys)
- kept the number row extra keys integration into top row
- kept the idea of compressing , and . into the swipe actions of the
bottom row
- kept the number keys as key4 in the layer4 positions (instead of
moving them to a number row, which i also considered)
Put new example in Examples section; put all overview material at start; use "modmap" for the modmap tag but "mapping" for the various subtags; set out each subtag separately; stop illustrating example mappings as complete modmap.
Include comprehensive ctrl modmap, enabling the use of ctrl modifier with Serbian Cyrillic keys. Remove clunky fn modmap previously used for just a few actions such as cut/copy/paste/etc.
The 'ctrl' modmap is different from the other modmaps as it also applies
the built-in Ctrl modifier to the resulting character, even if it was
first modified by the custom modmap.
For example, this will map Ctrl+в to Ctrl+V (not to v):
<ctrl a="в" b="v"/>
This is intended to add keyboard shortcuts in non-latin layouts.
A caveat is that the latin character appears on the keyboard while Ctrl
is activated.