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