nbsp revision c067fea9
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 11partial 12xkb_symbols "none" { 13 key <SPCE> { 14 type[Group1]="ONE_LEVEL", 15 symbols[Group1]= [ space ] 16 }; 17}; 18 19 20//////////////////////////////////////// 21// No-Break Space 22 23partial 24xkb_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) 36partial 37xkb_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) 46partial 47xkb_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 55partial 56xkb_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 68partial 69xkb_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 77partial 78xkb_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)… 88partial 89xkb_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@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 106partial 107xkb_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 117partial 118xkb_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 129partial 130xkb_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) 140partial 141xkb_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) 153partial 154xkb_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 165partial 166xkb_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) 178partial 179xkb_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) 190partial 191xkb_symbols "zwnj3zwj4" { 192 key <SPCE> { 193 type[Group1]="FOUR_LEVEL", 194 symbols[Group1]= [ space, space, 0x100200c, 0x100200d ] 195 }; 196}; 197 198