<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unexpected-keyboard/srcs/compose/compile.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>Better suggestion with diacritics (#1223)</title>
<updated>2026-04-10T17:08:23+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2026-04-10T17:08:23+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=833b4a21549f7ea8067291f344f6acdeaff3f079'/>
<id>833b4a21549f7ea8067291f344f6acdeaff3f079</id>
<content type='text'>
* Update cdict

* scripts/subst_of_compose.py: Compute substitutions

from compose mappings. They are used when building dictionaries.

* Add substitutions compose data

* Better suggestion with diacritics

This improves the suggestions for words that contain diacritics and
uppercase letters.

This works by stripping diacritics both when building the dictionaries
(using word aliases added in cdict: https://github.com/Julow/cdict/pull/3)
and during lookup. Cdict then takes care of resolving the correct word.

The substitutions are generated using mappings from `fn`, `shift` and
all the `accent_*` modifiers into srcs/compose/substitutions.json
This can be updated easily when more mappings are added.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Update cdict

* scripts/subst_of_compose.py: Compute substitutions

from compose mappings. They are used when building dictionaries.

* Add substitutions compose data

* Better suggestion with diacritics

This improves the suggestions for words that contain diacritics and
uppercase letters.

This works by stripping diacritics both when building the dictionaries
(using word aliases added in cdict: https://github.com/Julow/cdict/pull/3)
and during lookup. Cdict then takes care of resolving the correct word.

The substitutions are generated using mappings from `fn`, `shift` and
all the `accent_*` modifiers into srcs/compose/substitutions.json
This can be updated easily when more mappings are added.</pre>
</div>
</content>
</entry>
<entry>
<title>compose: Add compose+A+e as compose+A+E and many others</title>
<updated>2025-05-15T22:59:35+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2025-05-15T22:59:35+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=a7312054b56ad3bdbc62d03c774b5942db9852e9'/>
<id>a7312054b56ad3bdbc62d03c774b5942db9852e9</id>
<content type='text'>
compile.py is changed to report when compose+Upper+Upper exists but
compse+Upper+Lower do not.

With these findings, many sequences are added.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
compile.py is changed to report when compose+Upper+Upper exists but
compse+Upper+Lower do not.

With these findings, many sequences are added.
</pre>
</div>
</content>
</entry>
<entry>
<title>Compose: Allow to force string final states</title>
<updated>2024-12-18T23:59:27+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-12-17T10:27:09+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=82e472ba469c44272e6e3cfd5b9e047a7121ef68'/>
<id>82e472ba469c44272e6e3cfd5b9e047a7121ef68</id>
<content type='text'>
Appending the ':' character to a sequence result forces it to be a
string final state. This will cause a KeyValue lookup that would
normally not happen for single-character results.
This is useful to make Tamil letters smaller, even when they are the
result of a Shift.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Appending the ':' character to a sequence result forces it to be a
string final state. This will cause a KeyValue lookup that would
normally not happen for single-character results.
This is useful to make Tamil letters smaller, even when they are the
result of a Shift.
</pre>
</div>
</content>
</entry>
<entry>
<title>compose: Fix parsing of long sequences from json files</title>
<updated>2024-12-18T23:34:24+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-12-18T23:34:24+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=4a429357ef9faa409617f867e224bc8c6814d919'/>
<id>4a429357ef9faa409617f867e224bc8c6814d919</id>
<content type='text'>
Sequences longer than two characters were not read correctly from json
files, creating conflicts and causing dropped sequences.

The detection of collision in sequences is also improved. Two colliding
sequences are removed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sequences longer than two characters were not read correctly from json
files, creating conflicts and causing dropped sequences.

The detection of collision in sequences is also improved. Two colliding
sequences are removed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add Fn layer and Compose sequences for Cyrillic</title>
<updated>2024-09-29T20:47:57+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-09-29T20:47:57+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=9f0cf15d2e5eee9eb255d4a10969b5cb0d76c864'/>
<id>9f0cf15d2e5eee9eb255d4a10969b5cb0d76c864</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>compose: Deduplicate end states</title>
<updated>2024-09-14T13:13:04+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-09-14T13:13:04+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=b61e9db21e2898f9a1cedcfc4f93e88094551723'/>
<id>b61e9db21e2898f9a1cedcfc4f93e88094551723</id>
<content type='text'>
Make compose sequences ending in the same character to share the ending
state.
This reduce the compiled compose key data size from 33kB to 27kB.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make compose sequences ending in the same character to share the ending
state.
This reduce the compiled compose key data size from 33kB to 27kB.
</pre>
</div>
</content>
</entry>
<entry>
<title>compose: Allow c-style comments in json files</title>
<updated>2024-09-10T20:43:05+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-09-10T20:43:05+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=e734d1d0e240e19c978c5ce26d171277fe3cb85a'/>
<id>e734d1d0e240e19c978c5ce26d171277fe3cb85a</id>
<content type='text'>
Useful to manager growing the collection of sequences.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Useful to manager growing the collection of sequences.
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow extending the compose key (#713)</title>
<updated>2024-07-21T21:37:07+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-07-21T21:37:07+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=2696f42144f42b1c4c270555047d40095693d3c4'/>
<id>2696f42144f42b1c4c270555047d40095693d3c4</id>
<content type='text'>
This allows adding more compose sequences without modifying
en_US_UTF_8_Compose.pre.

This is done by grouping sequences files that should be merged together
into a directory. This also allows moving keysymdef.h into that
directory.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows adding more compose sequences without modifying
en_US_UTF_8_Compose.pre.

This is done by grouping sequences files that should be merged together
into a directory. This also allows moving keysymdef.h into that
directory.</pre>
</div>
</content>
</entry>
<entry>
<title>compose: Compile several starting states</title>
<updated>2024-06-09T09:52:17+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-06-09T09:10:20+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=ecac6a77f8954269b76ecbf5c6fa7f5fda65242f'/>
<id>ecac6a77f8954269b76ecbf5c6fa7f5fda65242f</id>
<content type='text'>
Sequences from several files are no longer merged but compiled to
separate starting states.

The plan is to use that to represent the diacritics.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sequences from several files are no longer merged but compiled to
separate starting states.

The plan is to use that to represent the diacritics.
</pre>
</div>
</content>
</entry>
<entry>
<title>compose: Fix misbehaving due to encoding errors</title>
<updated>2024-06-09T08:35:38+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-06-09T08:35:38+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=a886f6eedeafbe06c6de0cf68fbd0f81655af597'/>
<id>a886f6eedeafbe06c6de0cf68fbd0f81655af597</id>
<content type='text'>
Encoding errors in the compose data compiler due to:
- 'UTF-16' adds a BOM, use 'UTF-16-LE' instead
- 'str.encode' returns a byte array, use 'array' to have a 16-bit char
  array.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Encoding errors in the compose data compiler due to:
- 'UTF-16' adds a BOM, use 'UTF-16-LE' instead
- 'str.encode' returns a byte array, use 'array' to have a 16-bit char
  array.
</pre>
</div>
</content>
</entry>
</feed>
