1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
# `plover.key_combo` -- Key codes
```{py:module} plover.key_combo
```
This module provides utility functions for translating key combination
descriptions as written in translations, as well as mappings between Unicode
symbols and logical key names.
A key combo is specified as a sequence of keys, separated by spaces, some of
which may be surrounded by parentheses and preceded by a modifier key. Key
combos are case-insensitive. For example, the following key combo:
a ctrl_l(z shift(z))
is equivalent to pressing `A`, then `Ctrl+Z`, then `Ctrl+Shift+Z`.
```{data} KEYNAME_TO_CHAR
:type: Dict[str, str]
A dictionary mapping logical key names to Unicode characters they represent.
The logical key names are derived from X11 keysym names. This mapping does
not include modifiers.
```
```{data} CHAR_TO_KEYNAME
:type: Dict[str, str]
The reverse of {data}`KEYNAME_TO_CHAR`: a dictionary mapping Unicode
characters to the logical key names that would produce them when pressed.
```
The two functions below will also be useful to implementors of keyboard
emulation for new platforms:
```{function} parse_key_combo(combo_string[, key_name_to_key_code=None]) -> List[Tuple[Any, bool]]
Converts `combo_string`, representing a key combination or series of key
combinations, to a list of key events to be emulated. Each key event is a
tuple containing a key code and a boolean value indicating whether
the key is to be pressed (`True`) or released (`False`).
Pass a function to `key_name_to_key_code` to specify the mapping of key
names to key codes as appropriate for your platform; otherwise, the default
is to return the name as is.
```
```{function} add_modifiers_aliases(dictionary)
Adds aliases for modifier keys to the specified `dictionary`, which is a
mapping of key names to key codes.
Typically one would define the key codes for `control_l`, `shift_l`,
`super_l` and `alt_l` in the dictionary and use this function to add
aliases for the remaining variants (such as `alt` and `option` as
aliases of `alt_l`).
```
|