Home | History | Annotate | Line # | Download | only in symbols
nbsp revision 1.1.1.7
      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.1.6   mrg // Used by fr(latin9) and lt(std)
     34      1.1   mrg partial
     35      1.1   mrg xkb_symbols "level3" {
     36      1.1   mrg   key <SPCE> {
     37      1.1   mrg     type[Group1]="FOUR_LEVEL",
     38      1.1   mrg     symbols[Group1]= [ space, space, nobreakspace ]
     39      1.1   mrg   };
     40      1.1   mrg };
     41      1.1   mrg 
     42      1.1   mrg // level3s kills fourth level
     43      1.1   mrg // Used by ca(multix)
     44      1.1   mrg partial
     45      1.1   mrg xkb_symbols "level3s" {
     46      1.1   mrg   key <SPCE> {
     47      1.1   mrg     type[Group1]="FOUR_LEVEL",
     48      1.1   mrg     symbols[Group1]= [ space, space, nobreakspace, NoSymbol ]
     49      1.1   mrg   };
     50      1.1   mrg };
     51      1.1   mrg 
     52  1.1.1.3  ghen // for this reason pushing no-breaking spaces to level4 is the safe default nowadays
     53      1.1   mrg partial
     54  1.1.1.3  ghen xkb_symbols "level4" {
     55      1.1   mrg   key <SPCE> {
     56      1.1   mrg     type[Group1]="FOUR_LEVEL",
     57  1.1.1.3  ghen     symbols[Group1]= [ space, space, space, nobreakspace ]
     58      1.1   mrg   };
     59      1.1   mrg };
     60      1.1   mrg 
     61      1.1   mrg 
     62  1.1.1.3  ghen ////////////////////////////////////////
     63  1.1.1.3  ghen // Narrow No-Break Space
     64  1.1.1.3  ghen 
     65  1.1.1.3  ghen // level3n provides narrow no-breaking space in addition to the normal one
     66      1.1   mrg partial
     67  1.1.1.3  ghen xkb_symbols "level3n" {
     68      1.1   mrg   key <SPCE> {
     69      1.1   mrg     type[Group1]="FOUR_LEVEL",
     70  1.1.1.3  ghen     symbols[Group1]= [ space, space, nobreakspace, 0x100202F ]
     71      1.1   mrg   };
     72      1.1   mrg };
     73      1.1   mrg 
     74      1.1   mrg // level4n provides narrow no-breaking space in addition to the normal one
     75      1.1   mrg partial
     76      1.1   mrg xkb_symbols "level4n" {
     77      1.1   mrg  key <SPCE> {
     78      1.1   mrg    type[Group1]="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   mrg // level4nl provides narrow no-breaking space in addition to the normal one
     84      1.1   mrg // without forcing the use of level5 for mostly four-level layouts
     85      1.1   mrg // Used by fr(oss), be(oss)
     86      1.1   mrg partial
     87      1.1   mrg xkb_symbols "level4nl" {
     88      1.1   mrg  key <SPCE> {
     89      1.1   mrg    type[Group1]="LOCAL_EIGHT_LEVEL",
     90      1.1   mrg    symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ]
     91      1.1   mrg  };
     92      1.1   mrg };
     93      1.1   mrg 
     94  1.1.1.3  ghen 
     95  1.1.1.3  ghen ////////////////////////////////////////
     96  1.1.1.3  ghen // Zero-Width Non-Joiner & Zero-Width Joiner
     97  1.1.1.3  ghen // Author: Behnam Esfahbod <behnam (a] esfahbod.info>
     98  1.1.1.3  ghen 
     99  1.1.1.3  ghen // ZWNJ and ZWJ are widely used in Persian, Kurdinsh, Pashto, Uzbek and other
    100  1.1.1.3  ghen // languages that use PersoArabic script.
    101  1.1.1.3  ghen 
    102  1.1.1.3  ghen 
    103  1.1.1.3  ghen // ZWNJ on level 2
    104  1.1.1.3  ghen partial
    105  1.1.1.3  ghen xkb_symbols "zwnj2" {
    106  1.1.1.3  ghen   key <SPCE> {
    107  1.1.1.3  ghen     type[Group1]="TWO_LEVEL",
    108  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c ]
    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 partial
    116  1.1.1.3  ghen xkb_symbols "zwnj2zwj3" {
    117  1.1.1.3  ghen   key <SPCE> {
    118  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    119  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c, 0x100200d ]
    120  1.1.1.3  ghen   };
    121  1.1.1.3  ghen };
    122  1.1.1.3  ghen 
    123  1.1.1.3  ghen 
    124  1.1.1.3  ghen // ZWNJ on level 2
    125  1.1.1.3  ghen // ZWJ on level 3
    126  1.1.1.3  ghen // NBSP on level 4
    127  1.1.1.3  ghen partial
    128  1.1.1.3  ghen xkb_symbols "zwnj2zwj3nb4" {
    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, 0x100200d, 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 // ZWNJ on level 2
    136  1.1.1.3  ghen // NBSP on level 3
    137  1.1.1.3  ghen // Used by ir(ku_ara), af(basic), af(ps), af(uz), af(olpc-fa), af(olpc-ps), af(olpc-uz)
    138  1.1.1.3  ghen partial
    139  1.1.1.3  ghen xkb_symbols "zwnj2nb3" {
    140  1.1.1.3  ghen   key <SPCE> {
    141  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    142  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c, nobreakspace ]
    143  1.1.1.3  ghen   };
    144  1.1.1.3  ghen };
    145  1.1.1.3  ghen 
    146  1.1.1.3  ghen 
    147  1.1.1.3  ghen // ZWNJ on level 2
    148  1.1.1.7   mrg // NBSP on level 3
    149  1.1.1.3  ghen partial
    150  1.1.1.3  ghen xkb_symbols "zwnj2nb3s" {
    151  1.1.1.3  ghen   key <SPCE> {
    152  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    153  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c, nobreakspace, NoSymbol ]
    154  1.1.1.3  ghen   };
    155  1.1.1.3  ghen };
    156  1.1.1.3  ghen 
    157  1.1.1.3  ghen 
    158  1.1.1.3  ghen // ZWNJ on level 2
    159  1.1.1.3  ghen // NBSP on level 3
    160  1.1.1.3  ghen // ZWJ on level 4
    161  1.1.1.3  ghen partial
    162  1.1.1.3  ghen xkb_symbols "zwnj2nb3zwj4" {
    163  1.1.1.3  ghen   key <SPCE> {
    164  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    165  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100200d ]
    166  1.1.1.3  ghen   };
    167  1.1.1.3  ghen };
    168  1.1.1.3  ghen 
    169  1.1.1.3  ghen 
    170  1.1.1.3  ghen // ZWNJ on level 2
    171  1.1.1.3  ghen // NBSP on level 3
    172  1.1.1.3  ghen // NNBSP on level 4
    173  1.1.1.3  ghen // Used by ir(pes)
    174  1.1.1.3  ghen partial
    175  1.1.1.3  ghen xkb_symbols "zwnj2nb3nnb4" {
    176  1.1.1.3  ghen   key <SPCE> {
    177  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    178  1.1.1.3  ghen     symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100202F ]
    179  1.1.1.3  ghen   };
    180  1.1.1.3  ghen };
    181  1.1.1.3  ghen 
    182  1.1.1.3  ghen 
    183  1.1.1.3  ghen // ZWNJ on level 3
    184  1.1.1.3  ghen // ZWJ on level 4
    185  1.1.1.3  ghen // Used by in(deva), in(olpc)
    186  1.1.1.3  ghen partial
    187  1.1.1.3  ghen xkb_symbols "zwnj3zwj4" {
    188  1.1.1.3  ghen   key <SPCE> {
    189  1.1.1.3  ghen     type[Group1]="FOUR_LEVEL",
    190  1.1.1.3  ghen     symbols[Group1]= [ space, space, 0x100200c, 0x100200d ]
    191  1.1.1.3  ghen   };
    192  1.1.1.3  ghen };
    193  1.1.1.3  ghen 
    194  1.1.1.7   mrg 
    195  1.1.1.7   mrg // NBSP on level 2
    196  1.1.1.7   mrg // ZWNJ on level 3
    197  1.1.1.7   mrg // Used by lk(sin_phonetic)
    198  1.1.1.7   mrg partial
    199  1.1.1.7   mrg xkb_symbols "nb2zwnj3s" {
    200  1.1.1.7   mrg   key <SPCE> {
    201  1.1.1.7   mrg     type[Group1]="FOUR_LEVEL",
    202  1.1.1.7   mrg     symbols[Group1]= [ space, nobreakspace, 0x100200c, NoSymbol ]
    203  1.1.1.7   mrg   };
    204  1.1.1.7   mrg };
    205