summaryrefslogtreecommitdiff
path: root/symbols/nbsp
blob: 313cafb255f91740f9b2acb317a56b547d6abef1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
// 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 <SPCE> {[  space  ], type[group1]="ONE_LEVEL" };
};


// --- Plus No-Break Space.

partial
xkb_symbols "level2" {
  key <SPCE> {[  space,  nobreakspace  ], type[group1]="TWO_LEVEL" };
};

partial
xkb_symbols "level3" {
  key <SPCE> {[  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 <SPCE> {[  space,  space,  space,  nobreakspace  ], type[group1]="FOUR_LEVEL" };
};


// --- Plus Narrow No-Break Space

partial
xkb_symbols "level3n" {
  key <SPCE> {[  space,  space,  nobreakspace,  U202F  ], type[group1]="FOUR_LEVEL" };
};

// NNBSP on level 6 (needing a level5 chooser).
partial
xkb_symbols "level4n" {
  key <SPCE> {[  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 <SPCE> {[  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 <SPCE> {[  space,  U200c  ], type[group1]="TWO_LEVEL" };
};

// ZWNJ on level 2
// ZWJ on level 3
partial
xkb_symbols "zwnj2zwj3" {
  key <SPCE> {[  space,  U200c,  U200d  ], type[group1]="FOUR_LEVEL" };
};

// ZWNJ on level 2
// ZWJ on level 3
// NBSP on level 4
partial
xkb_symbols "zwnj2zwj3nb4" {
  key <SPCE> {[  space,  U200c,  U200d,  nobreakspace  ], type[group1]="FOUR_LEVEL" };
};

// ZWNJ on level 2
// NBSP on level 3
partial
xkb_symbols "zwnj2nb3" {
  key <SPCE> {[  space,  U200c,  nobreakspace  ], type[group1]="FOUR_LEVEL" };
};

// ZWNJ on level 2
// NBSP on level 3
// ZWJ on level 4
partial
xkb_symbols "zwnj2nb3zwj4" {
  key <SPCE> {[  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 <SPCE> {[  space,  U200c,  nobreakspace,  U202F  ], type[group1]="FOUR_LEVEL" };
};

// ZWNJ on level 3
// ZWJ on level 4
partial
xkb_symbols "zwnj3zwj4" {
  key <SPCE> {[  space,  space,  U200c,  U200d  ], type[group1]="FOUR_LEVEL" };
};