<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unexpected-keyboard/srcs/juloo.keyboard2/ComposeKey.java, branch main</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>Autocomplete on space bar and undo on delete (#1179)</title>
<updated>2026-02-18T23:37:42+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2026-02-18T23:37:42+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=df3594bd53c71d06f6e103f6782bb26b970beac4'/>
<id>df3594bd53c71d06f6e103f6782bb26b970beac4</id>
<content type='text'>
* Refactor: Implement the space key as an editing action

The space key is no longer a CHAR key but now an EDITING key. This
allows changing the behavior of the space bar while allowing custom
layout users to define a key outputing a space as before.

KeyModifier and ComposeKey are updated to treat the space key as before.

* Enter the best suggestion when the space bar is pressed

* Refactor: Implement backspace as an editing action

* Undo suggestion when delete is pressed

The delete key (backspace internally) undoes the suggestion if the last
action done was entering the suggestion with either the space bar or the
candidates view.

* Add an option to enable space bar autocomplete

This option is off by default. Undoing a completion with backspace works
in any case.

* Refactor: Track selection emptyness in CurrentlyTypedWord

This removes an expensive RPC call.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Refactor: Implement the space key as an editing action

The space key is no longer a CHAR key but now an EDITING key. This
allows changing the behavior of the space bar while allowing custom
layout users to define a key outputing a space as before.

KeyModifier and ComposeKey are updated to treat the space key as before.

* Enter the best suggestion when the space bar is pressed

* Refactor: Implement backspace as an editing action

* Undo suggestion when delete is pressed

The delete key (backspace internally) undoes the suggestion if the last
action done was entering the suggestion with either the space bar or the
candidates view.

* Add an option to enable space bar autocomplete

This option is off by default. Undoing a completion with backspace works
in any case.

* Refactor: Track selection emptyness in CurrentlyTypedWord

This removes an expensive RPC call.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix crash due to empty strings in keys</title>
<updated>2025-02-27T21:00:32+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2025-02-27T21:00:32+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=ba05b2770e6a9aa79b9b44ad4a3d0fab8f199bd3'/>
<id>ba05b2770e6a9aa79b9b44ad4a3d0fab8f199bd3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Apply compose sequences to String keys</title>
<updated>2025-02-23T17:00:44+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2025-02-23T17:00:44+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=ca25cc55f6bc2c7b3100da2f7bf18a078a23f55e'/>
<id>ca25cc55f6bc2c7b3100da2f7bf18a078a23f55e</id>
<content type='text'>
This is mostly useful for characters that do not fit on a single 16-bit
char.
Shift sequences for 𝕨𝕩𝕗𝕘𝕤 are added for illustration.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is mostly useful for characters that do not fit on a single 16-bit
char.
Shift sequences for 𝕨𝕩𝕗𝕘𝕤 are added for illustration.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a glyph for cancelling the compose key</title>
<updated>2025-02-08T22:16:18+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2025-02-08T22:16:18+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=d3753cc455b22bdaf7e687632f2ae089409e2bdb'/>
<id>d3753cc455b22bdaf7e687632f2ae089409e2bdb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Pressing the compose key exits the pending sequence</title>
<updated>2025-02-04T14:50:17+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2025-02-04T14:50:17+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=0061911ef3a4c9339638571e2ddc5377adc25af1'/>
<id>0061911ef3a4c9339638571e2ddc5377adc25af1</id>
<content type='text'>
Allows stopping a compose sequence without typing anything.
This is also a more intuitive behavior rather than starting a new
sequence.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allows stopping a compose sequence without typing anything.
This is also a more intuitive behavior rather than starting a new
sequence.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move numpad script maps to the compose system</title>
<updated>2024-12-11T10:24:50+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-12-11T10:18:44+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=e4a49d5256373111eb04ea7d31f3c89d1ec9f6ea'/>
<id>e4a49d5256373111eb04ea7d31f3c89d1ec9f6ea</id>
<content type='text'>
This removes the Map_char interface, which required a lot of boilerplate
to use.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes the Map_char interface, which required a lot of boilerplate
to use.
</pre>
</div>
</content>
</entry>
<entry>
<title>Compose sequences can end in internal key names</title>
<updated>2024-09-10T20:16:49+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-09-10T20:16:49+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=c57ae83bfa2141edf637075696043cb98068684b'/>
<id>c57ae83bfa2141edf637075696043cb98068684b</id>
<content type='text'>
This adds the '\n' and '\t' sequences to showcase the new feature.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds the '\n' and '\t' sequences to showcase the new feature.
</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>
<entry>
<title>Allow compose sequence ending with more symbols</title>
<updated>2024-05-29T13:02:08+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-05-29T13:02:08+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=39b3f50aa31df9786e4a10a27633137a4369f6ae'/>
<id>39b3f50aa31df9786e4a10a27633137a4369f6ae</id>
<content type='text'>
Change the compose state machine definition to allow final states that
are wider than 16-bits.

This increases the number of sequences that can be used from
en_US_UTF_8_Compose.pre from 2013 to 2043 (of 3201).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change the compose state machine definition to allow final states that
are wider than 16-bits.

This increases the number of sequences that can be used from
en_US_UTF_8_Compose.pre from 2013 to 2043 (of 3201).
</pre>
</div>
</content>
</entry>
</feed>
