Home | History | Annotate | Line # | Download | only in symbols
      1  1.1.1.3  ghen // Let Space key provide No-Break Space (NBSP), Narrow No-Break Space (NNBSP),
      2  1.1.1.3  ghen // Zero-Width Non-Joiner (ZWNJ), and Zero-Width Joiner (ZWJ) for the desired
      3  1.1.1.3  ghen // levels.
      4  1.1.1.3  ghen 
      5  1.1.1.3  ghen 
      6  1.1.1.3  ghen ////////////////////////////////////////
      7  1.1.1.3  ghen // Only Space
      8      1.1   mrg 
      9      1.1   mrg partial
     10      1.1   mrg xkb_symbols "none" {
     11      1.1   mrg   key <SPCE> {
     12      1.1   mrg     type[Group1]="ONE_LEVEL",
     13      1.1   mrg     symbols[Group1]= [ space ]
     14      1.1   mrg   };
     15      1.1   mrg };
     16      1.1   mrg 
     17  1.1.1.3  ghen 
     18  1.1.1.3  ghen ////////////////////////////////////////
     19  1.1.1.3  ghen // No-Break Space
     20  1.1.1.3  ghen 
     21      1.1   mrg partial
     22      1.1   mrg xkb_symbols "level2" {
     23      1.1   mrg   key <SPCE> {
     24      1.1   mrg     type[Group1]="TWO_LEVEL",
     25      1.1   mrg     symbols[Group1]= [ space, nobreakspace ]
     26      1.1   mrg   };
     27      1.1   mrg };
     28      1.1   mrg 
     29      1.1   mrg 
     30      1.1   mrg // level3 & level3ns provide no-breaking spaces starting from level3
     31      1.1   mrg // This is good for typographers but experience shows many users accidently
     32      1.1   mrg // type no-breaking spaces on the CLI (resulting in errors)
     33      1.1   mrg partial
     34      1.1   mrg xkb_symbols "level3" {
     35      1.1   mrg   key <SPCE> {
     36      1.1   mrg     type[Group1]="FOUR_LEVEL",
     37      1.1   mrg     symbols[Group1]= [ space, space, nobreakspace ]
     38      1.1   mrg   };
     39      1.1   mrg };
     40      1.1   mrg 
     41  1.1.1.3  ghen // for this reason pushing no-breaking spaces to level4 is the safe default nowadays
     42      1.1   mrg partial
     43  1.1.1.3  ghen xkb_symbols "level4" {
     44      1.1   mrg   key <SPCE> {
     45      1.1   mrg     type[Group1]="FOUR_LEVEL",
     46  1.1.1.3  ghen     symbols[Group1]= [ space, space, space, nobreakspace ]
     47      1.1   mrg   };
     48      1.1   mrg };
     49      1.1   mrg 
     50      1.1   mrg 
     51  1.1.1.3  ghen ////////////////////////////////////////
     52  1.1.1.3  ghen // Narrow No-Break Space
     53  1.1.1.3  ghen 
     54  1.1.1.3  ghen // level3n provides narrow no-breaking space in addition to the normal one
     55      1.1   mrg partial
     56  1.1.1.3  ghen xkb_symbols "level3n" {
     57      1.1   mrg   key <SPCE> {
     58      1.1   mrg     type[Group1]="FOUR_LEVEL",
     59  1.1.1.3  ghen     symbols[Group1]= [ space, space, nobreakspace, 0x100202F ]
     60      1.1   mrg   };
     61      1.1   mrg };
     62      1.1   mrg 
     63      1.1   mrg // level4n provides narrow no-breaking space in addition to the normal one
     64      1.1   mrg partial
     65      1.1   mrg xkb_symbols "level4n" {
     66      1.1   mrg  key <SPCE> {
     67      1.1   mrg    type[Group1]="EIGHT_LEVEL",
     68      1.1   mrg    symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ]
     69      1.1   mrg  };
     70      1.1   mrg };
     71      1.1   mrg 
     72      1.1   mrg // level4nl provides narrow no-breaking space in addition to the normal one
     73      1.1   mrg // without forcing the use of level5 for mostly four-level layouts
     74      1.1   mrg // Used by fr(oss), be(oss)
     75      1.1   mrg partial
     76      1.1   mrg xkb_symbols "level4nl" {
     77      1.1   mrg  key <SPCE> {
     78      1.1   mrg    type[Group1]="LOCAL_EIGHT_LEVEL",
     79      1.1   mrg    symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ]
     80      1.1   mrg  };
     81      1.1   mrg };
     82      1.1   mrg 
     83  1.1.1.3  ghen 
     84  1.1.1.3  ghen ////////////////////////////////////////
     85  1.1.1.3  ghen // Zero-Width Non-Joiner & Zero-Width Joiner
     86  1.1.1.3  ghen // Author: Behnam Esfahbod <behnam (a] esfahbod.info>
     87  1.1.1.3  ghen 
     88  1.1.1.3  ghen // ZWNJ and ZWJ are widely used in Persian, Kurdinsh, Pashto, Uzbek and other
     89  1.1.1.3  ghen // languages that use PersoArabic script.
     90  1.1.1.3  ghen 
     91  1.1.1.3  ghen 
     92  1.1.1.3  ghen // ZWNJ on level 2
     93  1.1.1.3  ghen partial
     94  1.1.1.3  ghen xkb_symbols "zwnj2" {
     95  1.1.1.3  ghen   key <SPCE> {
     96  1.1.1.3  ghen     type[Group1]="TWO_LEVEL",
     97  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c ]
     98  1.1.1.3  ghen   };
     99  1.1.1.3  ghen };
    100  1.1.1.3  ghen 
    101  1.1.1.3  ghen 
    102  1.1.1.3  ghen // ZWNJ on level 2
    103  1.1.1.3  ghen // ZWJ on level 3
    104  1.1.1.3  ghen partial
    105  1.1.1.3  ghen xkb_symbols "zwnj2zwj3" {
    106  1.1.1.3  ghen   key <SPCE> {
    107  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    108  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c, 0x100200d ]
    109  1.1.1.3  ghen   };
    110  1.1.1.3  ghen };
    111  1.1.1.3  ghen 
    112  1.1.1.3  ghen 
    113  1.1.1.3  ghen // ZWNJ on level 2
    114  1.1.1.3  ghen // ZWJ on level 3
    115  1.1.1.3  ghen // NBSP on level 4
    116  1.1.1.3  ghen partial
    117  1.1.1.3  ghen xkb_symbols "zwnj2zwj3nb4" {
    118  1.1.1.3  ghen   key <SPCE> {
    119  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    120  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c, 0x100200d, nobreakspace ]
    121  1.1.1.3  ghen   };
    122  1.1.1.3  ghen };
    123  1.1.1.3  ghen 
    124  1.1.1.8   mrg 
    125  1.1.1.3  ghen // ZWNJ on level 2
    126  1.1.1.3  ghen // NBSP on level 3
    127  1.1.1.3  ghen partial
    128  1.1.1.3  ghen xkb_symbols "zwnj2nb3" {
    129  1.1.1.3  ghen   key <SPCE> {
    130  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    131  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c, nobreakspace ]
    132  1.1.1.3  ghen   };
    133  1.1.1.3  ghen };
    134  1.1.1.3  ghen 
    135  1.1.1.3  ghen 
    136  1.1.1.3  ghen // ZWNJ on level 2
    137  1.1.1.7   mrg // NBSP on level 3
    138  1.1.1.3  ghen // ZWJ on level 4
    139  1.1.1.3  ghen partial
    140  1.1.1.3  ghen xkb_symbols "zwnj2nb3zwj4" {
    141  1.1.1.3  ghen   key <SPCE> {
    142  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    143  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100200d ]
    144  1.1.1.3  ghen   };
    145  1.1.1.3  ghen };
    146  1.1.1.3  ghen 
    147  1.1.1.3  ghen 
    148  1.1.1.3  ghen // ZWNJ on level 2
    149  1.1.1.3  ghen // NBSP on level 3
    150  1.1.1.3  ghen // NNBSP on level 4
    151  1.1.1.3  ghen // Used by ir(pes)
    152  1.1.1.3  ghen partial
    153  1.1.1.3  ghen xkb_symbols "zwnj2nb3nnb4" {
    154  1.1.1.3  ghen   key <SPCE> {
    155  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    156  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100202F ]
    157  1.1.1.3  ghen   };
    158  1.1.1.3  ghen };
    159  1.1.1.3  ghen 
    160  1.1.1.3  ghen 
    161  1.1.1.3  ghen // ZWNJ on level 3
    162  1.1.1.3  ghen // ZWJ on level 4
    163  1.1.1.3  ghen // Used by in(deva), in(olpc)
    164  1.1.1.3  ghen partial
    165  1.1.1.3  ghen xkb_symbols "zwnj3zwj4" {
    166  1.1.1.3  ghen   key <SPCE> {
    167  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    168  1.1.1.3  ghen     symbols[Group1]= [ space, space, 0x100200c, 0x100200d ]
    169  1.1.1.3  ghen   };
    170  1.1.1.3  ghen };
    171  1.1.1.3  ghen 
    172  1.1.1.7   mrg 
    173  1.1.1.7   mrg // NBSP on level 2
    174  1.1.1.7   mrg // ZWNJ on level 3
    175  1.1.1.7   mrg // Used by lk(sin_phonetic)
    176  1.1.1.7   mrg partial
    177  1.1.1.7   mrg xkb_symbols "nb2zwnj3s" {
    178  1.1.1.7   mrg   key <SPCE> {
    179  1.1.1.7   mrg     type[Group1]="FOUR_LEVEL",
    180  1.1.1.7   mrg     symbols[Group1]= [ space, nobreakspace, 0x100200c, NoSymbol ]
    181  1.1.1.7   mrg   };
    182  1.1.1.7   mrg };
    183