xkeyboard-config
108 строк · 2.6 Кб
1// Let Space key provide No-Break Space (NBSP), Narrow No-Break Space (NNBSP),
2// Zero-Width Non-Joiner (ZWNJ), and Zero-Width Joiner (ZWJ) for the desired
3// levels.
4
5
6// --- Just Space.
7
8partial
9xkb_symbols "none" {
10key <SPCE> {[ space ], type[group1]="ONE_LEVEL" };
11};
12
13
14// --- Plus No-Break Space.
15
16partial
17xkb_symbols "level2" {
18key <SPCE> {[ space, nobreakspace ], type[group1]="TWO_LEVEL" };
19};
20
21partial
22xkb_symbols "level3" {
23key <SPCE> {[ space, space, nobreakspace ], type[group1]="FOUR_LEVEL" };
24};
25
26// Experience has shown that users accidently type non-breaking spaces when
27// NBSP is on level 3, so having it on level 4 is the safe default nowadays.
28partial
29xkb_symbols "level4" {
30key <SPCE> {[ space, space, space, nobreakspace ], type[group1]="FOUR_LEVEL" };
31};
32
33
34// --- Plus Narrow No-Break Space
35
36partial
37xkb_symbols "level3n" {
38key <SPCE> {[ space, space, nobreakspace, U202F ], type[group1]="FOUR_LEVEL" };
39};
40
41// NNBSP on level 6 (needing a level5 chooser).
42partial
43xkb_symbols "level4n" {
44key <SPCE> {[ space, space, space, nobreakspace, space, U202F, any, any ],
45type[group1]="EIGHT_LEVEL" };
46};
47
48// NNBSP on level 6 (accessed with Ctrl+Shift).
49partial
50xkb_symbols "level4nl" {
51key <SPCE> {[ space, space, space, nobreakspace, space, U202F, any, any ],
52type[group1]="EIGHT_LEVEL_BY_CTRL" };
53};
54
55
56// Zero-Width Non-Joiner (ZWNJ) and Zero-Width Joiner (ZWJ) are widely used
57// in Persian, Kurdish, Pashto, Uzbek, and other languages in their area.
58
59// ZWNJ on level 2
60partial
61xkb_symbols "zwnj2" {
62key <SPCE> {[ space, U200c ], type[group1]="TWO_LEVEL" };
63};
64
65// ZWNJ on level 2
66// ZWJ on level 3
67partial
68xkb_symbols "zwnj2zwj3" {
69key <SPCE> {[ space, U200c, U200d ], type[group1]="FOUR_LEVEL" };
70};
71
72// ZWNJ on level 2
73// ZWJ on level 3
74// NBSP on level 4
75partial
76xkb_symbols "zwnj2zwj3nb4" {
77key <SPCE> {[ space, U200c, U200d, nobreakspace ], type[group1]="FOUR_LEVEL" };
78};
79
80// ZWNJ on level 2
81// NBSP on level 3
82partial
83xkb_symbols "zwnj2nb3" {
84key <SPCE> {[ space, U200c, nobreakspace ], type[group1]="FOUR_LEVEL" };
85};
86
87// ZWNJ on level 2
88// NBSP on level 3
89// ZWJ on level 4
90partial
91xkb_symbols "zwnj2nb3zwj4" {
92key <SPCE> {[ space, U200c, nobreakspace, U200d ], type[group1]="FOUR_LEVEL" };
93};
94
95// ZWNJ on level 2
96// NBSP on level 3
97// NNBSP on level 4
98partial
99xkb_symbols "zwnj2nb3nnb4" {
100key <SPCE> {[ space, U200c, nobreakspace, U202F ], type[group1]="FOUR_LEVEL" };
101};
102
103// ZWNJ on level 3
104// ZWJ on level 4
105partial
106xkb_symbols "zwnj3zwj4" {
107key <SPCE> {[ space, space, U200c, U200d ], type[group1]="FOUR_LEVEL" };
108};
109