<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unexpected-keyboard/gen_layouts.py, branch skintones</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/'/>
<entry>
<title>Python script encoding fix (#1093)</title>
<updated>2025-09-03T20:41:10+00:00</updated>
<author>
<name>Autissima</name>
</author>
<published>2025-09-03T20:41:10+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=5b3dc8d5ed4d73d5fa7bb8028d467a923dfbd191'/>
<id>5b3dc8d5ed4d73d5fa7bb8028d467a923dfbd191</id>
<content type='text'>
* Changed Python scripts so they work on my machine

file open() used default encoding (cp1252 on my machine) but the text is utf-8, had to specify encoding in check_layout.py
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Changed Python scripts so they work on my machine

file open() used default encoding (cp1252 on my machine) but the text is utf-8, had to specify encoding in check_layout.py
</pre>
</div>
</content>
</entry>
<entry>
<title>Update comment in res/values/layouts.xml</title>
<updated>2024-12-04T22:01:39+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-12-04T22:01:39+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=b6a8b4a28503be33377c75bca59b3ea36bef6fa3'/>
<id>b6a8b4a28503be33377c75bca59b3ea36bef6fa3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move layout definitions into srcs/layouts</title>
<updated>2024-01-21T15:34:49+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-01-21T15:34:49+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=ad7314a01684185f5cf33cc31ef35d1027776a88'/>
<id>ad7314a01684185f5cf33cc31ef35d1027776a88</id>
<content type='text'>
This separates the layout definitions from the special layouts
(bottom_row, greekmath) and other unrelated files (method, settings).

This is also a more intuitive location for layouts and make the resource
directory easier to navigate.

Under the hood, layouts are copied back into
build/generated-resources/xml.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This separates the layout definitions from the special layouts
(bottom_row, greekmath) and other unrelated files (method, settings).

This is also a more intuitive location for layouts and make the resource
directory easier to navigate.

Under the hood, layouts are copied back into
build/generated-resources/xml.
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow multiple custom layouts</title>
<updated>2023-08-16T10:21:23+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2023-08-10T10:57:31+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=500f4e41d3a72f5865aa489c89ad11b947fa54b7'/>
<id>500f4e41d3a72f5865aa489c89ad11b947fa54b7</id>
<content type='text'>
This merges the "Layouts" option with the "Custom layout" option.
A custom layout becomes an item in the "Layouts" list among the other
layouts. It's possible to add several custom layouts.

Selecting the "Custom layout" item in the list opens a second dialog for
entering the layout description.

Layouts are serialized as JSON object and are decoded solely in the
LayoutsPreference class.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This merges the "Layouts" option with the "Custom layout" option.
A custom layout becomes an item in the "Layouts" list among the other
layouts. It's possible to add several custom layouts.

Selecting the "Custom layout" item in the list opens a second dialog for
entering the layout description.

Layouts are serialized as JSON object and are decoded solely in the
LayoutsPreference class.
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow more than 2 layouts</title>
<updated>2023-07-30T19:44:14+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2023-07-29T16:37:06+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=dad5f57a036e3f0ad7278ccee5bd248192cbbad2'/>
<id>dad5f57a036e3f0ad7278ccee5bd248192cbbad2</id>
<content type='text'>
The two layout selection options are replaced by a ListGroupPreference
that allow to enter an arbitrary amount of layouts.

The "switch_second" and "switch_second_back" keys are replaced by
"switch_forward" and "switch_backward", which allow to cycle through the
selected layouts in two directions.

Layouts are changed to place these two key on the space bar.
The backward key is not shown if there's only two layouts.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The two layout selection options are replaced by a ListGroupPreference
that allow to enter an arbitrary amount of layouts.

The "switch_second" and "switch_second_back" keys are replaced by
"switch_forward" and "switch_backward", which allow to cycle through the
selected layouts in two directions.

Layouts are changed to place these two key on the space bar.
The backward key is not shown if there's only two layouts.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update guidelines about adding layouts</title>
<updated>2023-06-25T14:48:18+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2023-06-25T14:48:18+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=de6c3b024d9879fffc608126d974756624d6eec7'/>
<id>de6c3b024d9879fffc608126d974756624d6eec7</id>
<content type='text'>
to reflect the recent changes. Also, change `gen_layouts.py` to not
generate warnings for file that are known not to be layouts.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
to reflect the recent changes. Also, change `gen_layouts.py` to not
generate warnings for file that are known not to be layouts.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use generated arrays in Config.layout_of_string</title>
<updated>2023-06-25T14:34:05+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2023-06-25T14:34:05+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=15c608b8cd663bf9267ade94d689164762c40ed9'/>
<id>15c608b8cd663bf9267ade94d689164762c40ed9</id>
<content type='text'>
This function is no longer an hardcoded list of layout ids. It's
replaced by a linear scan of the previously generated array and a new
corresponding array of resource ids.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This function is no longer an hardcoded list of layout ids. It's
replaced by a linear scan of the previously generated array and a new
corresponding array of resource ids.
</pre>
</div>
</content>
</entry>
<entry>
<title>Generate layouts arrays used in settings</title>
<updated>2023-06-25T13:52:24+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2023-06-25T13:52:24+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=8ba82d2555342f6cf5e14d19c1d7bcadf46ab604'/>
<id>8ba82d2555342f6cf5e14d19c1d7bcadf46ab604</id>
<content type='text'>
`gen_layouts.py` lists the layouts in `res/xml` and generate the
`pref_layout_values` and `pref_layout_entries` arrays into
`res/values/layouts.xml`.

These arrays are hard to maintain as the order has to match, which is
fragile.

This relies on every layouts having a `name` attribute.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`gen_layouts.py` lists the layouts in `res/xml` and generate the
`pref_layout_values` and `pref_layout_entries` arrays into
`res/values/layouts.xml`.

These arrays are hard to maintain as the order has to match, which is
fragile.

This relies on every layouts having a `name` attribute.
</pre>
</div>
</content>
</entry>
</feed>
