kpdl revision 1.1.1.3 1 1.1.1.2 mrg // $XKeyboardConfig$
2 1.1 mrg // $Xorg: keypad,v 1.3 2000/08/17 19:54:43 cpqbld Exp $
3 1.1 mrg
4 1.1 mrg // The <KPDL> key is a mess.
5 1.1 mrg // It was probably originally meant to be a decimal separator.
6 1.1 mrg // Except since it was declared by USA people it didn't use the original
7 1.1 mrg // SI separator "," but a "." (since then the USA managed to f-up the SI
8 1.1 mrg // by making "." an accepted alternative, but standards still use "," as
9 1.1 mrg // default)
10 1.1 mrg // As a result users of SI-abiding countries expect either a "." or a ","
11 1.1 mrg // or a "decimal_separator" which may or may not be translated in one of the
12 1.1 mrg // above depending on applications.
13 1.1 mrg // It's not possible to define a default per-country since user expectations
14 1.1 mrg // depend on the conflicting choices of their most-used applications,
15 1.1 mrg // operating system, etc. Therefore it needs to be a configuration setting
16 1.1 mrg // Copyright 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
17 1.1 mrg
18 1.1 mrg
19 1.1 mrg // Legacy <KPDL> #1
20 1.1 mrg // This assumes KP_Decimal will be translated in a dot
21 1.1 mrg partial keypad_keys
22 1.1 mrg xkb_symbols "dot" {
23 1.1 mrg
24 1.1 mrg key.type[Group1]="KEYPAD" ;
25 1.1 mrg
26 1.1 mrg key <KPDL> { [ KP_Delete, KP_Decimal ] }; // <delete> <separator>
27 1.1 mrg };
28 1.1 mrg
29 1.1 mrg
30 1.1 mrg // Legacy <KPDL> #2
31 1.1 mrg // This assumes KP_Separator will be translated in a comma
32 1.1 mrg partial keypad_keys
33 1.1 mrg xkb_symbols "comma" {
34 1.1 mrg
35 1.1 mrg key.type[Group1]="KEYPAD" ;
36 1.1 mrg
37 1.1 mrg key <KPDL> { [ KP_Delete, KP_Separator ] }; // <delete> <separator>
38 1.1 mrg };
39 1.1 mrg
40 1.1 mrg
41 1.1 mrg // Period <KPDL>, usual keyboard serigraphy in most countries
42 1.1 mrg partial keypad_keys
43 1.1 mrg xkb_symbols "dotoss" {
44 1.1 mrg
45 1.1 mrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
46 1.1 mrg
47 1.1 mrg key <KPDL> { [ KP_Delete, period, comma, 0x100202F ] }; // <delete> . , (narrow no-break space)
48 1.1 mrg };
49 1.1 mrg
50 1.1 mrg
51 1.1 mrg // Period <KPDL>, usual keyboard serigraphy in most countries, latin-9 restriction
52 1.1 mrg partial keypad_keys
53 1.1 mrg xkb_symbols "dotoss_latin9" {
54 1.1 mrg
55 1.1 mrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
56 1.1 mrg
57 1.1 mrg key <KPDL> { [ KP_Delete, period, comma, nobreakspace ] }; // <delete> . , (no-break space)
58 1.1 mrg };
59 1.1 mrg
60 1.1 mrg
61 1.1 mrg // Comma <KPDL>, what most non anglo-saxon people consider the real separator
62 1.1 mrg partial keypad_keys
63 1.1 mrg xkb_symbols "commaoss" {
64 1.1 mrg
65 1.1 mrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
66 1.1 mrg
67 1.1 mrg key <KPDL> { [ KP_Delete, comma, period, 0x100202F ] }; // <delete> , . (narrow no-break space)
68 1.1 mrg };
69 1.1 mrg
70 1.1 mrg
71 1.1 mrg // Momayyez <KPDL>: Bahrain, Iran, Iraq, Kuwait, Oman, Qatar, Saudi Arabia, Syria, UAE
72 1.1 mrg partial keypad_keys
73 1.1 mrg xkb_symbols "momayyezoss" {
74 1.1 mrg
75 1.1 mrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
76 1.1 mrg
77 1.1 mrg key <KPDL> { [ KP_Delete, 0x100066B, comma, 0x100202F ] }; // <delete> ? , (narrow no-break space)
78 1.1 mrg };
79 1.1 mrg
80 1.1 mrg
81 1.1 mrg // Abstracted <KPDL>, pray everything will work out (it usually does not)
82 1.1 mrg partial keypad_keys
83 1.1 mrg xkb_symbols "kposs" {
84 1.1 mrg
85 1.1 mrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
86 1.1 mrg
87 1.1 mrg key <KPDL> { [ KP_Delete, KP_Decimal, KP_Separator, 0x100202F ] }; // <delete> ? ? (narrow no-break space)
88 1.1 mrg };
89 1.1.1.3 ghen
90 1.1.1.3 ghen // Spreadsheets may be configured to use the dot as decimal
91 1.1.1.3 ghen // punctuation, comma as a thousands separator and then semi-colon as
92 1.1.1.3 ghen // the list separator. Of these, dot and semi-colon is most important
93 1.1.1.3 ghen // when entering data by the keyboard; the comma can then be inferred
94 1.1.1.3 ghen // and added to the presentation afterwards. Using semi-colon as a
95 1.1.1.3 ghen // general separator may in fact be preferred to avoid ambiguities
96 1.1.1.3 ghen // in data files. Most times a decimal separator is hard-coded, it
97 1.1.1.3 ghen // seems to be period, probably since this is the syntax used in
98 1.1.1.3 ghen // (most) programming languages.
99 1.1.1.3 ghen partial keypad_keys
100 1.1.1.3 ghen xkb_symbols "semi" {
101 1.1.1.3 ghen
102 1.1.1.3 ghen key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
103 1.1.1.3 ghen
104 1.1.1.3 ghen key <KPDL> { [ NoSymbol, NoSymbol, semicolon ] };
105 1.1.1.3 ghen };
106