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