diff --git a/README.md b/README.md
index 95fef4e..6c41781 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,32 @@
-# eng_rus_keyboard_mapping
\ No newline at end of file
+# English - Russian keyboard mapping
+
+This is my custom mapping for russian alphabet in my english keyboard in Ubuntu.
+I did this to avoid buying keyboard stickers for the usual Russian keyboard layout while I was learning Russian language.
+
+
+## How to install
+
+_Ubuntu 20.04.4 LTS_
+
+1) Copy the file `rc` to the directory `/usr/share/X11/xkb/symbols`
+2) Edit the file `/usr/share/X11/xkb/rules/evdev.xml:
+ 1) Find the section layoutlist.
+ 2) Add the following:
+ ```xml
+
+
+ rc
+ rc
+ RussianCustom
+
+ cod
+
+
+
+
+
+ ```
+
+## Mapping
+
+
diff --git a/mapping.png b/mapping.png
new file mode 100644
index 0000000..8b2a956
Binary files /dev/null and b/mapping.png differ
diff --git a/rc b/rc
new file mode 100644
index 0000000..461a7c9
--- /dev/null
+++ b/rc
@@ -0,0 +1,1981 @@
+// Keyboard layouts for Russia.
+// AEN
+// 2001/12/23 by Leon Kanter
+// 2005/12/09 Valery Inozemtsev
+// 2018/07/15 @a13 (a.k.a. @dbvvmpg) and Stepanenko Andrey
+// 2022/04/01 Nicolas Novalic
+
+// Windows layout
+default partial alphanumeric_keys
+xkb_symbols "winkeys" {
+
+ include "ru(common)"
+ name[Group1]= "RussianCustom";
+
+ key { [ comma, period ] };
+ key { [ 1, exclam ] };
+ key { [ 2, at ] };
+ key { [ 3, numbersign ] };
+ key { [ 4, dollar ] };
+ key { [ 5, percent ] };
+ key { [ 6, asciicircum ] };
+ key { [ 7, ampersand ] };
+ key { [ 8, asterisk ] };
+ key { [ 9, parenleft ] };
+ key { [ 0, parenright ] };
+ key { [ apostrophe, quotedbl ] };
+ key { [ equal, question ] };
+
+ key { [ Cyrillic_io, Cyrillic_IO ] };
+ key { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key { [ Cyrillic_ie, Cyrillic_IE ] };
+ key { [ Cyrillic_er, Cyrillic_ER ] };
+ key { [ Cyrillic_te, Cyrillic_TE ] };
+ key { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key { [ Cyrillic_u, Cyrillic_U ] };
+ key { [ Cyrillic_i, Cyrillic_I ] };
+ key { [ Cyrillic_o, Cyrillic_O ] };
+ key { [ Cyrillic_pe, Cyrillic_PE ] };
+ key { [ Cyrillic_che, Cyrillic_CHE ] };
+ key { [ Cyrillic_sha, Cyrillic_SHA ] };
+
+ key { [ Cyrillic_a, Cyrillic_A ] };
+ key { [ Cyrillic_es, Cyrillic_ES ] };
+ key { [ Cyrillic_de, Cyrillic_DE ] };
+ key { [ Cyrillic_ef, Cyrillic_EF ] };
+ key { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key { [ Cyrillic_en, Cyrillic_EN ] };
+ key { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
+ key { [ Cyrillic_ka, Cyrillic_KA ] };
+ key { [ Cyrillic_el, Cyrillic_EL ] };
+ key { [ Cyrillic_ya, Cyrillic_YA ] };
+ key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+
+ key { [ Cyrillic_ze, Cyrillic_ZE ] };
+ key { [ Cyrillic_ha, Cyrillic_HA ] };
+ key { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key { [ Cyrillic_ve, Cyrillic_VE ] };
+ key { [ Cyrillic_be, Cyrillic_BE ] };
+ key { [ Cyrillic_en, Cyrillic_EN ] };
+ key { [ Cyrillic_em, Cyrillic_EM ] };
+ key { [ Cyrillic_yu, Cyrillic_YU ] };
+ key { [ Cyrillic_e, Cyrillic_E ] };
+ key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+
+ key { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "euro" {
+
+ include "us(basic)"
+ name[Group1]= "English (US, euro on 5)";
+
+ include "eurosign(5)"
+
+ include "level3(ralt_switch)"
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "ibm238l" {
+
+ include "us(basic)"
+ name[Group1]= "English (US, IBM Arabic 238_L)";
+
+ key { [ comma, comma ] };
+ key { [ period, period ] };
+ key { [ quoteleft, asciitilde ] };
+ key { [ backslash, bar ] };
+ key { [ leftcaret, rightcaret ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "intl" {
+
+ include "us(basic)"
+ name[Group1]= "English (US, intl., with dead keys)";
+
+ key { [dead_grave, dead_tilde, grave, asciitilde ] };
+ key { [ 1, exclam, exclamdown, onesuperior ] };
+ key { [ 2, at, twosuperior, dead_doubleacute ] };
+ key { [ 3, numbersign, threesuperior, dead_macron ] };
+ key { [ 4, dollar, currency, sterling ] };
+ key { [ 5, percent, EuroSign, dead_cedilla ] };
+ key { [ 6, dead_circumflex, onequarter, asciicircum ] };
+ key { [ 7, ampersand, onehalf, dead_horn ] };
+ key { [ 8, asterisk, threequarters, dead_ogonek ] };
+ key { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
+ key { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
+ key { [ minus, underscore, yen, dead_belowdot ] };
+ key { [ equal, plus, multiply, division ] };
+
+ key { [ q, Q, adiaeresis, Adiaeresis ] };
+ key { [ w, W, aring, Aring ] };
+ key { [ e, E, eacute, Eacute ] };
+ key { [ r, R, registered, registered ] };
+ key { [ t, T, thorn, THORN ] };
+ key { [ y, Y, udiaeresis, Udiaeresis ] };
+ key { [ u, U, uacute, Uacute ] };
+ key { [ i, I, iacute, Iacute ] };
+ key { [ o, O, oacute, Oacute ] };
+ key { [ p, P, odiaeresis, Odiaeresis ] };
+ key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
+ key { [bracketright, braceright, guillemotright, rightdoublequotemark ] };
+
+ key { [ a, A, aacute, Aacute ] };
+ key { [ s, S, ssharp, section ] };
+ key { [ d, D, eth, ETH ] };
+ key { [ f, F, f, F ] };
+ key { [ g, G, g, G ] };
+ key { [ h, H, h, H ] };
+ key { [ j, J, j, J ] };
+ key { [ k, K, oe, OE ] };
+
+ key { [ l, L, oslash, Ooblique ] };
+ key { [ semicolon, colon, paragraph, degree ] };
+ key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
+
+ key { [ z, Z, ae, AE ] };
+ key { [ x, X, x, X ] };
+ key { [ c, C, copyright, cent ] };
+ key { [ v, V, v, V ] };
+ key { [ b, B, b, B ] };
+ key { [ n, N, ntilde, Ntilde ] };
+ key { [ m, M, mu, mu ] };
+ key { [ comma, less, ccedilla, Ccedilla ] };
+ key { [ period, greater, dead_abovedot, dead_caron ] };
+ key { [ slash, question, questiondown, dead_hook ] };
+ key { [ backslash, bar, notsign, brokenbar ] };
+
+ key { [ backslash, bar, backslash, bar ] };
+
+ include "level3(ralt_switch)"
+};
+
+// Based on symbols/us_intl keyboard map:
+// Dead-keys definition for a very simple US/ASCII layout.
+// by Conectiva (http://www.conectiva.com.br)
+// modified by Ricardo Y. Igarashi (iga@that.com.br)
+
+// Added the following deadkeys, to make it truly international:
+//
+// dead_macron: on AltGr-minus
+// dead_breve: on AltGr-parenleft
+// dead_abovedot: on AltGr-period
+// dead_abovering: on AltGr-0
+// dead_doubleacute: on AltGr-equal (as quotedbl is already used)
+// dead_caron: on AltGr-less (AltGr-shift-comma)
+// dead_cedilla: on AltGr-comma
+// dead_ogonek: on AltGr-semicolon
+// dead_belowdot: on AltGr-underscore (AltGr-shift-minus)
+// dead_hook: on AltGr-question
+// dead_horn: on AltGr-plus (AltGr-shift-equal)
+// dead_diaeresis: on AltGr-colon (Alt-shift-semicolon)
+//
+// those were already there:
+// dead_grave
+// dead_acute
+// dead_circumflex
+// dead_tilde
+// dead_diaeresis
+
+partial alphanumeric_keys
+xkb_symbols "alt-intl" {
+
+ include "us"
+ name[Group1]= "English (US, alt. intl.)";
+
+ key { [ dead_grave, dead_tilde, grave, asciitilde ] };
+ key { [ 5, percent, EuroSign ] };
+ key { [ 6, dead_circumflex, asciicircum, asciicircum ] };
+ key { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
+ key { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
+ key { [ minus, underscore, dead_macron, dead_belowdot ] };
+ key { [ equal, plus, dead_doubleacute, dead_horn ] };
+
+ key { [ e, E, EuroSign, cent ] };
+
+ key { [ semicolon, colon, dead_ogonek, dead_diaeresis ] };
+ key { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
+
+ key { [ comma, less, dead_cedilla, dead_caron ] };
+ key { [ period, greater, dead_abovedot, dead_circumflex ] };
+ key { [ slash, question, dead_hook, dead_hook ] };
+
+ key { [ backslash, bar, backslash, bar ] };
+
+ include "level3(ralt_switch)"
+};
+
+// based on a keyboard map from an 'xkb/symbols/dk' file
+
+partial alphanumeric_keys
+xkb_symbols "dvorak" {
+
+ name[Group1]= "English (Dvorak)";
+
+ key { [ grave, asciitilde, dead_grave, dead_tilde ] };
+
+ key { [ 1, exclam ] };
+ key { [ 2, at ] };
+ key { [ 3, numbersign ] };
+ key { [ 4, dollar ] };
+ key { [ 5, percent ] };
+ key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
+ key { [ 7, ampersand ] };
+ key { [ 8, asterisk ] };
+ key { [ 9, parenleft, dead_grave] };
+ key { [ 0, parenright ] };
+ key { [ bracketleft, braceleft ] };
+ key { [ bracketright, braceright, dead_tilde] };
+
+ key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
+ key { [ comma, less, dead_cedilla, dead_caron ] };
+ key { [ period, greater, dead_abovedot, periodcentered ] };
+ key { [ p, P ] };
+ key { [ y, Y ] };
+ key { [ f, F ] };
+ key { [ g, G ] };
+ key { [ c, C ] };
+ key { [ r, R ] };
+ key { [ l, L ] };
+ key { [ slash, question ] };
+ key { [ equal, plus ] };
+
+ key { [ a, A ] };
+ key { [ o, O ] };
+ key { [ e, E ] };
+ key { [ u, U ] };
+ key { [ i, I ] };
+ key { [ d, D ] };
+ key { [ h, H ] };
+ key { [ t, T ] };
+ key { [ n, N ] };
+ key { [ s, S ] };
+ key { [ minus, underscore ] };
+
+ key { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
+ key { [ q, Q ] };
+ key { [ j, J ] };
+ key { [ k, K ] };
+ key { [ x, X ] };
+ key { [ b, B ] };
+ key { [ m, M ] };
+ key { [ w, W ] };
+ key { [ v, V ] };
+ key { [ z, Z ] };
+
+ key { [ backslash, bar ] };
+};
+
+// Dvorak intl., with dead keys
+// Olivier Mehani (shtrom-xorg@ssji.net)
+// Reproduce the per-key mapping of us(intl) for the dvorak layout
+// aka "I just swapped my keys over"
+partial alphanumeric_keys
+xkb_symbols "dvorak-intl" {
+
+ include "us(dvorak)"
+ name[Group1]= "English (Dvorak, intl., with dead keys)";
+
+ key { [dead_grave, dead_tilde, grave, asciitilde ] };
+
+ key { [ 1, exclam, exclamdown, onesuperior ] };
+ key { [ 2, at, twosuperior, dead_doubleacute ] };
+ key { [ 3, numbersign, threesuperior, dead_macron ] };
+ key { [ 4, dollar, currency, sterling ] };
+ key { [ 5, percent, EuroSign, dead_cedilla ] };
+ key { [ 6, dead_circumflex, onequarter, asciicircum ] };
+ key { [ 7, ampersand, onehalf, dead_horn ] };
+ key { [ 8, asterisk, threequarters, dead_ogonek ] };
+ key { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
+ key { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
+ key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
+ key { [bracketright, braceright, guillemotright, rightdoublequotemark ] };
+
+ key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
+ key { [ comma, less, ccedilla, Ccedilla ] };
+ key { [ period, greater, dead_abovedot, dead_caron ] };
+ key { [ p, P, odiaeresis, Odiaeresis ] };
+ key { [ y, Y, udiaeresis, Udiaeresis ] };
+ // key { [ f, F ] };
+ // key { [ g, G ] };
+ key { [ c, C, copyright, cent ] };
+ key { [ r, R, registered, registered ] };
+ key { [ l, L, oslash, Ooblique ] };
+ key { [ slash, question, questiondown, dead_hook ] };
+ // key { [ equal, plus, multiply, division ] };
+
+ key { [ a, A, aacute, Aacute ] };
+ key { [ o, O, oacute, Oacute ] };
+ key { [ e, E, eacute, Eacute ] };
+ key { [ u, U, uacute, Uacute ] };
+ key { [ i, I, iacute, Iacute ] };
+ key { [ d, D, eth, ETH ] };
+ // key { [ h, H ] };
+ key { [ t, T, thorn, THORN ] };
+ key { [ n, N, ntilde, Ntilde ] };
+ key { [ s, S, ssharp, section ] };
+ // key { [ minus, underscore, yen, dead_belowdot ] };
+
+ key { [ semicolon, colon, paragraph, degree ] };
+ key { [ q, Q, adiaeresis, Adiaeresis ] };
+ // key { [ j, J ] };
+ key { [ k, K, oe, OE ] };
+ // key { [ x, X ] };
+ // key { [ b, B ] };
+ key { [ m, M, mu, mu ] };
+ key { [ w, W, aring, Aring ] };
+ // key { [ v, V ] };
+ key { [ z, Z, ae, AE ] };
+
+ key { [ backslash, bar, notsign, brokenbar ] };
+
+ include "level3(ralt_switch)"
+};
+
+// Dvorak international without dead keys
+// Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net)
+// Based on information from http://www.poupinou.org/dvorak/index.html
+//
+// ` 1 2 3 4 5 6 7 8 9 0 [ ] \
+// €
+//
+// ' , . p y f g c r l / =
+// ä ê ë ü ç
+//
+// a o e u i d h t n s -
+// à ô é û î ß
+//
+// ; q j k x b m w v z
+// â ö è ù ï
+
+partial alphanumeric_keys
+xkb_symbols "dvorak-alt-intl" {
+
+ include "us(dvorak)"
+ name[Group1]= "English (Dvorak, alt. intl.)";
+
+ key { [ 4, dollar, EuroSign ] };
+
+ key { [ comma, less, adiaeresis, dead_caron ] };
+ key { [ period, greater, ecircumflex, periodcentered ] };
+ key { [ p, P, ediaeresis, dead_cedilla ] };
+ key { [ y, Y, udiaeresis ] };
+ key { [ c, C, ccedilla, dead_abovedot ] };
+
+ key { [ a, A, agrave ] };
+ key { [ o, O, ocircumflex ] };
+ key { [ e, E, eacute ] };
+ key { [ u, U, ucircumflex ] };
+ key { [ i, I, icircumflex ] };
+ key { [ s, S, ssharp, U1E9E ] };
+
+ key { [ semicolon, colon, acircumflex ] };
+ key { [ q, Q, odiaeresis, dead_ogonek ] };
+ key { [ j, J, egrave, dead_doubleacute ] };
+ key { [ k, K, ugrave ] };
+ key { [ x, X, idiaeresis ] };
+
+ include "level3(ralt_switch)"
+};
+
+// Left and right handed dvorak layouts
+// by sqweek 2006-01-30
+// Based on the corresponding layouts in the console-tools package.
+partial alphanumeric_keys
+xkb_symbols "dvorak-l" {
+
+ include "us(dvorak)"
+ name[Group1]= "English (Dvorak, left-handed)";
+
+ key { [ bracketleft, braceleft ] };
+ key { [ bracketright, braceright ] };
+ key { [ slash, question ] };
+ key { [ p, P ] };
+ key { [ f, F ] };
+ key { [ m, M ] };
+ key { [ l, L ] };
+ key { [ j, J ] };
+ key { [ 4, dollar ] };
+ key { [ 3, numbersign ] };
+ key { [ 2, at ] };
+ key { [ 1, exclam ] };
+
+ key { [ semicolon, colon ] };
+ key { [ q, Q ] };
+ key { [ b, B ] };
+ key { [ y, Y ] };
+ key { [ u, U ] };
+ key { [ r, R ] };
+ key { [ s, S ] };
+ key { [ o, O ] };
+ key { [ period, greater ] };
+ key { [ 6, asciicircum ] };
+ key { [ 5, percent ] };
+ key