File: key_combo.md

package info (click to toggle)
plover 5.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,356 kB
  • sloc: python: 21,589; sh: 682; ansic: 25; makefile: 11
file content (56 lines) | stat: -rw-r--r-- 2,034 bytes parent folder | download | duplicates (2)
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`).
```