rx-51 revision c067fea9
1c067fea9Sghendefault partial alphanumeric_keys
2c067fea9Sghenxkb_symbols "common" {
3c067fea9Sghen    include "nokia_vndr/rx-51(common_keys)"
4c067fea9Sghen    include "nokia_vndr/rx-51(modifiers)"
5c067fea9Sghen
6c067fea9Sghen    // This section should not be included by any other section.
7c067fea9Sghen    // It's referenced only once by rule file to allow multiple layout configurations.
8c067fea9Sghen
9c067fea9Sghen    // More than one layout at the same time could be set for instance as follows:
10c067fea9Sghen    // setxkbmap -rules evdev \
11c067fea9Sghen    //           -model nokiarx51 \
12c067fea9Sghen    //           -option grp:ctrl_shift_toggle \
13c067fea9Sghen    //           -layout us,cz \
14c067fea9Sghen    //           -variant ",qwerty"
15c067fea9Sghen
16c067fea9Sghen    // Notice the similarity:
17c067fea9Sghen    //   "pc+us+cz(qwerty):2+grp:XYZ" vs.
18c067fea9Sghen    //   "nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)+nokia_vndr/rx-51(cz_qwerty):2+grp:XYZ"
19c067fea9Sghen    // where XYZ is one of xkb_symbols section usually located in file symbols/group.
20c067fea9Sghen
21c067fea9Sghen    // Bear in mind that option XYZ could replace current keys configuration!!!
22c067fea9Sghen
23c067fea9Sghen    // For instance using symbols/group(ctrl_shift_toggle) redefines LCTL and LFSH keys
24c067fea9Sghen    // which may disallow opening of virtual symbol table (Multi_key).
25c067fea9Sghen    // Fortunately the Multi_key is defined in 3rd and 4th level a ctrl_shift_toggle
26c067fea9Sghen    // redefines first two levels only. But RX-51 has not right Ctrl nor Shift therefore
27c067fea9Sghen    // pressing Ctrl+Shift will switch to previous layout, not to the next one.
28c067fea9Sghen
29c067fea9Sghen    // For RX-51 device there is a lot of restrictions if more than one layout is
30c067fea9Sghen    // is configured at the same time because some modifiers and special cases are
31c067fea9Sghen    // handled by hildon layer (especially with eight-level layout):
32c067fea9Sghen    //  - settings may be done from terminal only (GUI doesn't and won't support it)
33c067fea9Sghen    //  - virtual symbol table is not updated according to current layout
34c067fea9Sghen    //  - for unknown reasons the eight-level layout (nordic,ru) works properly
35c067fea9Sghen    //    only if it's configured as first layout (e.g. "ru,us,cz" not "us,cz,ru")
36c067fea9Sghen    //    otherwise it's not possible to access levels 5-8
37c067fea9Sghen    //  - Ctrl+Space related problems:
38c067fea9Sghen    //     - If eight-level layout is used as first layout one of eight-level layouts has to
39c067fea9Sghen    //       be also chosen in GUI - otherwise the Ctrl+Space "switch" is disabled
40c067fea9Sghen    //     - Ctrl+Space has no effect if only four-level layouts are chosen
41c067fea9Sghen    //       (don't forget the layout configured in GUI - despite of it's not reachable)
42c067fea9Sghen    //     - a few keys in 2nd layer could be mixed with other layouts when Ctrl+Space is "turned on" (why?)
43c067fea9Sghen    //       in case eight- and four-level layouts are configured simultaneously
44c067fea9Sghen    //     - Ctrl+Space is "turned on" by default and has to be "turned off" for four-level layouts
45c067fea9Sghen    //       in case eight- and four-level layouts are configured simultaneously
46c067fea9Sghen    //     - four-level layout on first place doesn't work at all when Ctrl+Space is "turned on"
47c067fea9Sghen    //       in case the 2nd, 3rd or 4th layout is eight-level layout
48c067fea9Sghen};
49c067fea9Sghen
50c067fea9Sghen////////////////////////////////////////////////////////////////////////////////
51c067fea9Sghen
52c067fea9Sghenpartial alphanumeric_keys
53c067fea9Sghenxkb_symbols "us" {
54c067fea9Sghen    include "nokia_vndr/rx-51(english_base)"
55c067fea9Sghen    include "nokia_vndr/rx-51(arrows_4btns)"
56c067fea9Sghen
57c067fea9Sghen    name[Group1] = "U.S. English";
58c067fea9Sghen};
59c067fea9Sghen
60c067fea9Sghen
61c067fea9Sghen
62c067fea9Sghenpartial alphanumeric_keys
63c067fea9Sghenxkb_symbols "pl" {
64c067fea9Sghen    include "nokia_vndr/rx-51(english_base)"
65c067fea9Sghen    include "nokia_vndr/rx-51(arrows_4btns)"
66c067fea9Sghen
67c067fea9Sghen    name[Group1] = "Polish";
68c067fea9Sghen};
69c067fea9Sghen
70c067fea9Sghen
71c067fea9Sghen
72c067fea9Sghenpartial alphanumeric_keys
73c067fea9Sghenxkb_symbols "fise" {
74c067fea9Sghen    include "nokia_vndr/rx-51(nordic_base)"
75c067fea9Sghen    include "nokia_vndr/rx-51(arrows_2btns)"
76c067fea9Sghen
77c067fea9Sghen    name[Group1] = "Finnish/Swedish";
78c067fea9Sghen
79c067fea9Sghen    // 2. row
80c067fea9Sghen    key <AB09>	{ [	odiaeresis,	Odiaeresis,	exclam,		exclam		] };
81c067fea9Sghen    key <UP>	{ [	adiaeresis,	Adiaeresis,	question,	question	] };
82c067fea9Sghen};
83c067fea9Sghen
84c067fea9Sghen
85c067fea9Sghen
86c067fea9Sghenpartial alphanumeric_keys
87c067fea9Sghenxkb_symbols "dano" {
88c067fea9Sghen    include "nokia_vndr/rx-51(nordic_base)"
89c067fea9Sghen    include "nokia_vndr/rx-51(arrows_2btns)"
90c067fea9Sghen
91c067fea9Sghen    name[Group1] = "Danish/Norwegian";
92c067fea9Sghen
93c067fea9Sghen    // 2. row
94c067fea9Sghen    key <AB09>	{ [	oslash,		Oslash,		exclam,		exclam		] };
95c067fea9Sghen    key <UP>	{ [	ae,		AE,		question,	question	] };
96c067fea9Sghen};
97c067fea9Sghen
98c067fea9Sghen
99c067fea9Sghen
100c067fea9Sghenpartial alphanumeric_keys
101c067fea9Sghenxkb_symbols "nordic" {
102c067fea9Sghen    include "nokia_vndr/rx-51(nordic_base)"
103c067fea9Sghen    include "nokia_vndr/rx-51(arrows_2btns)"
104c067fea9Sghen
105c067fea9Sghen    name[Group1] = "Danish/Finnish/Norwegian/Swedish";
106c067fea9Sghen
107c067fea9Sghen    key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
108c067fea9Sghen
109c067fea9Sghen    // 2. row
110c067fea9Sghen    key <AB09>	{ [	odiaeresis,	Odiaeresis,	exclam,		exclam,		oslash,		Oslash,		exclam,		exclam		] };
111c067fea9Sghen    key <UP>	{ [	adiaeresis,	Adiaeresis,	question,	question,	ae,		AE,		question,	question	] };
112c067fea9Sghen};
113c067fea9Sghen
114c067fea9Sghen
115c067fea9Sghen
116c067fea9Sghenpartial alphanumeric_keys
117c067fea9Sghenxkb_symbols "ptes" {
118c067fea9Sghen    include "nokia_vndr/rx-51(english_base)"
119c067fea9Sghen    include "nokia_vndr/rx-51(arrows_2btns)"
120c067fea9Sghen
121c067fea9Sghen    name[Group1] = "Portuguese/Spanish";
122c067fea9Sghen
123c067fea9Sghen    // 1. row
124c067fea9Sghen    key <AB08>	{ [	dead_acute,	dead_acute,	dead_grave,	dead_grave	] };
125c067fea9Sghen
126c067fea9Sghen    // 2. row
127c067fea9Sghen    key <AC05>	{ [	g,		G,		exclamdown,	exclamdown	] };
128c067fea9Sghen    key <AC06>	{ [	h,		H,		exclam,		exclam		] };
129c067fea9Sghen    key <AC07>	{ [	j,		J,		questiondown,	questiondown	] };
130c067fea9Sghen    key <AC08>	{ [	k,		K,		question,	question	] };
131c067fea9Sghen    key <AC09>	{ [	l,		L,		dead_diaeresis,	dead_diaeresis	] };
132c067fea9Sghen    key <AB09>	{ [	ntilde,		Ntilde,		dead_tilde,	dead_tilde	] };
133c067fea9Sghen    key <UP>	{ [	ccedilla,	Ccedilla,	dead_circumflex,dead_circumflex	] };
134c067fea9Sghen
135c067fea9Sghen    // 3. row
136c067fea9Sghen    key <AB01>	{ [	z,		Z,		parenleft,	parenleft	] };
137c067fea9Sghen    key <AB02>	{ [	x,		X,		parenright,	parenright 	] };
138c067fea9Sghen    key <AB03>	{ [	c,		C,		slash,		slash		] };
139c067fea9Sghen    key <AB04>	{ [	v,		V,		quotedbl,	quotedbl	] };
140c067fea9Sghen    key <AB05>	{ [	b,		B,		apostrophe,	apostrophe	] };
141c067fea9Sghen    key <AB06>	{ [	n,		N,		colon,		colon		] };
142c067fea9Sghen    key <AB07>	{ [	m,		M,		semicolon,	semicolon	] };
143c067fea9Sghen    key <LEFT>	{ [	period,		comma,		comma,		comma		] };
144c067fea9Sghen};
145c067fea9Sghen
146c067fea9Sghen
147c067fea9Sghen
148c067fea9Sghenpartial alphanumeric_keys
149c067fea9Sghenxkb_symbols "fr" {
150c067fea9Sghen    include "nokia_vndr/rx-51(english_base)"
151c067fea9Sghen    include "nokia_vndr/rx-51(arrows_2btns)"
152c067fea9Sghen
153c067fea9Sghen    name[Group1] = "French";
154c067fea9Sghen
155c067fea9Sghen    // 1. row
156c067fea9Sghen    key <AD01>	{ [	a,		A,		1,		1		] };
157c067fea9Sghen    key <AD02>	{ [	z,		Z,		2,		2		] };
158c067fea9Sghen    key <AB08>	{ [	agrave,		Agrave,		ccedilla,	Ccedilla	] };
159c067fea9Sghen
160c067fea9Sghen    // 2. row
161c067fea9Sghen    key <AC01>	{ [	q,		Q,		asterisk,	asterisk	] };
162c067fea9Sghen    key <AC02>	{ [	s,		S,		plus,		plus		] };
163c067fea9Sghen    key <AC03>	{ [	d,		D,		numbersign,	numbersign	] };
164c067fea9Sghen    key <AC04>	{ [	f,		F,		minus,  	minus		] };
165c067fea9Sghen    key <AC05>	{ [	g,		G,		underscore,	underscore	] };
166c067fea9Sghen    key <AC06>	{ [	h,		H,		exclam,		exclam		] };
167c067fea9Sghen    key <AC07>	{ [	j,		J,		question,	question	] };
168c067fea9Sghen    key <AC08>	{ [	k,		K,		colon,		colon		] };
169c067fea9Sghen    key <AC09>	{ [	l,		L,		dead_circumflex,dead_circumflex	] };
170c067fea9Sghen    key <AB09>	{ [	m,		M,		ugrave,		Ugrave		] };
171c067fea9Sghen    key <UP>	{ [	eacute,		Eacute,		egrave,		Egrave		] };
172c067fea9Sghen
173c067fea9Sghen    // 3. row
174c067fea9Sghen    key <AB01>	{ [	w,		W,		EuroSign,       EuroSign	] };
175c067fea9Sghen    key <AB03>	{ [	c,		C,		parenleft,	parenleft	] };
176c067fea9Sghen    key <AB04>	{ [	v,		V,		parenright,	parenright	] };
177c067fea9Sghen    key <AB05>	{ [	b,		B,		slash,		slash		] };
178c067fea9Sghen    key <AB07>	{ [	comma,		comma,		apostrophe,	apostrophe	] };
179c067fea9Sghen    key <LEFT>	{ [	semicolon,	period,		period,		period		] };
180c067fea9Sghen};
181c067fea9Sghen
182c067fea9Sghen
183c067fea9Sghen
184c067fea9Sghenpartial alphanumeric_keys
185c067fea9Sghenxkb_symbols "de" {
186c067fea9Sghen    include "nokia_vndr/rx-51(english_base)"
187c067fea9Sghen    include "nokia_vndr/rx-51(arrows_2btns)"
188c067fea9Sghen
189c067fea9Sghen    name[Group1] = "German";
190c067fea9Sghen
191c067fea9Sghen    // 1. row
192c067fea9Sghen    key <AD06>	{ [	z,		Z,		6,		6		] };
193c067fea9Sghen    key <AB08>	{ [	udiaeresis,	Udiaeresis,	ssharp,		ssharp		] };
194c067fea9Sghen
195c067fea9Sghen    // 2. row
196c067fea9Sghen    key <AC08>	{ [	k,		K,		semicolon,	semicolon	] };
197c067fea9Sghen    key <AC09>	{ [	l,		L,		colon,		colon		] };
198c067fea9Sghen    key <AB09>	{ [	odiaeresis,	Odiaeresis,	exclam,		exclam		] };
199c067fea9Sghen    key <UP>	{ [	adiaeresis,	Adiaeresis,	question,	question	] };
200c067fea9Sghen
201c067fea9Sghen    // 3. row
202c067fea9Sghen    key <AB01>	{ [	y,		Y,		EuroSign,	EuroSign	] };
203c067fea9Sghen    key <AB03>	{ [	c,		C,		equal,		equal		] };
204c067fea9Sghen    key <LEFT>	{ [	period,		comma,		comma,		comma		] };
205c067fea9Sghen};
206c067fea9Sghen
207c067fea9Sghen
208c067fea9Sghen
209c067fea9Sghenpartial alphanumeric_keys
210c067fea9Sghenxkb_symbols "ch" {
211c067fea9Sghen    include "nokia_vndr/rx-51(english_base)"
212c067fea9Sghen    include "nokia_vndr/rx-51(arrows_2btns)"
213c067fea9Sghen
214c067fea9Sghen    name[Group1] = "Swiss";
215c067fea9Sghen
216c067fea9Sghen    // 1. row
217c067fea9Sghen    key <AD06>	{ [	z,		Z,		6,		6		] };
218c067fea9Sghen    key <AB08>	{ [	udiaeresis,	Udiaeresis,	egrave,		Egrave		] };
219c067fea9Sghen
220c067fea9Sghen    // 2. row
221c067fea9Sghen    key <AC06>	{ [	h,		H,		equal,		equal		] };
222c067fea9Sghen    key <AC07>	{ [	j,		J,		parenleft,	parenleft	] };
223c067fea9Sghen    key <AC08>	{ [	k,		K,		parenright,	parenright	] };
224c067fea9Sghen    key <AC09>	{ [	l,		L,		colon,		colon		] };
225c067fea9Sghen    key <AB09>	{ [	odiaeresis,	Odiaeresis,	eacute,		Aacute		] };
226c067fea9Sghen    key <UP>	{ [	adiaeresis,	Adiaeresis,	agrave,		Agrave		] };
227c067fea9Sghen
228c067fea9Sghen    // 3. row
229c067fea9Sghen    key <AB01>	{ [	y,		Y,		question,	question	] };
230c067fea9Sghen    key <AB02>	{ [	x,		X,		exclam,		exclam		] };
231c067fea9Sghen    key <AB03>	{ [	c,		C,		ccedilla,	Ccedilla	] };
232c067fea9Sghen    key <LEFT>	{ [	period,		comma,		comma,		comma		] };
233c067fea9Sghen};
234c067fea9Sghen
235c067fea9Sghen
236c067fea9Sghen
237c067fea9Sghen// Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons.
238c067fea9Sghenpartial alphanumeric_keys
239c067fea9Sghenxkb_symbols "ru" {
240c067fea9Sghen    include "nokia_vndr/rx-51(english_base)"
241c067fea9Sghen    include "nokia_vndr/rx-51(arrows_2btns)"
242c067fea9Sghen
243c067fea9Sghen    name[Group1] = "Russian";
244c067fea9Sghen
245c067fea9Sghen    key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
246c067fea9Sghen
247c067fea9Sghen    // 1. row
248c067fea9Sghen    key <AD01>	{ [	q,		Q,		1,			1,			Cyrillic_shorti,	Cyrillic_SHORTI,	1,			1			] };
249c067fea9Sghen    key <AD02>	{ [	w,		W,		2,			2,			Cyrillic_tse,		Cyrillic_TSE,		2,			2			] };
250c067fea9Sghen    key <AD03>	{ [	e,		E,		3,			3,			Cyrillic_u,		Cyrillic_U,		3,			3			] };
251c067fea9Sghen    key <AD04>	{ [	r,		R,		4,			4,			Cyrillic_ka,		Cyrillic_KA,		4,			4			] };
252c067fea9Sghen    key <AD05>	{ [	t,		T,		5,			5,			Cyrillic_ie,		Cyrillic_IE,		5,			5			] };
253c067fea9Sghen    key <AD06>	{ [	y,		Y,		6,			6,			Cyrillic_en,		Cyrillic_EN,		6,			6			] };
254c067fea9Sghen    key <AD07>	{ [	u,		U,		7,			7,			Cyrillic_ghe,		Cyrillic_GHE,		7,			7			] };
255c067fea9Sghen    key <AD08>	{ [	i,		I,		8,			8,			Cyrillic_sha,		Cyrillic_SHA,		8,			8			] };
256c067fea9Sghen    key <AD09>	{ [	o,		O,		9,			9,			Cyrillic_shcha,		Cyrillic_SHCHA,		9,			9			] };
257c067fea9Sghen    key <AD10>	{ [	p,		P,		0,			0,			Cyrillic_ze,		Cyrillic_ZE,		0,			0			] };
258c067fea9Sghen    key <AB08>  { [	Cyrillic_ha,	Cyrillic_HA,	Cyrillic_hardsign,	Cyrillic_HARDSIGN,	Cyrillic_ha,		Cyrillic_HA,		Cyrillic_hardsign,	Cyrillic_HARDSIGN	] };
259c067fea9Sghen
260c067fea9Sghen    // 2. row
261c067fea9Sghen    key <AC01>	{ [	a,		A,		asterisk,		asterisk,		Cyrillic_ef,		Cyrillic_EF,		asterisk,		asterisk		] };
262c067fea9Sghen    key <AC02>	{ [	s,		S,		plus,			plus,			Cyrillic_yeru,		Cyrillic_YERU,		plus,			plus			] };
263c067fea9Sghen    key <AC03>	{ [	d,		D,		numbersign,		numbersign,		Cyrillic_ve,		Cyrillic_VE,		numbersign,		numbersign		] };
264c067fea9Sghen    key <AC04>	{ [	f,		F,		minus,			minus,			Cyrillic_a,		Cyrillic_A,		minus,			minus			] };
265c067fea9Sghen    key <AC05>	{ [	g,		G,		underscore,		underscore,		Cyrillic_pe,		Cyrillic_PE,		underscore,		underscore		] };
266c067fea9Sghen    key <AC06>	{ [	h,		H,		exclam,			exclam,			Cyrillic_er,		Cyrillic_ER,		exclam,			exclam			] };
267c067fea9Sghen    key <AC07>	{ [	j,		J,		question,		question,		Cyrillic_o,		Cyrillic_O,		question,		question		] };
268c067fea9Sghen    key <AC08>	{ [	k,		K,		semicolon,		semicolon,		Cyrillic_el,		Cyrillic_EL,		semicolon,		semicolon		] };
269c067fea9Sghen    key <AC09>	{ [	l,		L,		colon,			colon,			Cyrillic_de,		Cyrillic_DE,		colon,			colon			] };
270c067fea9Sghen    key <AB09>	{ [	comma,		comma,		comma,			comma,			Cyrillic_zhe,		Cyrillic_ZHE,		comma,			comma			] };
271c067fea9Sghen    key <UP>	{ [	period,		period,		period,			period,			Cyrillic_e,		Cyrillic_E,		period,			period			] };
272c067fea9Sghen
273c067fea9Sghen    // 3. row
274c067fea9Sghen    key <AB01>	{ [	z,		Z,		dollar,			dollar,			Cyrillic_ya,		Cyrillic_YA,		dollar,			dollar			] };
275c067fea9Sghen    key <AB02>	{ [	x,		X,		EuroSign,		EuroSign,		Cyrillic_che,		Cyrillic_CHE,		EuroSign,		EuroSign		] };
276c067fea9Sghen    key <AB03>	{ [	c,		C,		slash,			slash,			Cyrillic_es,		Cyrillic_ES,		slash,			slash			] };
277c067fea9Sghen    key <AB04>	{ [	v,		V,		parenleft,		parenleft,		Cyrillic_em,		Cyrillic_EM,		parenleft,		parenleft		] };
278c067fea9Sghen    key <AB05>	{ [	b,		B,		parenright,		parenright,		Cyrillic_i,		Cyrillic_I,		parenright,		parenright		] };
279c067fea9Sghen    key <AB06>	{ [	n,		N,		quotedbl,		quotedbl,		Cyrillic_te,		Cyrillic_TE,		quotedbl,		quotedbl		] };
280c067fea9Sghen    key <AB07>	{ [	m,		M,		apostrophe,		apostrophe,		Cyrillic_softsign,	Cyrillic_SOFTSIGN,	apostrophe,		apostrophe		] };
281c067fea9Sghen    key <LEFT>	{ [	Cyrillic_be,	Cyrillic_BE,	Cyrillic_yu,		Cyrillic_YU,		Cyrillic_be,		Cyrillic_BE,		Cyrillic_yu,		Cyrillic_YU		] };
282c067fea9Sghen};
283c067fea9Sghen
284c067fea9Sghen
285c067fea9Sghen
286c067fea9Sghenpartial alphanumeric_keys
287c067fea9Sghenxkb_symbols "it" {
288c067fea9Sghen    include "nokia_vndr/rx-51(english_base)"
289c067fea9Sghen    include "nokia_vndr/rx-51(arrows_2btns)"
290c067fea9Sghen
291c067fea9Sghen    name[Group1] = "Italian";
292c067fea9Sghen
293c067fea9Sghen    // 1. row
294c067fea9Sghen    key <AB08>	{ [	egrave,		Egrave,		eacute,		Eacute		] };
295c067fea9Sghen
296c067fea9Sghen    // 2. row
297c067fea9Sghen    key <AC06>	{ [	h,		H,		semicolon,	semicolon	] };
298c067fea9Sghen    key <AC07>	{ [	j,		J,		colon,		colon		] };
299c067fea9Sghen    key <AC08>	{ [	k,		K,		exclam,		exclam		] };
300c067fea9Sghen    key <AC09>	{ [	l,		L,		question,	question	] };
301c067fea9Sghen    key <AB09>	{ [	ograve,		Ograve,		igrave,		Igrave		] };
302c067fea9Sghen    key <UP>	{ [	agrave,		Agrave,		ugrave,		Ugrave		] };
303c067fea9Sghen
304c067fea9Sghen    // 3. row
305c067fea9Sghen    key <AB01>	{ [	z,		Z,		EuroSign,	EuroSign	] };
306c067fea9Sghen    key <AB02>	{ [	x,		X,		parenleft,	parenleft	] };
307c067fea9Sghen    key <AB03>	{ [	c,		C,		parenright,	parenright	] };
308c067fea9Sghen    key <LEFT>	{ [	period,		comma,		comma,		comma		] };
309c067fea9Sghen};
310c067fea9Sghen
311c067fea9Sghen
312c067fea9Sghen
313c067fea9Sghenpartial alphanumeric_keys
314c067fea9Sghenxkb_symbols "cz" {
315c067fea9Sghen    include "nokia_vndr/rx-51(english_base)"
316c067fea9Sghen    include "nokia_vndr/rx-51(arrows_2btns)"
317c067fea9Sghen
318c067fea9Sghen    name[Group1] = "Czech";
319c067fea9Sghen
320c067fea9Sghen    // 1. row
321c067fea9Sghen    key <AD06>	{ [	z,		Z,		6,		6		] };
322c067fea9Sghen    key <AB08>	{ [	dead_acute,	dead_acute,	sterling,	sterling	] };
323c067fea9Sghen
324c067fea9Sghen    // 2. row
325c067fea9Sghen    key <AC08>	{ [	k,		K,		semicolon,	semicolon	] };
326c067fea9Sghen    key <AC09>	{ [	l,		L,		colon,		colon		] };
327c067fea9Sghen    key <AB09>	{ [	uring,		Uring,		EuroSign,	EuroSign	] };
328c067fea9Sghen    key <UP>	{ [	dead_caron,	dead_caron,	dollar,		dollar		] };
329c067fea9Sghen
330c067fea9Sghen    // 3. row
331c067fea9Sghen    key <AB01>	{ [	y,		Y,		equal,		equal		] };
332c067fea9Sghen    key <AB02>	{ [	x,		X,		slash,		slash		] };
333c067fea9Sghen    key <AB03>	{ [	c,		C,		backslash,	backslash	] };
334c067fea9Sghen    key <AB04>	{ [	v,		V,		apostrophe,	apostrophe	] };
335c067fea9Sghen    key <AB05>	{ [	b,		B,		quotedbl,	quotedbl	] };
336c067fea9Sghen    key <AB06>	{ [	n,		N,		exclam,		exclam		] };
337c067fea9Sghen    key <AB07>	{ [	m,		M,		question,	question	] };
338c067fea9Sghen    key <LEFT>	{ [	period,		comma,		comma,		comma		] };
339c067fea9Sghen};
340c067fea9Sghen
341c067fea9Sghenpartial alphanumeric_keys
342c067fea9Sghenxkb_symbols "cz_qwerty" {
343c067fea9Sghen    include "nokia_vndr/rx-51(cz)"
344c067fea9Sghen
345c067fea9Sghen    name[Group1] = "Czech - qwerty";
346c067fea9Sghen
347c067fea9Sghen    // Do not use the layout "cz_qwerty" directly if it is the only layout and compat rules enabled.
348c067fea9Sghen    // There is one compat rule that converts "cz_qwerty" to "pc+cz(qwerty)" which is not correct for RX-51.
349c067fea9Sghen    // Use either the layout "cz(qwerty)" or the general "cz" with variant "qwerty".
350c067fea9Sghen
351c067fea9Sghen    // 1. row
352c067fea9Sghen    key <AD06>	{ [	y,		Y,		6,		6		] };
353c067fea9Sghen
354c067fea9Sghen    // 3. row
355c067fea9Sghen    key <AB01>	{ [	z,		Z,		percent,	percent		] };
356c067fea9Sghen};
357c067fea9Sghen
358c067fea9Sghen
359c067fea9Sghen
360c067fea9Sghen////////////////////////////////////////////////////////////////////////////////
361c067fea9Sghen
362c067fea9Sghenpartial hidden alphanumeric_keys
363c067fea9Sghenxkb_symbols "nordic_base" {
364c067fea9Sghen    include "nokia_vndr/rx-51(english_base)"
365c067fea9Sghen
366c067fea9Sghen    // 1. row
367c067fea9Sghen    key <AB08>	{ [	aring,		Aring,		equal,		equal		] };
368c067fea9Sghen
369c067fea9Sghen    // 2. row
370c067fea9Sghen    key <AC08>	{ [	k,		K,		semicolon,	semicolon	] };
371c067fea9Sghen    key <AC09>	{ [	l,		L,		colon,		colon		] };
372c067fea9Sghen
373c067fea9Sghen    // 3. row
374c067fea9Sghen    key <AB01>	{ [	z,		Z,		EuroSign,	EuroSign	] };
375c067fea9Sghen    key <AB03>	{ [	c,		C,		sterling,	sterling	] };
376c067fea9Sghen    key <LEFT>	{ [	period,		comma,		comma,		comma		] };
377c067fea9Sghen};
378c067fea9Sghen
379c067fea9Sghenpartial hidden alphanumeric_keys
380c067fea9Sghenxkb_symbols "english_base" {
381c067fea9Sghen
382c067fea9Sghen    // 1. row
383c067fea9Sghen    key <AD01>	{ [	q,		Q,		1,		1		] };
384c067fea9Sghen    key <AD02>	{ [	w,		W,		2,		2		] };
385c067fea9Sghen    key <AD03>	{ [	e,		E,		3,		3		] };
386c067fea9Sghen    key <AD04>	{ [	r,		R,		4,		4		] };
387c067fea9Sghen    key <AD05>	{ [	t,		T,		5,		5		] };
388c067fea9Sghen    key <AD06>	{ [	y,		Y,		6,		6		] };
389c067fea9Sghen    key <AD07>	{ [	u,		U,		7,		7		] };
390c067fea9Sghen    key <AD08>	{ [	i,		I,		8,		8		] };
391c067fea9Sghen    key <AD09>	{ [	o,		O,		9,		9		] };
392c067fea9Sghen    key <AD10>	{ [	p,		P,		0,		0		] };
393c067fea9Sghen    key <AB08>	{ [	comma,		semicolon,	equal,		equal		] };
394c067fea9Sghen
395c067fea9Sghen    // 2. row
396c067fea9Sghen    key <AC01>	{ [	a,		A,		asterisk,	asterisk	] };
397c067fea9Sghen    key <AC02>	{ [	s,		S,		plus,		plus		] };
398c067fea9Sghen    key <AC03>	{ [	d,		D,		numbersign,	numbersign	] };
399c067fea9Sghen    key <AC04>	{ [	f,		F,		minus,		minus		] };
400c067fea9Sghen    key <AC05>	{ [	g,		G,		underscore,	underscore	] };
401c067fea9Sghen    key <AC06>	{ [	h,		H,		parenleft,	parenleft	] };
402c067fea9Sghen    key <AC07>	{ [	j,		J,		parenright,	parenright	] };
403c067fea9Sghen    key <AC08>	{ [	k,		K,		ampersand,	ampersand	] };
404c067fea9Sghen    key <AC09>	{ [	l,		L,		exclam,		exclam		] };
405c067fea9Sghen    key <AB09>	{ [	period,		colon,		question,	question	] };
406c067fea9Sghen
407c067fea9Sghen    // 3. row
408c067fea9Sghen    key <AB01>	{ [	z,		Z,		sterling,	sterling	] };
409c067fea9Sghen    key <AB02>	{ [	x,		X,		dollar,		dollar		] };
410c067fea9Sghen    key <AB03>	{ [	c,		C,		EuroSign,	EuroSign	] };
411c067fea9Sghen    key <AB04>	{ [	v,		V,		slash,		slash		] };
412c067fea9Sghen    key <AB05>	{ [	b,		B,		backslash,	backslash	] };
413c067fea9Sghen    key <AB06>	{ [	n,		N,		quotedbl,	quotedbl	] };
414c067fea9Sghen    key <AB07>	{ [	m,		M,		apostrophe,	apostrophe	] };
415c067fea9Sghen    key <SPCE>	{ [	space,		space,		at,		at		] };
416c067fea9Sghen};
417c067fea9Sghen
418c067fea9Sghenpartial hidden alphanumeric_keys
419c067fea9Sghenxkb_symbols "common_keys" {
420c067fea9Sghen    // all other common keys
421c067fea9Sghen
422c067fea9Sghen    key <BKSP>	{ [	BackSpace	] };
423c067fea9Sghen    key <TAB>	{ [	Tab		] };
424c067fea9Sghen
425c067fea9Sghen    // broken UI spec.
426c067fea9Sghen    key <RTRN>	{ [	KP_Enter	] };
427c067fea9Sghen
428c067fea9Sghen    key <KPEN>	{ [	Return		] };
429c067fea9Sghen    key <ESC>	{ [	Escape		] };
430c067fea9Sghen
431c067fea9Sghen    key <FK01>	{ [	F1	] };
432c067fea9Sghen    key <FK02>	{ [	F2	] };
433c067fea9Sghen    key <FK03>	{ [	F3	] };
434c067fea9Sghen    key <FK04>	{ [	F4	] };
435c067fea9Sghen    key <FK05>	{ [	F5	] };
436c067fea9Sghen    key <FK06>	{ [	F6	] };
437c067fea9Sghen
438c067fea9Sghen    // Swap +/- keys intentionally. The VOL+/VOL- keys are located physically
439c067fea9Sghen    // on left/right and up/down in landscape/portrait orientation. This does
440c067fea9Sghen    // not feel natural for the user and therefore we want the VOL+/VOL- keys
441c067fea9Sghen    // map to -/+.
442c067fea9Sghen    //
443c067fea9Sghen    // The only exception is an active call in portrait mode where we want to
444c067fea9Sghen    // use the real meanings of the keys. This special case and management of
445c067fea9Sghen    // +/- keys in general is handled in maemo-statusmenu-volume.
446c067fea9Sghen    key <FK07>	{ [	F8	] };
447c067fea9Sghen    key <FK08>	{ [	F7	] };
448c067fea9Sghen
449c067fea9Sghen    key <FK09>	{ [	F9	] };
450c067fea9Sghen    key <FK10>	{ [	F10	] };
451c067fea9Sghen    key <FK11>	{ [	F11	] };
452c067fea9Sghen};
453c067fea9Sghen
454c067fea9Sghenpartial hidden alphanumeric_keys modifier_keys
455c067fea9Sghenxkb_symbols "modifiers" {
456c067fea9Sghen    // Shift switches between current level and level+1
457c067fea9Sghen    key <LFSH>	{
458c067fea9Sghen	type[Group1] = "ONE_LEVEL",
459c067fea9Sghen	symbols[Group1] = [	Shift_L	]
460c067fea9Sghen    };
461c067fea9Sghen    modifier_map Shift { Shift_L };
462c067fea9Sghen
463c067fea9Sghen    // Fn+Ctrl virtual symbol table (Multi_key)
464c067fea9Sghen    // Ctrl+Space switches between 1st and 5th level (hardcoded in hildon)
465c067fea9Sghen    key <LCTL>	{
466c067fea9Sghen	type[Group1] = "FOUR_LEVEL",
467c067fea9Sghen	symbols[Group1] = [	Control_L,	Control_L,	Multi_key,	Multi_key	]
468c067fea9Sghen    };
469c067fea9Sghen    modifier_map Control { Control_L };
470c067fea9Sghen
471c067fea9Sghen    // Fn key (right alt) switches to 3rd level
472c067fea9Sghen    include "level3(ralt_switch)"
473c067fea9Sghen};
474c067fea9Sghen
475c067fea9Sghenpartial hidden alphanumeric_keys
476c067fea9Sghenxkb_symbols "arrows_2btns" {
477c067fea9Sghen    // rx-51 specific arrows mapping
478c067fea9Sghen    // normal 2nd level must not be enumerated to allow text selection with Shift key
479c067fea9Sghen    key <DOWN>	{ type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [	Left,	Up	] };
480c067fea9Sghen    key <RGHT>	{ type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [	Right,	Down	] };
481c067fea9Sghen};
482c067fea9Sghen
483c067fea9Sghenpartial hidden alphanumeric_keys
484c067fea9Sghenxkb_symbols "arrows_4btns" {
485c067fea9Sghen    // standard arrows mapping
486c067fea9Sghen    // normal 2nd level must not be enumerated to allow text selection with Shift key
487c067fea9Sghen    key <UP>	{ type[Group1] = "ONE_LEVEL", symbols[Group1] = [	Up	] };
488c067fea9Sghen    key <LEFT>	{ type[Group1] = "ONE_LEVEL", symbols[Group1] = [	Left	] };
489c067fea9Sghen    key <DOWN>	{ type[Group1] = "ONE_LEVEL", symbols[Group1] = [	Down	] };
490c067fea9Sghen    key <RGHT>	{ type[Group1] = "ONE_LEVEL", symbols[Group1] = [	Right	] };
491c067fea9Sghen};
492