summaryrefslogtreecommitdiff
path: root/proto/kbproto/specs/appB.xml
blob: 85137cff4372b9eb9b4e274fcb5faafefd7f1e9e (plain)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<appendix id='canonical_key_types'>
<title>Canonical Key Types</title>

<sect1 id='Canonical_Key_Types'>
<title>Canonical Key Types</title>
<sect2 id='The_ONE_LEVEL_Key_Type'>
<title>The ONE_LEVEL Key Type</title>

<para>
The <emphasis>
ONE_LEVEL</emphasis>
 key type describes groups that have only one symbol. The default <emphasis>
ONE_LEVEL</emphasis>
 type has no map entries and does not pay attention to any modifiers.
</para>

</sect2>
<sect2 id='The_TWO_LEVEL_Key_Type'>
<title>The TWO_LEVEL Key Type</title>

<para>
The <emphasis>
TWO_LEVEL</emphasis>
 key type describes groups that have two symbols but are neither alphabetic nor
numeric keypad keys. The default <emphasis>
TWO_LEVEL</emphasis>
 type uses only the <emphasis>
Shift</emphasis>
 modifier. It returns level two if <emphasis>
Shift</emphasis>
 is set, level one if it is not.
</para>


</sect2>
<sect2 id='The_ALPHABETIC_Key_Type'>
<title>The ALPHABETIC Key Type</title>

<para>
The <emphasis>
ALPHABETIC</emphasis>
 key type describes groups that consist of two symbols — the lowercase form
of a symbol followed by the uppercase form of the same symbol. The default
<emphasis>
ALPHABETIC</emphasis>
 type implements locale-sensitive "shift cancels caps lock" behavior using both
the <emphasis>
Shift</emphasis>
 and <emphasis>
Lock</emphasis>
 modifiers as follows:
</para>

<itemizedlist>
<listitem>
  <para>If <emphasis>
Shift</emphasis>
 and <emphasis>
Lock</emphasis>
 are both set, the default <emphasis>
ALPHABETIC</emphasis>
 type yields level one.
  </para>
</listitem>
<listitem>
  <para>If <emphasis>
Shift</emphasis>
 alone is set, it yields level two.
  </para>
</listitem>
<listitem>
  <para>If <emphasis>
Lock</emphasis>
 alone is set, it yields level one but preserves the <emphasis>
Lock</emphasis>
 modifier.
  </para>
</listitem>
<listitem>
  <para>If neither <emphasis>
Shift</emphasis>
 nor <emphasis>
Lock</emphasis>
 are set, it yields level one.
  </para>
</listitem>
</itemizedlist>

</sect2>
<sect2 id='The_KEYPAD_Key_Type'>
<title>The KEYPAD Key Type</title>

<para>
The <emphasis>
KEYPAD</emphasis>
 key type describes that consist of two symbols, at least one of which is a
numeric keypad symbol. The default <emphasis>
KEYPAD</emphasis>
 type implements "shift cancels numeric lock" behavior using the <emphasis>
Shift</emphasis>
 modifier and the real modifier bound to the virtual modifier named "NumLock"
(the "NumLock" modifier) as follows:
</para>

<itemizedlist>
<listitem>
  <para>If <emphasis>
Shift</emphasis>
 and the "NumLock" modifier are both set, the default <emphasis>
KEYPAD </emphasis>
type yields level one.
  </para>
</listitem>
<listitem>
  <para>If either <emphasis>
Shift</emphasis>
 or the "NumLock" modifier alone are set, it yields level two.
  </para>
</listitem>
<listitem>
  <para>If neither <emphasis>
Shift</emphasis>
 nor the "NumLock" modifier are set, it yields level one.
  </para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
</appendix>