AbstractAbstract ReadonlycomposeThe key that toggles stacking composition mode.
Abstract ReadonlyconsonantOrdered list of keys that emit Tibetan consonants.
Abstract ReadonlyspaceThe key that emits a space character (tsheg ་).
Abstract ReadonlysuffixOrdered list of keys that emit Tibetan suffix marks (anusvara / visarga).
Abstract ReadonlysymbolOrdered list of keys that emit Tibetan symbols.
Abstract ReadonlyvowelOrdered list of keys that emit Tibetan vowel signs.
StaticConsonantUnicode code points for all 35 Tibetan consonant letters.
StaticExtrasSpecial multi-character sequences accessible by their trigger key.
StaticFinalUnicode code points for the anusvara and visarga suffix marks.
StaticHtransformConsonant index for the aspirate (h-transform) key.
StaticHtransformPrecomposed aspirated consonant code points corresponding to HtransformKey.
StaticHtransformConsonant indices that participate in the h-transform (aspirate stacking). Each entry has a corresponding aspirated form in HtransformChars.
StaticKbConsonant index for the special "ksa" (ཀྵ) transform key.
StaticMaxMaximum number of consonants that can be stacked in a single syllable.
StaticSymbolUnicode code points for the Tibetan symbols accessible via symbolKeyMapping.
StaticVowelUnicode code points for Tibetan vowel signs. Index 0 is a placeholder (0) meaning "no vowel sign / inherent 'a'".
AbstractlayoutUnique identifier for this layout (e.g. 'sambhota_keymap_one').
AbstractlayoutHuman-readable name for this layout (e.g. 'Sambhota Keymap #1').
Returns display names for keys given the current modifier state.
Whether the Shift modifier is active.
Whether the Control modifier is active.
Whether the Alt modifier is active.
A map from key character to its Tibetan display name.
Handles a key event within the given state.
The key to handle.
The current input state.
Called with the new state when a transition occurs.
Called when an unrecoverable input error is detected.
true if the key was consumed by this layout.
Returns whether the given key is the compose key for this layout.
The key character to check.
Checks whether the given key maps to a Tibetan consonant.
The key character to look up.
A tuple [isConsonant, index] where index is the position in
consonantKeyMapping, or -1 if not found.
Returns whether the given key is the space key for this layout.
The key character to check.
Checks whether the given key maps to a Tibetan suffix mark.
The key character to look up.
A tuple [isSuffix, index] where index is the position in
suffixKeyMapping, or -1 if not found.
Checks whether the given key maps to a Tibetan symbol.
The key character to look up.
A tuple [isSymbol, index] where index is the position in
symbolKeyMapping, or -1 if not found.
Checks whether the given key maps to a Tibetan vowel sign.
The key character to look up.
A tuple [isVowel, index] where index is the position in
vowelKeyMapping, or -1 if not found.
Optionally remaps a raw key character before standard lookup.
The default implementation is identity. Override to redirect specific keys
(e.g. Sambhota Keymap #2 maps 'D' → 'm').
The raw ASCII character from the key event.
The (possibly remapped) character to look up in the consonant table.
StaticIsReturns whether index is an h-transform consonant index, and its position within HtransformKey.
The consonant index to check.
[true, position] if found, [false, -1] otherwise.
Abstract base for all Tibetan stacking-based keyboard layouts.
Stacking layouts model the Tibetan orthographic convention of stacking multiple consonants vertically. A dedicated compose key toggles stacking mode; while in stacking mode, consonant key presses are accumulated into a StackingState until a vowel, space, or compose key commits the composed character.
Concrete subclasses supply the key mappings for their specific layout (e.g. Sambhota Keymap #1, TCC Keyboard #1) and may override translateKey to remap keys before the standard lookup.