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