abouttreesummaryrefslogcommitdiff
path: root/srcs/compose
AgeCommit message (Collapse)AuthorFilesLines
2025-02-28APL and BQN layouts (#899)dzaima1-0/+10
* Add compact BQN layout * Add compact APL layout
2025-02-23Apply compose sequences to String keysJules Aguillon1-1/+10
This is mostly useful for characters that do not fit on a single 16-bit char. Shift sequences for 𝕨𝕩𝕗𝕘𝕤 are added for illustration.
2024-12-29Update Shift mappings for math symbolsJules Aguillon2-1/+13
Shift is the "not" version of some math operators. ∋ is added to the math layout.
2024-12-29Tamil layout: Shift and fn changes (#853)Jagadeeshan S2-7/+8
Signed-off-by: Jagadeeshan S <jagadeeshanmsj@gmail.com>
2024-12-19Added tamil layout (#833)Jagadeeshan S2-0/+19
Signed-off-by: Jagadeeshan S <jagadeeshan.s@addverb.com>
2024-12-19Compose: Allow to force string final statesJules Aguillon1-0/+3
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.
2024-12-19Add Modern Hindi and Sanskrit shift layerJules Aguillon1-1/+33
Co-authored-by: npnpatidar <7de6dkm1@duck.com>
2024-12-19compose: Fix parsing of long sequences from json filesJules Aguillon3-22/+32
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.
2024-12-11Move numpad script maps to the compose systemJules Aguillon6-0/+74
This removes the Map_char interface, which required a lot of boilerplate to use.
2024-12-07Add double grave accent (#779)Zitrone1-0/+17
2024-12-05Fix typos in cyrillic compose sequencesJules Aguillon1-3/+3
2024-12-05Arabic diacritics (#807)Jules Aguillon2-1/+183
Add arabic combining diacritics and make them accessible via Fn and Compose combos. Co-authored-by: Anastázius Kaejatídarján <32847759+anaskaejdar@users.noreply.github.com>
2024-11-16compose: Add digits to accent_dot_aboveJules Aguillon1-0/+10
2024-10-05Update compose sequences for CyrillicJules Aguillon1-30/+60
Mainly add sequences for the combining diacritics. Co-authored-by: Anastazius Kaejatidarjan <zdarian@asu.edu>
2024-10-05compose/accent_*.json: improvements (more accents) (#770)Zitrone18-26/+381
compose/accent_*.json: improve/complete implementation compose/shift.json: uppercase for superscript letters & characters without preapplied uppercase versions
2024-09-29Add Fn layer and Compose sequences for CyrillicJules Aguillon3-4/+182
2024-09-14compose: Deduplicate end statesJules Aguillon1-9/+12
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.
2024-09-10Define the Shift modifier using the compose mechanismJules Aguillon1-0/+52
2024-09-10Define the Fn modifier using the compose mechanismJules Aguillon1-0/+182
This removes 100Kb from the app.
2024-09-10compose: Allow c-style comments in json filesJules Aguillon1-1/+8
Useful to manager growing the collection of sequences.
2024-09-10Compose sequences can end in internal key namesJules Aguillon1-0/+4
This adds the '\n' and '\t' sequences to showcase the new feature.
2024-07-27Added supported key for avoiding the pain of auto-caps (#725)Adrian1-1/+3
2024-07-25Update accent_circonflexe.json (#719)bokidori1-1/+6
Allow combining circumflex \u0302 for Cyrillic vowels, enabling users to express themselves accurately. ја сам са̂м = I am alone ја сам сам = I am am да = yes да̂ = give код = at ко̂д = code Similar to #437 for aigo.
2024-07-21Allow extending the compose key (#713)Jules Aguillon5-10/+35
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.
2024-06-09Move diacritics mapping to the compose state machineJules Aguillon22-0/+339
This replaces the switch cases in KeyModifier.java with JSON files, one for each diacritic. The number of states increases from 6727 to 7377. The apk size slightly decreases (around 3kb).
2024-06-09compose: Compile several starting statesJules Aguillon1-8/+27
Sequences from several files are no longer merged but compiled to separate starting states. The plan is to use that to represent the diacritics.
2024-06-09compose: Fix misbehaving due to encoding errorsJules Aguillon1-12/+27
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.
2024-05-29Add compose sequences for Greek, Cyrillic, Hebrew and moreJules Aguillon2-19/+2050
Parse key names from keysymdef.h, which is distributed with Xorg. The Greek, Cyrillic and Hebrew sequences referenced these keysyms. This increases the number of sequences from 2043 to 2668.
2024-05-29Allow compose sequence ending with more symbolsJules Aguillon1-6/+10
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).
2024-03-02compose: Parse json files and fix edge casesJules Aguillon1-2/+21
There's no json file yet, this was part of an experiment. Add a missing escape rule and detect colliding sequences.
2024-03-02compose: Add a README.mdJules Aguillon1-0/+8
Mention the source of the sequences files.
2024-02-17compose: Add X11 compose sequencesJules Aguillon3-20/+5383
compile.py implements a parser for X11's Compose.pre files. A lot of code is necessary to interpret character names but thanksfully, the name of most characters is contained in the file. The state machine is compiled into two char arrays which unfortunately requires an expensive initialisation and allocation.
2024-02-17Compose keyJules Aguillon2-0/+84
The COMPOSE_PENDING modifier indicate whether a compose sequence is in progress. The new key of kind Compose_pending sets the current state of the sequence. The compose sequences are compiled into a state machine by a python script into a compact encoding. The state of the pending compose is determined by the index of a state.