abouttreesummaryrefslogcommitdiff
diff options
context:
space:
mode:
authorJules Aguillon2023-06-25 16:48:18 +0200
committerJules Aguillon2023-06-25 16:48:18 +0200
commitde6c3b024d9879fffc608126d974756624d6eec7 (patch)
tree55cfd1781493272f7571025da05f58577a217fbb
parent15c608b8cd663bf9267ade94d689164762c40ed9 (diff)
downloadunexpected-keyboard-de6c3b024d9879fffc608126d974756624d6eec7.tar.gz
unexpected-keyboard-de6c3b024d9879fffc608126d974756624d6eec7.zip
Update guidelines about adding layouts
to reflect the recent changes. Also, change `gen_layouts.py` to not generate warnings for file that are known not to be layouts.
-rw-r--r--CONTRIBUTING.md18
-rw-r--r--gen_layouts.py9
2 files changed, 20 insertions, 7 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3ad2bf9..c32282f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -77,16 +77,22 @@ make installd
### Adding a layout
-Layouts are defined in XML, see `res/xml/qwerty.xml`.
+Layouts are defined in XML, see `res/xml/latn_qwerty_us.xml`.
An online tool for editing layout files written by @Lixquid is available
[here](https://unexpected-keyboard-layout-editor.lixquid.com/).
-An entry must be added to the layout option in `res/values/arrays.xml`, to both
-`pref_layout_values` (correspond to the file name) and `pref_layout_entries`
-(display name).
+Makes sure to specify the `name` attribute like in `latn_qwerty_us.xml`,
+otherwise the layout won't be added to the app.
-The layout must also be referenced in `srcs/juloo.keyboard2/Config.java` in
-`layout_of_string`.
+The layout file must be placed in the `res/xml/` directory and named according to:
+- script (`latn` for latin, etc..)
+- layout name (eg. the name of a standard)
+- country code (or language code if more adequate)
+
+Then, run `make gen_layouts` to add the layout to the app.
+
+The last step will update the file `res/values/layouts.xml`, that you should
+not edit directly.
Run `make check_layouts` to check some properties about your layout. This will
change the file `check_layout.output`, which you should commit.
diff --git a/gen_layouts.py b/gen_layouts.py
index bea9ba1..a8f13c8 100644
--- a/gen_layouts.py
+++ b/gen_layouts.py
@@ -11,6 +11,11 @@ import xml.etree.ElementTree as XML
# are sorted alphabetically.
FIRST_LAYOUTS = [ "latn_qwerty_us", "latn_colemak", "latn_dvorak" ]
+# File names that are known not to be layouts. Avoid warning about them.
+KNOWN_NOT_LAYOUT = set([
+ "number_row", "numpad", "pin", "bottom_row", "settings", "method",
+ "greekmath", "numeric" ])
+
# Read a layout from a file. Returns [None] if [fname] is not a layout.
def read_layout(fname):
root = XML.parse(fname).getroot()
@@ -23,7 +28,9 @@ def read_layouts(files):
for layout_file in files:
layout_id, _ = os.path.splitext(os.path.basename(layout_file))
layout = read_layout(layout_file)
- if layout == None:
+ if layout_id in KNOWN_NOT_LAYOUT:
+ continue
+ elif layout == None:
print("Not a layout file: %s" % layout_file)
elif layout["name"] == None:
print("Layout doesn't have a name: %s" % layout_id)