/usr/share/X11/xkb/symbols
Edit: /usr/share/X11/xkb/symbols/vn (6035B)
// based on:
// vn, TCVN 5712:1993
// Le Hong Boi
// August 1999
// Further modified by Ashley Clark
// July 2000 for X 4.0
// Fix accents into combining marks by Samuel Thibault
// July 2009
default partial alphanumeric_keys
xkb_symbols "basic" {
include "us"
name[Group1]= "Vietnamese";
key { [ grave, asciitilde ] };
key { [ abreve, Abreve ] };
key { [ acircumflex, Acircumflex ] };
key { [ ecircumflex, Ecircumflex ] };
key { [ ocircumflex, Ocircumflex ] };
key { [ 0x1000300, percent, dead_grave, percent ] };
key { [ 0x1000309, asciicircum, dead_hook, asciicircum ] };
key { [ 0x1000303, ampersand, dead_tilde, ampersand ] };
key { [ 0x1000301, asterisk, dead_acute, asterisk ] };
key { [ 0x1000323, parenleft, dead_belowdot, parenleft ] };
key { [ dstroke, Dstroke ] };
key { [ minus, underscore ] };
key { [ DongSign, plus ] };
key { [ uhorn, Uhorn ] };
key { [ ohorn, Ohorn ] };
include "level3(ralt_switch)"
};
// US keyboard made Vietnamese
//
// Copyright (C) 2018, Florent Gallaire Phong
partial alphanumeric_keys
xkb_symbols "us" {
include "us(euro)"
name[Group1]= "Vietnamese (US, with Vietnamese letters)";
key { [dead_grave, dead_tilde, grave, asciitilde ] };
key { [ 4, dollar, DongSign, currency ] }; // ₫ ¤
key { [ e, E, ecircumflex, Ecircumflex ] }; // ê Ê
key { [ u, U, uhorn, Uhorn ] }; // ư Ư
key { [ o, O, ocircumflex, Ocircumflex ] }; // ô Ô
key { [ p, P, ohorn, Ohorn ] }; // ơ Ơ
key { [ a, A, acircumflex, Acircumflex ] }; // â Â
key { [ s, S, abreve, Abreve ] }; // ă Ă
key { [ d, D, dstroke, Dstroke ] }; // đ Đ
key { [dead_acute, quotedbl, apostrophe ] };
key { [dead_belowdot, greater, period ] };
key { [ dead_hook, question, slash ] };
};
// French keyboard made Vietnamese
//
// Copyright (C) 2018, Florent Gallaire Phong
partial alphanumeric_keys
xkb_symbols "fr" {
include "fr(basic)"
name[Group1]="Vietnamese (French, with Vietnamese letters)";
key { [dead_tilde, 2, eacute, asciitilde ] };
key { [dead_acute, 4, apostrophe, braceleft ] };
key { [dead_grave, 7, egrave, grave ] };
key { [ a, A, abreve, Abreve ] }; // ă Ă
key { [ u, U, uhorn, Uhorn ] }; // ư Ư
key { [ o, O, ohorn, Ohorn ] }; // ơ Ơ
key { [ dollar, sterling, DongSign, currency ] }; // ₫ ¤
key { [ d, D, dstroke, Dstroke ] }; // đ Đ
key { [ dead_hook, question, comma ] };
key { [dead_belowdot, period, semicolon ] };
};
// EXTRAS:
// Vietnamese AÐERTY (60s typewriters adaptation)
//
// Copyright (C) 2018, Florent Gallaire Phong
partial alphanumeric_keys
xkb_symbols "aderty" {
include "fr(basic)"
name[Group1]="Vietnamese (AÐERTY)";
key { [dead_tilde, 2, eacute, asciitilde ] };
key { [dead_acute, 4, apostrophe, braceleft ] };
key { [dead_grave, 7, egrave, grave ] };
key { [ dstroke, Dstroke, z, Z ] }; // đ Đ
key { [ dollar, sterling, DongSign, currency ] }; // ₫ ¤
key { [ uhorn, Uhorn, f, F ] }; // ư Ư
key { [ ohorn, Ohorn, j, J ] }; // ơ Ơ
key { [ abreve, Abreve, w, W ] }; // ă Ă
key { [ dead_hook, question, comma ] };
key { [dead_belowdot, period, semicolon ] };
};
// Vietnamese QĐERTY (AĐERTY qwertification)
//
// Copyright (C) 2018, Florent Gallaire Phong
partial alphanumeric_keys
xkb_symbols "qderty" {
include "us(euro)"
name[Group1]= "Vietnamese (QĐERTY)";
key { [dead_grave, dead_tilde, grave, asciitilde ] };
key { [ 4, dollar, DongSign, currency ] }; // ₫ ¤
key { [ dstroke, Dstroke, w, W ] }; // đ Đ
key { [ e, E, ecircumflex, Ecircumflex ] }; // ê Ê
key { [ o, O, ocircumflex, Ocircumflex ] }; // ô Ô
key { [ a, A, acircumflex, Acircumflex ] }; // â Â
key { [ uhorn, Uhorn, f, F ] }; // ư Ư
key { [ ohorn, Ohorn, j, J ] }; // ơ Ơ
key { [dead_acute, quotedbl, apostrophe ] };
key { [ abreve, Abreve, z, Z ] }; // ă Ă
key { [dead_belowdot, greater, period ] };
key { [ dead_hook, question, slash ] };
};