mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-05-31 11:52:13 +00:00
Make layouts customizable (#361)
now layouts can be added from files, or default layouts can be copied and edited
This commit is contained in:
parent
450338c080
commit
54abf44628
21 changed files with 522 additions and 129 deletions
32
layouts.md
32
layouts.md
|
@ -1,12 +1,26 @@
|
|||
# Layouts
|
||||
A compilation of information about the layout formats usable in this app.
|
||||
|
||||
(WIP) information about the layout format
|
||||
There are two distinct formats:
|
||||
* the _simple_ format is a text file with one key per line, and two consecutive line breaks indicating a switch to the next row, [example](app/src/main/assets/layouts/qwerty.txt)
|
||||
* the _json_ format taken from [FlorisBoard](https://github.com/florisboard/florisboard/blob/master/CONTRIBUTING.md#adding-the-layout), but only "normal" keys are supported (i.e. no action keys and similar), [example](app/src/main/assets/layouts/azerty.json)
|
||||
|
||||
## simple
|
||||
One key per line, two consecutive newlines mark a row end.
|
||||
Key format: [label] [moreKeys], all separated by space, e.g. `a 0 + *` will create a key with text a, and the keys `0`, `+`, and `*` on long press. Some characters currently require escape using `\` (todo: add the list, or better add them in code instead of requiring it in the layouts).
|
||||
Special symbols: `%` (only for language-dependent moreKeys, not user defined, also better use sth like `%%%`) acts as placeholder for normal moreKeys. `$$$` will be replaced by currency (or default to `$`).
|
||||
Language-dependent moreKeys should never contain "special" moreKeys, i.e. those starting with `!` (exception for `punctuation`)
|
||||
## General notes
|
||||
Adding too many keys or too long texts will make the keyboard look awkward or broken, and even crash the app under some specific conditions.
|
||||
There are some sanity checks when adding a layout to avoid such issues, but they do not cover all possible cases.
|
||||
Further there is no check whether the layout actually contains characters of the selected language.
|
||||
|
||||
## json
|
||||
Character layouts from FlorisBoard, but missing code or label will be determined automatically. And not everything supported...
|
||||
If you use an external glide typing library, you likely will have issues if your layout contains duplicate keys, or keys with text longer than a single letter.
|
||||
|
||||
There are special key labels that are intended for internal use only, but can (currently) be set on custom layouts too. An example is `!icon/previous_key|!code/key_action_previous`, so it's unlikely you will stumble upon issues here when not intentionally provoking it.
|
||||
One special label that might be wanted though is `$$$`, which will be replaced by the local currency.
|
||||
|
||||
## Simple format
|
||||
* One key per line
|
||||
* Key format: [label] [popup keys], all separated by space, e.g. `a 0 + *` will create a key with text `a`, and the keys `0`, `+`, and `*` on long press
|
||||
* Two consecutive newlines mark beginning of a new row
|
||||
|
||||
## Json format
|
||||
* You can use character layouts from FlorisBoard
|
||||
* There is no need for specifying a code, it will be determined from the label automatically
|
||||
* Specify it if you want key label and code to be different
|
||||
* You can add a _labelFlag_ to a key for some specific effects, see [here](app/src/main/res/values/attrs.xml) in the section _keyLabelFlags_ for names and numeric values
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue