nbsp revision 47fb91fe
15a35480eSmrg// $XKeyboardConfig$ 2154daed1Smrg 3c067fea9Sghen// Let Space key provide No-Break Space (NBSP), Narrow No-Break Space (NNBSP), 4c067fea9Sghen// Zero-Width Non-Joiner (ZWNJ), and Zero-Width Joiner (ZWJ) for the desired 5c067fea9Sghen// levels. 6c067fea9Sghen 7c067fea9Sghen 8c067fea9Sghen//////////////////////////////////////// 9c067fea9Sghen// Only Space 10154daed1Smrg 11154daed1Smrgpartial 12154daed1Smrgxkb_symbols "none" { 13154daed1Smrg key <SPCE> { 14154daed1Smrg type[Group1]="ONE_LEVEL", 15154daed1Smrg symbols[Group1]= [ space ] 16154daed1Smrg }; 17154daed1Smrg}; 18154daed1Smrg 19c067fea9Sghen 20c067fea9Sghen//////////////////////////////////////// 21c067fea9Sghen// No-Break Space 22c067fea9Sghen 23154daed1Smrgpartial 24154daed1Smrgxkb_symbols "level2" { 25154daed1Smrg key <SPCE> { 26154daed1Smrg type[Group1]="TWO_LEVEL", 27154daed1Smrg symbols[Group1]= [ space, nobreakspace ] 28154daed1Smrg }; 29154daed1Smrg}; 30154daed1Smrg 31154daed1Smrg 32154daed1Smrg// level3 & level3ns provide no-breaking spaces starting from level3 33154daed1Smrg// This is good for typographers but experience shows many users accidently 34154daed1Smrg// type no-breaking spaces on the CLI (resulting in errors) 3547fb91feSmrg// Used by fr(latin9) and lt(std) 36154daed1Smrgpartial 37154daed1Smrgxkb_symbols "level3" { 38154daed1Smrg key <SPCE> { 39154daed1Smrg type[Group1]="FOUR_LEVEL", 40154daed1Smrg symbols[Group1]= [ space, space, nobreakspace ] 41154daed1Smrg }; 42154daed1Smrg}; 43154daed1Smrg 44154daed1Smrg// level3s kills fourth level 45154daed1Smrg// Used by ca(multix) 46154daed1Smrgpartial 47154daed1Smrgxkb_symbols "level3s" { 48154daed1Smrg key <SPCE> { 49154daed1Smrg type[Group1]="FOUR_LEVEL", 50154daed1Smrg symbols[Group1]= [ space, space, nobreakspace, NoSymbol ] 51154daed1Smrg }; 52154daed1Smrg}; 53154daed1Smrg 54c067fea9Sghen// for this reason pushing no-breaking spaces to level4 is the safe default nowadays 55154daed1Smrgpartial 56c067fea9Sghenxkb_symbols "level4" { 57154daed1Smrg key <SPCE> { 58154daed1Smrg type[Group1]="FOUR_LEVEL", 59c067fea9Sghen symbols[Group1]= [ space, space, space, nobreakspace ] 60154daed1Smrg }; 61154daed1Smrg}; 62154daed1Smrg 63154daed1Smrg 64c067fea9Sghen//////////////////////////////////////// 65c067fea9Sghen// Narrow No-Break Space 66c067fea9Sghen 67c067fea9Sghen// level3n provides narrow no-breaking space in addition to the normal one 68154daed1Smrgpartial 69c067fea9Sghenxkb_symbols "level3n" { 70154daed1Smrg key <SPCE> { 71154daed1Smrg type[Group1]="FOUR_LEVEL", 72c067fea9Sghen symbols[Group1]= [ space, space, nobreakspace, 0x100202F ] 73154daed1Smrg }; 74154daed1Smrg}; 75154daed1Smrg 76154daed1Smrg// level4n provides narrow no-breaking space in addition to the normal one 77154daed1Smrgpartial 78154daed1Smrgxkb_symbols "level4n" { 79154daed1Smrg key <SPCE> { 80154daed1Smrg type[Group1]="EIGHT_LEVEL", 81154daed1Smrg symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ] 82154daed1Smrg }; 83154daed1Smrg}; 84154daed1Smrg 85154daed1Smrg// level4nl provides narrow no-breaking space in addition to the normal one 86154daed1Smrg// without forcing the use of level5 for mostly four-level layouts 87154daed1Smrg// Used by fr(oss), be(oss)… 88154daed1Smrgpartial 89154daed1Smrgxkb_symbols "level4nl" { 90154daed1Smrg key <SPCE> { 91154daed1Smrg type[Group1]="LOCAL_EIGHT_LEVEL", 92154daed1Smrg symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ] 93154daed1Smrg }; 94154daed1Smrg}; 95154daed1Smrg 96c067fea9Sghen 97c067fea9Sghen//////////////////////////////////////// 98c067fea9Sghen// Zero-Width Non-Joiner & Zero-Width Joiner 99c067fea9Sghen// Author: Behnam Esfahbod <behnam@esfahbod.info> 100c067fea9Sghen 101c067fea9Sghen// ZWNJ and ZWJ are widely used in Persian, Kurdinsh, Pashto, Uzbek and other 102c067fea9Sghen// languages that use PersoArabic script. 103c067fea9Sghen 104c067fea9Sghen 105c067fea9Sghen// ZWNJ on level 2 106c067fea9Sghenpartial 107c067fea9Sghenxkb_symbols "zwnj2" { 108c067fea9Sghen key <SPCE> { 109c067fea9Sghen type[Group1]="TWO_LEVEL", 110c067fea9Sghen symbols[Group1]= [ space, 0x100200c ] 111c067fea9Sghen }; 112c067fea9Sghen}; 113c067fea9Sghen 114c067fea9Sghen 115c067fea9Sghen// ZWNJ on level 2 116c067fea9Sghen// ZWJ on level 3 117c067fea9Sghenpartial 118c067fea9Sghenxkb_symbols "zwnj2zwj3" { 119c067fea9Sghen key <SPCE> { 120c067fea9Sghen type[Group1]="FOUR_LEVEL", 121c067fea9Sghen symbols[Group1]= [ space, 0x100200c, 0x100200d ] 122c067fea9Sghen }; 123c067fea9Sghen}; 124c067fea9Sghen 125c067fea9Sghen 126c067fea9Sghen// ZWNJ on level 2 127c067fea9Sghen// ZWJ on level 3 128c067fea9Sghen// NBSP on level 4 129c067fea9Sghenpartial 130c067fea9Sghenxkb_symbols "zwnj2zwj3nb4" { 131c067fea9Sghen key <SPCE> { 132c067fea9Sghen type[Group1]="FOUR_LEVEL", 133c067fea9Sghen symbols[Group1]= [ space, 0x100200c, 0x100200d, nobreakspace ] 134c067fea9Sghen }; 135c067fea9Sghen}; 136c067fea9Sghen 137c067fea9Sghen// ZWNJ on level 2 138c067fea9Sghen// NBSP on level 3 139c067fea9Sghen// Used by ir(ku_ara), af(basic), af(ps), af(uz), af(olpc-fa), af(olpc-ps), af(olpc-uz) 140c067fea9Sghenpartial 141c067fea9Sghenxkb_symbols "zwnj2nb3" { 142c067fea9Sghen key <SPCE> { 143c067fea9Sghen type[Group1]="FOUR_LEVEL", 144c067fea9Sghen symbols[Group1]= [ space, 0x100200c, nobreakspace ] 145c067fea9Sghen }; 146c067fea9Sghen}; 147c067fea9Sghen 148c067fea9Sghen 149c067fea9Sghen// ZWNJ on level 2 150c067fea9Sghen// ZWJ on level 3 151c067fea9Sghen// NBSP on level 4 152c067fea9Sghen// Used by lk(sin_phonetic) 153c067fea9Sghenpartial 154c067fea9Sghenxkb_symbols "zwnj2nb3s" { 155c067fea9Sghen key <SPCE> { 156c067fea9Sghen type[Group1]="FOUR_LEVEL", 157c067fea9Sghen symbols[Group1]= [ space, 0x100200c, nobreakspace, NoSymbol ] 158c067fea9Sghen }; 159c067fea9Sghen}; 160c067fea9Sghen 161c067fea9Sghen 162c067fea9Sghen// ZWNJ on level 2 163c067fea9Sghen// NBSP on level 3 164c067fea9Sghen// ZWJ on level 4 165c067fea9Sghenpartial 166c067fea9Sghenxkb_symbols "zwnj2nb3zwj4" { 167c067fea9Sghen key <SPCE> { 168c067fea9Sghen type[Group1]="FOUR_LEVEL", 169c067fea9Sghen symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100200d ] 170c067fea9Sghen }; 171c067fea9Sghen}; 172c067fea9Sghen 173c067fea9Sghen 174c067fea9Sghen// ZWNJ on level 2 175c067fea9Sghen// NBSP on level 3 176c067fea9Sghen// NNBSP on level 4 177c067fea9Sghen// Used by ir(pes) 178c067fea9Sghenpartial 179c067fea9Sghenxkb_symbols "zwnj2nb3nnb4" { 180c067fea9Sghen key <SPCE> { 181c067fea9Sghen type[Group1]="FOUR_LEVEL", 182c067fea9Sghen symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100202F ] 183c067fea9Sghen }; 184c067fea9Sghen}; 185c067fea9Sghen 186c067fea9Sghen 187c067fea9Sghen// ZWNJ on level 3 188c067fea9Sghen// ZWJ on level 4 189c067fea9Sghen// Used by in(deva), in(olpc) 190c067fea9Sghenpartial 191c067fea9Sghenxkb_symbols "zwnj3zwj4" { 192c067fea9Sghen key <SPCE> { 193c067fea9Sghen type[Group1]="FOUR_LEVEL", 194c067fea9Sghen symbols[Group1]= [ space, space, 0x100200c, 0x100200d ] 195c067fea9Sghen }; 196c067fea9Sghen}; 197c067fea9Sghen 198