// Let Space key provide No-Break Space (NBSP), Narrow No-Break Space (NNBSP), // Zero-Width Non-Joiner (ZWNJ), and Zero-Width Joiner (ZWJ) for the desired // levels. // --- Just Space. partial xkb_symbols "none" { key {[ space ], type[group1]="ONE_LEVEL" }; }; // --- Plus No-Break Space. partial xkb_symbols "level2" { key {[ space, nobreakspace ], type[group1]="TWO_LEVEL" }; }; partial xkb_symbols "level3" { key {[ space, space, nobreakspace ], type[group1]="FOUR_LEVEL" }; }; // Experience has shown that users accidently type non-breaking spaces when // NBSP is on level 3, so having it on level 4 is the safe default nowadays. partial xkb_symbols "level4" { key {[ space, space, space, nobreakspace ], type[group1]="FOUR_LEVEL" }; }; // --- Plus Narrow No-Break Space partial xkb_symbols "level3n" { key {[ space, space, nobreakspace, U202F ], type[group1]="FOUR_LEVEL" }; }; // NNBSP on level 6 (needing a level5 chooser). partial xkb_symbols "level4n" { key {[ space, space, space, nobreakspace, space, U202F, any, any ], type[group1]="EIGHT_LEVEL" }; }; // NNBSP on level 6 (accessed with Ctrl+Shift). partial xkb_symbols "level4nl" { key {[ space, space, space, nobreakspace, space, U202F, any, any ], type[group1]="EIGHT_LEVEL_BY_CTRL" }; }; // Zero-Width Non-Joiner (ZWNJ) and Zero-Width Joiner (ZWJ) are widely used // in Persian, Kurdish, Pashto, Uzbek, and other languages in their area. // ZWNJ on level 2 partial xkb_symbols "zwnj2" { key {[ space, U200c ], type[group1]="TWO_LEVEL" }; }; // ZWNJ on level 2 // ZWJ on level 3 partial xkb_symbols "zwnj2zwj3" { key {[ space, U200c, U200d ], type[group1]="FOUR_LEVEL" }; }; // ZWNJ on level 2 // ZWJ on level 3 // NBSP on level 4 partial xkb_symbols "zwnj2zwj3nb4" { key {[ space, U200c, U200d, nobreakspace ], type[group1]="FOUR_LEVEL" }; }; // ZWNJ on level 2 // NBSP on level 3 partial xkb_symbols "zwnj2nb3" { key {[ space, U200c, nobreakspace ], type[group1]="FOUR_LEVEL" }; }; // ZWNJ on level 2 // NBSP on level 3 // ZWJ on level 4 partial xkb_symbols "zwnj2nb3zwj4" { key {[ space, U200c, nobreakspace, U200d ], type[group1]="FOUR_LEVEL" }; }; // ZWNJ on level 2 // NBSP on level 3 // NNBSP on level 4 partial xkb_symbols "zwnj2nb3nnb4" { key {[ space, U200c, nobreakspace, U202F ], type[group1]="FOUR_LEVEL" }; }; // ZWNJ on level 3 // ZWJ on level 4 partial xkb_symbols "zwnj3zwj4" { key {[ space, space, U200c, U200d ], type[group1]="FOUR_LEVEL" }; };