diff --git a/layouts/Linux (Separate layouts)/rules/evdev b/layouts/Linux (Separate layouts)/rules/evdev
new file mode 100644
index 0000000..86c4af0
--- /dev/null
+++ b/layouts/Linux (Separate layouts)/rules/evdev
@@ -0,0 +1,5 @@
+! option = symbols
+univEn:univEn = +univEn(univEn)
+univRu:univRu = +univRu(univRu)
+
+! include %S/evdev
diff --git a/layouts/Linux (Separate layouts)/rules/evdev.xml b/layouts/Linux (Separate layouts)/rules/evdev.xml
new file mode 100644
index 0000000..b437b8e
--- /dev/null
+++ b/layouts/Linux (Separate layouts)/rules/evdev.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+ univEn
+
+ univ en
+ Universal EN
+
+ RU
+
+
+ rus
+
+
+
+
+
+
+
+ univRu
+
+ univ ru
+ Universal RU
+
+ RU
+
+
+ rus
+
+
+
+
+
+
+
+
+ Universal Layout
+ _My Universal Layout
+
+
+
+
+
+
diff --git a/layouts/Linux (Separate layouts)/symbols/univEn b/layouts/Linux (Separate layouts)/symbols/univEn
new file mode 100644
index 0000000..d46dc74
--- /dev/null
+++ b/layouts/Linux (Separate layouts)/symbols/univEn
@@ -0,0 +1,228 @@
+default partial alphanumeric_keys modifier_keys
+xkb_symbols "univEn" {
+ include "ru(common)"
+ // allows RALT to trigger AltGr (third and four) layer
+ include "level3(ralt_switch)"
+ modifier_map Mod5 { };
+ modifier_map Mod5 { };
+
+ name[Group1] = "Eng";
+
+ // key to cycle between language groups
+ // key { [ ISO_Next_Group ] };
+
+ // Numbers / Symbols row
+ // Note: Numbers and Symbols are swapped as it is better for programming stuff.
+
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ exclam, 1, U00B9, U00A1 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ at, 2, U00B2, U00BD ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ numbersign, 3, U00B3, U2153 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ dollar, 4, U2074, U00BC ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ percent, 5, U2030 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ asciicircum, 6, U02C6 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ question, 7, U00BF, U2048 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ asterisk, 8, U221E ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ parenleft, 9, U2018, U201C ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ parenright, 0, U2019, U201D ]
+ };
+
+
+ // Non-Breaking Space in third layer
+ key {[ space, space, U00A0, U00A0 ]};
+
+ // Combo-keys, similar symbols in one key
+
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ slash, bar, backslash, U00A6 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ apostrophe, quotedbl, grave, U2022 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ minus, underscore, U2013, U2014 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ equal, plus, U2260, U00B1 ]
+ };
+
+ // Main type cluster keys
+
+ // Q W E R T
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ q, Q, U03C8, U03A8 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ w, W, U03C9, U03A9 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ e, E, U20AC, U20AC ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ r, R, U00AE, U00AE ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ t, T, U0451, U0401 ]
+ };
+
+ // Y U I O P [ ]
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ y, Y, U00A5, U00A5 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ u, U, U03BB, U039B ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ i, I ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ o, O ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ p, P, U03C0, U03A0 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ bracketleft, braceleft, bracketleft, braceleft ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ bracketright, braceright, bracketright, braceright ]
+ };
+
+ // A S D F G
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ a, A, U03B1, U0391 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ s, S, U00A7, U03A3 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ d, D, U00B0, U0394 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ f, F, U00A3, U00A3 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ g, G, U03B3, U03B3 ]
+ };
+
+ // H J K L ; '
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ h, H, U20BD, U20BD ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ j, J, U00F8, U00D8 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ // XKB doesn't support ligatures input
+ // so 3 and 4 positions are used for macro keys.
+ symbols = [ k, K, XF86Macro1, XF86Macro2 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ l, L, U00AB, U2190 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ XF86Macro1, XF86Macro2, U00BB, U2192 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ asciitilde, U2248, asciitilde, U2248 ]
+ };
+
+ // Z X C V B
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ z, Z, U03BC, U039C ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ x, X, U00D7, U00D7]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ c, C, U00A9 , U00A2]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ v, V, U221A, U221A ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ b, B, U03B2, U0392 ]
+ };
+
+ // N M , . &
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ n, N, U03B7, U0397 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ m, M, U044A, U042A ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ comma, semicolon, less, U2264 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ period, colon, greater, U2265 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ ampersand, ampersand, ampersand, U2026 ]
+ };
+};
diff --git a/layouts/Linux (Separate layouts)/symbols/univRu b/layouts/Linux (Separate layouts)/symbols/univRu
new file mode 100644
index 0000000..382822e
--- /dev/null
+++ b/layouts/Linux (Separate layouts)/symbols/univRu
@@ -0,0 +1,228 @@
+default partial alphanumeric_keys modifier_keys
+xkb_symbols "univRu" {
+ include "ru(common)"
+ // allows RALT to trigger AltGr (third and four) layer
+ include "level3(ralt_switch)"
+ modifier_map Mod5 { };
+ modifier_map Mod5 { };
+
+ name[Group1] = "Rus";
+
+ // key to cycle between language groups
+ // key { [ ISO_Next_Group ] };
+
+ // Numbers / Symbols row
+ // Note: Numbers and Symbols are swapped as it is better for programming stuff.
+
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ exclam, 1, U00B9, U00A1 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ at, 2, U00B2, U00BD ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ numbersign, 3, U00B3, U2153 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ dollar, 4, U2074, U00BC ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ percent, 5, U2030 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ asciicircum, 6, U02C6 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ question, 7, U00BF, U2048 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ asterisk, 8, U221E ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ parenleft, 9, U2018, U201C ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ parenright, 0, U2019, U201D ]
+ };
+
+
+ // Non-Breaking Space in third layer
+ key {[ space, space, U00A0, U00A0 ]};
+
+ // Combo-keys, similar symbols in one key
+
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ slash, bar, backslash, U00A6 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ apostrophe, quotedbl, grave, U2022 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ minus, underscore, U2013, U2014 ]
+ };
+ key {
+ type = "FOUR_LEVEL",
+ symbols = [ equal, plus, U2260, U00B1 ]
+ };
+
+ // Main type cluster keys
+
+ // Q W E R T
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0439, U0419, U03C8, U03A8 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0446, U0426, U03C9, U03A9 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0443, U0423, U20AC, U20AC ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U043A, U041A, U00AE, U00AE ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0435, U0415, U0451, U0401 ]
+ };
+
+ // Y U I O P [ ]
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U043D, U041D, U00A5, U00A5 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0433, U0413, U03BB, U039B ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0448, U0428 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0449, U0429 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0437, U0417, U03C0, U03A0 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0445, U0425, bracketleft, braceleft ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0431, U0411, bracketright, braceright ]
+ };
+
+ // A S D F G
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0444, U0424, U03B1, U0391 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U044B, U042B, U00A7, U03A3 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0432, U0412, U00B0, U0394 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0430, U0410, U00A3, U00A3 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U043F, U041F, U03B3, U03B3 ]
+ };
+
+ // H J K L ; '
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0440, U0420, U20BD, U20BD ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U043E, U041E, U00F8, U00D8 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ // XKB doesn't support ligatures input
+ // so 3 and 4 positions are used for macro keys.
+ symbols = [ U043B, U041B, XF86Macro1, XF86Macro2 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0434, U0414, U00AB, U2190 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0436, U0416, U00BB, U2192 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U044D, U042D, asciitilde, U2248 ]
+ };
+
+ // Z X C V B
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U044F, U042F, U03BC, U039C ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0447, U0427, U00D7, U00D7]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0441, U0421, U00A9 , U00A2]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U043C, U041C, U221A, U221A ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0438, U0418, U03B2, U0392 ]
+ };
+
+ // N M , . &
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U0442, U0422, U03B7, U0397 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U044C, U042C, U044A, U042A ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ comma, semicolon, less, U2264 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ period, colon, greater, U2265 ]
+ };
+ key {
+ type = "FOUR_LEVEL_ALPHABETIC",
+ symbols = [ U044E, U042E, ampersand, U2026 ]
+ };
+};
diff --git a/readme.md b/readme.md
index 3230d65..5ef6f16 100644
--- a/readme.md
+++ b/readme.md
@@ -130,6 +130,21 @@
```
- Для sway, hyprland и других WM на Wayland: ищите инструкцию в документации своего оконного менеджера.
+#### Вариант с раздельными раскладками (Проверено на Wayland - Ubuntu 24.10)
+
+Для этого варианта поместите содержимое папки `layouts/Linux (Separate layouts)/xkb` в `~/.config/xkb`.
+Далее откройте приложение Settings, зайдите в настройки клавиатуры и добавьте две раскладки `Universal RU` и `Universal EN`.
+Они обе находятся в разделе Russian (Russian Federation).
+
+Попробуйте что-нибудь напечатать в текстовом редакторе. Если раскладки не подтянулись - зайдите в Gnome Tweaks
+и включите-выключите опции `Enable Ru Layout` и/или `Enable En Layout` и попроюуйте снова.
+
+Чтобы переключать раскладки через CapsLock в Gnome Tweaks выключите поведение капс лока (должно быть выбрано именно ***disabled***, а не ***default***)
+Там же в Tweaks настройте переключение раскладки через клавишу CapsLock.
+
+Обратите внимание, что на экране логина раскладки еще не подтянуты и там дейстует стандартная. Если у вас в пароле
+есть цифры - их следует набирать без шифта.
+
### macOS
1. Файл `layouts/macOS/Universal.bundle` скопировать в `~/Library/Keyboard Layouts`.