1// Vietnamese keyboard layout, somehow based on TCVN 5712:1993.
2// Originally by Le Hong Boi <le.hong.boi@bigfoot.com>
3// August 1999
4// Further modified by Ashley Clark <aclark@debian.org>
5// July 2000 for X 4.0
6// Changed accents into combining marks by Samuel Thibault <samuel.thibault@ens-lyon.org>
7// July 2009
8
9default partial alphanumeric_keys
10xkb_symbols "basic" {
11
12    include "us"
13
14    name[Group1]= "Vietnamese";
15
16    key <TLDE> { [	   grave, 	asciitilde	] };
17    key <AE01> { [	   abreve,	Abreve		] };
18    key <AE02> { [	   acircumflex,  Acircumflex	] };
19    key <AE03> { [	   ecircumflex,	Ecircumflex	] };
20    key <AE04> { [	   ocircumflex,	Ocircumflex	] };
21    key <AE05> { [	   0x1000300,	percent,	dead_grave,	percent		] };
22    key <AE06> { [	   0x1000309,	asciicircum,	dead_hook,	asciicircum	] };
23    key <AE07> { [	   0x1000303,	ampersand,	dead_tilde,	ampersand	] };
24    key <AE08> { [	   0x1000301,	asterisk,	dead_acute,	asterisk	] };
25    key <AE09> { [	   0x1000323,	parenleft,	dead_belowdot,	parenleft	] };
26    key <AE10> { [	   dstroke,	Dstroke		] };
27    key <AE11> { [     minus, underscore  ]	};
28    key <AE12> { [     DongSign, plus ]	};
29
30    key <AD11> { [ uhorn,	Uhorn	] };
31    key <AD12> { [ ohorn,	Ohorn	] };
32
33    include "level3(ralt_switch)"
34};
35
36
37// US keyboard made Vietnamese
38//
39// Copyright (C) 2018, Florent Gallaire Phong <f@gallai.re>
40
41partial alphanumeric_keys
42xkb_symbols "us" {
43
44    include "us(basic)"
45    name[Group1]= "Vietnamese (US)";
46
47    key <TLDE> { [dead_grave, dead_tilde,              grave,          asciitilde ] };
48    key <AE04> { [         4,     dollar,           DongSign,            currency ] }; // ₫ ¤
49
50    key <AD03> { [         e,          E,        ecircumflex,         Ecircumflex ] }; // ê Ê
51    key <AD07> { [         u,          U,              uhorn,               Uhorn ] }; // ư Ư
52    key <AD09> { [         o,          O,        ocircumflex,         Ocircumflex ] }; // ô Ô
53    key <AD10> { [         p,          P,              ohorn,               Ohorn ] }; // ơ Ơ
54
55    key <AC01> { [         a,          A,        acircumflex,         Acircumflex ] }; // â Â
56    key <AC02> { [         s,          S,             abreve,              Abreve ] }; // ă Ă
57    key <AC03> { [         d,          D,            dstroke,             Dstroke ] }; // đ Đ
58    key <AC11> { [dead_acute,   quotedbl,         apostrophe ] };
59
60    key <AB09> { [dead_belowdot, greater,             period ] };
61    key <AB10> { [ dead_hook,   question,              slash ] };
62
63    include "level3(ralt_switch)"
64    include "eurosign(5)"
65};
66
67// French keyboard made Vietnamese
68//
69// Copyright (C) 2018, Florent Gallaire Phong <f@gallai.re>
70
71partial alphanumeric_keys
72xkb_symbols "fr" {
73
74    include "fr(basic)"
75
76    name[Group1]="Vietnamese (French)";
77
78    key <AE02> { [dead_tilde,          2,             eacute,          asciitilde ] };
79    key <AE04> { [dead_acute,          4,         apostrophe,           braceleft ] };
80    key <AE07> { [dead_grave,          7,             egrave,               grave ] };
81
82    key <AD01> { [         a,          A,             abreve,              Abreve ] }; // ă Ă
83    key <AD07> { [         u,          U,              uhorn,               Uhorn ] }; // ư Ư
84    key <AD09> { [         o,          O,              ohorn,               Ohorn ] }; // ơ Ơ
85    key <AD12> { [    dollar,   sterling,           DongSign,            currency ] }; // ₫ ¤
86
87    key <AC03> { [         d,          D,            dstroke,             Dstroke ] }; // đ Đ
88
89    key <AB07> { [ dead_hook,   question,          comma ] };
90    key <AB08> { [dead_belowdot,  period,      semicolon ] };
91};
92
93
94// EXTRAS:
95
96// Vietnamese AÐERTY (60s typewriters adaptation)
97//
98// Copyright (C) 2018, Florent Gallaire Phong <f@gallai.re>
99
100partial alphanumeric_keys
101xkb_symbols "aderty" {
102
103    include "fr(basic)"
104
105    name[Group1]="Vietnamese (AÐERTY)";
106
107    key <AE02> { [dead_tilde,          2,             eacute,          asciitilde ] };
108    key <AE04> { [dead_acute,          4,         apostrophe,           braceleft ] };
109    key <AE07> { [dead_grave,          7,             egrave,               grave ] };
110
111    key <AD02> { [   dstroke,    Dstroke,                  z,                   Z ] }; // đ Đ
112    key <AD12> { [    dollar,   sterling,           DongSign,            currency ] }; // ₫ ¤
113
114    key <AC04> { [     uhorn,      Uhorn,                  f,                   F ] }; // ư Ư
115    key <AC07> { [     ohorn,      Ohorn,                  j,                   J ] }; // ơ Ơ
116
117    key <AB01> { [    abreve,     Abreve,                  w,                   W ] }; // ă Ă
118    key <AB07> { [ dead_hook,   question,          comma ] };
119    key <AB08> { [dead_belowdot,  period,      semicolon ] };
120};
121
122// Vietnamese QĐERTY (AĐERTY qwertification)
123//
124// Copyright (C) 2018, Florent Gallaire Phong <f@gallai.re>
125
126partial alphanumeric_keys
127xkb_symbols "qderty" {
128
129    include "us(basic)"
130    name[Group1]= "Vietnamese (QĐERTY)";
131
132    key <TLDE> { [dead_grave, dead_tilde,              grave,          asciitilde ] };
133    key <AE04> { [         4,     dollar,           DongSign,            currency ] }; // ₫ ¤
134
135    key <AD02> { [   dstroke,    Dstroke,                  w,                   W ] }; // đ Đ
136    key <AD03> { [         e,          E,        ecircumflex,         Ecircumflex ] }; // ê Ê
137    key <AD09> { [         o,          O,        ocircumflex,         Ocircumflex ] }; // ô Ô
138
139    key <AC01> { [         a,          A,        acircumflex,         Acircumflex ] }; // â Â
140    key <AC04> { [     uhorn,      Uhorn,                  f,                   F ] }; // ư Ư
141    key <AC07> { [     ohorn,      Ohorn,                  j,                   J ] }; // ơ Ơ
142    key <AC11> { [dead_acute,   quotedbl,         apostrophe ] };
143
144    key <AB01> { [    abreve,     Abreve,                  z,                   Z ] }; // ă Ă
145    key <AB09> { [dead_belowdot, greater,             period ] };
146    key <AB10> { [ dead_hook,   question,              slash ] };
147
148    include "level3(ralt_switch)"
149    include "eurosign(5)"
150};
151