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