Hash :
e4b20b91
Author :
Date :
2024-03-15T18:57:32
doc(keymap): Improve types & symbols sections - Add a diagram to illustrate how key types work. - Add examples to explain the key types mappings. - Add note for using `preserve` to tweak shortcuts. - Improve the key statement section.
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
digraph
{
active_modifiers [
label="Active modifiers",
href="@ref xkb_state::xkb_state_mod_index_is_active"
];
modifiers_filter [
shape=box,
label=<<b>Filter modifiers</b><br/>Keep only meaningful modifiers for the key type>,
style=rounded
];
filtered_modifiers [label="Filtered modifiers"];
level_match [
shape=box,
label=<<b>Lookup modifiers combination</b><br/>Find the shift level<br/>matching exactly the modifiers,<br/>defaulting to the base level>,
style=rounded
];
shift_level [
label="Shift level",
href="@ref level-def"
];
consume_modifiers [
shape=box,
label=<<b>Consume modifiers</b>>,
style=rounded
];
consumed_modifiers [
label="Consumed modifiers",
href="@ref consumed-modifiers"
];
symbols_table_lookup [
shape=box,
label=<<b>Symbols table lookup</b>>,
style=rounded
];
symbols_table [
shape=box,
label=<<b>Symbols table</b>>,
href="@ref key-symbols-table",
penwidth=2
];
keysym_pre_transformation [
label="Raw keysym"
];
keysyms_transformations [
shape=box,
label=<<b>Keysyms transformations</b>>,
href="@ref keysym-transformations",
style=rounded
];
keysym_post_transformation [
label="Final keysym"
];
key_type [shape=none, label=<
<table border="2" cellborder="1" cellspacing="0" cellpadding="4">
<tr><td href="@ref the-xkb_types-section"><b>Key type</b></td></tr>
<hr/>
<tr><td port="modifiers" href="@ref key-type-modifiers">modifiers</td></tr>
<tr><td port="map" href="@ref key-type-map">map</td></tr>
<tr><td port="preserve" href="@ref key-type-preserve">preserve</td></tr>
</table>
>];
{ rank="same"; key_type; filtered_modifiers }
{ rank="same"; level_match; consume_modifiers }
{ rank="same"; symbols_table_lookup; symbols_table }
active_modifiers -> modifiers_filter;
key_type:modifiers -> modifiers_filter
// [
// label=<<i>xkb_compat</i> section>,
// labelhref="@ref the-xkb_compat-section"
// ];
//active_modifiers -> filtered_modifiers [label=""];
modifiers_filter -> filtered_modifiers;
filtered_modifiers -> level_match;
key_type:map -> level_match;
level_match -> shift_level;
shift_level -> symbols_table_lookup;
symbols_table -> symbols_table_lookup;
symbols_table_lookup -> keysym_pre_transformation;
keysym_pre_transformation -> keysyms_transformations;
keysyms_transformations -> keysym_post_transformation;
filtered_modifiers -> consume_modifiers;
key_type:preserve -> consume_modifiers;
consume_modifiers -> consumed_modifiers;
consumed_modifiers -> keysyms_transformations;
}