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