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