1//
2// Complete set of Romanian keyboards as described in the new Romanian standard
3// SR 13392:2004 adopted in December 2004 by ASRO, "Asociatia de Standardizare 
4// din Romania".
5// 
6// The default mapping is the Programmers layout (also known as RO_US) because
7// of the lack of Romanian hardware keyboards. The primary standard layout is
8// implemented as the "std" variant.
9//
10// Diacritics with cedillas, as in ISO-8859-2, are no longer supported. This
11// error has been corrected in ISO-889-16 through using commabelow accents.
12// Pre-Vista MS compatible layout ("winkeys" variant) generates commabelow
13// accents too now.
14// 
15// Created by Cristian Gafton, <gafton@redhat.com> (C) 2000
16// Modified by Marius Andreiana, <mandreiana@yahoo.com> (C) 2001
17// Completed by Dumitru Moldovan, <dumol@gnome.org> (C) 2001, 2004-2008, 2020
18
19
20default partial alphanumeric_keys
21xkb_symbols "basic" {
22// This RO_US/Programmers layout, although the secondary layout in the 
23// Romanian standard, has always been the "de facto" standard in the 
24// Linux/Unix world. It is implemented here as the default layout and it's
25// fully compatible with an US keyboard (Euro on AltGr+5 does not count).
26
27    include "us"
28
29    name[Group1]="Romanian";
30
31    key <AE01> { [            1,      exclam,       dead_tilde              ] };
32    key <AE02> { [            2,          at,       dead_caron              ] };
33    key <AE03> { [            3,  numbersign,  dead_circumflex              ] };
34    key <AE04> { [            4,      dollar,       dead_breve              ] };
35    key <AE05> { [            5,     percent,   dead_abovering              ] };
36    key <AE06> { [            6, asciicircum,      dead_ogonek              ] };
37    key <AE07> { [            7,   ampersand,       dead_grave              ] };
38    key <AE08> { [            8,    asterisk,    dead_abovedot              ] };
39    key <AE09> { [            9,   parenleft,       dead_acute              ] };
40    key <AE10> { [            0,  parenright, dead_doubleacute              ] };
41    key <AE11> { [        minus,  underscore,   dead_diaeresis,      endash ] };
42    key <AE12> { [        equal,        plus,     dead_cedilla,   plusminus ] };
43    key <AD01> { [            q,           Q,      acircumflex, Acircumflex ] };
44    key <AD02> { [            w,           W,           ssharp,       U1e9e ] };
45    key <AD03> { [            e,           E,         EuroSign              ] };
46    key <AD05> { [            t,           T,            U021b,       U021a ] };
47    key <AD08> { [            i,           I,      icircumflex, Icircumflex ] };
48    key <AD10> { [            p,           P,          section              ] };
49    key <AD11> { [  bracketleft,   braceleft, doublelowquotemark            ] };
50    key <AD12> { [ bracketright,  braceright, rightdoublequotemark          ] };
51    key <AC01> { [            a,           A,           abreve,      Abreve ] };
52    key <AC02> { [            s,           S,            U0219,       U0218 ] };
53    key <AC03> { [            d,           D,          dstroke,     Dstroke ] };
54    key <AC09> { [            l,           L,          lstroke,     Lstroke ] };
55    key <LSGT> { [    backslash,         bar                                ] };
56    key <AB03> { [            c,           C,        copyright              ] };
57    key <AB08> { [        comma,        less,    guillemotleft              ] };
58    key <AB09> { [       period,     greater,   guillemotright              ] };
59
60    key <KPDL> { [    KP_Delete,  KP_Decimal,    KP_Separator, KP_Separator ] };
61
62    include "level3(ralt_switch)"
63};
64
65
66partial alphanumeric_keys
67xkb_symbols "std" {
68    // Primary layout in the new Romanian standard.
69    // Implemented here as a variant because of the lack of hardware 
70    // Romanian keyboards and because of the predilection of Romanian
71    // X users towards the secondary layout from the new standard.
72
73    include "us"
74
75    name[Group1]="Romanian (standard)";
76
77    key <TLDE> { [ doublelowquotemark, rightdoublequotemark, grave, asciitilde ] };
78    key <AE01> { [            1,      exclam,       dead_tilde              ] };
79    key <AE02> { [            2,          at,       dead_caron              ] };
80    key <AE03> { [            3,  numbersign,  dead_circumflex              ] };
81    key <AE04> { [            4,      dollar,       dead_breve              ] };
82    key <AE05> { [            5,     percent,   dead_abovering              ] };
83    key <AE06> { [            6, asciicircum,      dead_ogonek              ] };
84    key <AE07> { [            7,   ampersand,       dead_grave              ] };
85    key <AE08> { [            8,    asterisk,    dead_abovedot              ] };
86    key <AE09> { [            9,   parenleft,       dead_acute              ] };
87    key <AE10> { [            0,  parenright, dead_doubleacute              ] };
88    key <AE11> { [        minus,  underscore,   dead_diaeresis,      endash ] };
89    key <AE12> { [        equal,        plus,     dead_cedilla,   plusminus ] };
90    key <AD03> { [            e,           E,         EuroSign              ] };
91    key <AD10> { [            p,           P,          section              ] };
92    key <AD11> { [       abreve,      Abreve,      bracketleft,   braceleft ] };
93    key <AD12> { [  icircumflex, Icircumflex,     bracketright,  braceright ] };
94    key <BKSL> { [  acircumflex, Acircumflex,        backslash,         bar ] };
95    key <AC02> { [            s,           S,           ssharp,       U1e9e ] };
96    key <AC03> { [            d,           D,          dstroke,     Dstroke ] };
97    key <AC09> { [            l,           L,          lstroke,     Lstroke ] };
98    key <AC10> { [        U0219,       U0218,        semicolon,       colon ] };
99    key <AC11> { [        U021b,       U021a,       apostrophe,    quotedbl ] };
100    key <LSGT> { [    backslash,         bar                                ] };
101    key <AB03> { [            c,           C,        copyright              ] };
102    key <AB08> { [        comma,   semicolon,           less, guillemotleft ] };
103    key <AB09> { [       period,       colon,       greater, guillemotright ] };
104
105    key <KPDL> { [    KP_Delete, KP_Separator,      KP_Decimal,  KP_Decimal ] };
106
107    include "level3(ralt_switch)"
108};
109
110
111partial alphanumeric_keys
112xkb_symbols "winkeys" {
113    // Romanian (Legacy) QWERTZ keyboard layout, as available on Windows 10,
114    // but with the correct commabelow accents and the Euro sign on AltGr+e.
115    // Some Romanian hardware keyboards are still built like this.
116    // Older Romanian hardware keyboards might be slightly different.
117    // Created by Manfred Pohler, <Manfred.Pohler@t-online.de> (C) 2003
118    // Updated by Dumitru Moldovan, <dumol@gnome.org> (C) 2020
119
120    include "us"
121
122    name[Group1]="Romanian (Windows)";
123
124    key <TLDE> { [ bracketright, bracketleft                                ] };
125    key <AE01> { [            1,      exclam,       asciitilde              ] };
126    key <AE02> { [            2,    quotedbl,       dead_caron              ] };
127    key <AE03> { [            3,  numbersign,  dead_circumflex              ] };
128    key <AE04> { [            4,    currency,       dead_breve              ] };
129    key <AE05> { [            5,     percent,   dead_abovering              ] };
130    key <AE06> { [            6,   ampersand,      dead_ogonek              ] };
131    key <AE07> { [            7,       slash,       dead_grave              ] };
132    key <AE08> { [            8,   parenleft,    dead_abovedot              ] };
133    key <AE09> { [            9,  parenright,       dead_acute              ] };
134    key <AE10> { [            0,       equal, dead_doubleacute              ] };
135    key <AE11> { [         plus,    question,   dead_diaeresis              ] };
136    key <AE12> { [   apostrophe,    asterisk,     dead_cedilla              ] };
137    key <AD01> { [            q,           Q,        backslash              ] };
138    key <AD02> { [            w,           W,              bar              ] };
139    key <AD03> { [            e,           E,         EuroSign              ] };
140    key <AD06> { [            z,           Z                                ] };
141    key <AD11> { [       abreve,      Abreve,         division              ] };
142    key <AD12> { [  icircumflex, Icircumflex,         multiply              ] };
143    key <AC02> { [            s,           S,          dstroke              ] };
144    key <AC03> { [            d,           D,          Dstroke              ] };
145    key <AC08> { [            k,           K,          lstroke              ] };
146    key <AC09> { [            l,           L,          Lstroke              ] };
147    key <AC10> { [        U0219,       U0218,           dollar              ] };
148    key <AC11> { [        U021b,       U021a,           ssharp              ] };
149    key <BKSL> { [  acircumflex, Acircumflex                                ] };
150    key <LSGT> { [         less,     greater                                ] };
151    key <AB01> { [            y,           Y                                ] };
152    key <AB04> { [            v,           V,               at              ] };
153    key <AB05> { [            b,           B,        braceleft              ] };
154    key <AB06> { [            n,           N,       braceright              ] };
155    key <AB07> { [            m,           M,          section              ] };
156    key <AB08> { [        comma,   semicolon,             less              ] };
157    key <AB09> { [       period,       colon,          greater              ] };
158    key <AB10> { [        minus,  underscore                                ] };
159
160    key <KPDL> { [    KP_Delete, KP_Separator,      KP_Decimal,  KP_Decimal ] };
161
162    include "level3(ralt_switch)"
163};
164
165
166// EXTRAS:
167
168
169partial
170xkb_symbols "crh_dobruja" {
171    // Romania-specific Crimean Tatar (Crimean Turkish) Q layout.
172    // This layout is not yet standard. Common Alt-Q and F layouts are now also 
173    // available right next to this layout in the new language-centric UI.
174    // Reşat SABIQ <tilde.birlik @ gmail . com>, 2009, 2011
175    // Özgür Qarahan <qarahan @ gmail . com>, 2009
176
177    include "ua(crh)"
178
179    name[Group1]="Crimean Tatar (Dobruja Q)";
180
181    key <AD02> { [            w,           W,           abreve,       Abreve ] };
182    key <AD05> { [            t,           T,            U021b,        U021a ] };
183    key <AD10> { [            p,           P,          section               ] };
184    key <AC02> { [            s,           S,            U0219,        U0218 ] };
185    key <AC07> { [       ibreve,      Ibreve,                j,            J ] };
186    key <AB07> { [            m,           M,        trademark,    masculine ] };
187};
188
189
190partial alphanumeric_keys
191xkb_symbols "ergonomic" {
192    // This layout is optimized for fast touch-typing in Romanian on a
193    // US keyboard, and works by swapping out symbols infrequently used
194    // in written Romanian (q,w,y,k) in favor of native ones, thus reducing
195    // the need to use modifier keys.
196    // Created by Gabriel Somlo, <somlo@cmu.edu> (C) 2011
197
198    include "ro(basic)"
199
200    name[Group1]="Romanian (ergonomic Touchtype)";
201
202    key <AD01> { [       abreve,      Abreve,                q,           Q ] };
203    key <AD02> { [        U0219,       U0218,                w,           W ] };
204    key <AD06> { [        U021b,       U021a,                y,           Y ] };
205    key <AC01> { [            a,           A,      acircumflex, Acircumflex ] };
206    key <AC08> { [  icircumflex, Icircumflex,                k,           K ] };
207};
208
209
210partial alphanumeric_keys
211xkb_symbols "sun_type6" {
212    include "sun_vndr/ro(sun_type6)"
213};
214