Как создать свою раскладку клавиатуры

GIT

WINDOWS

1. Если у вас нет NET Framework 3.5 скачиваем и устанавливаем
2. Скачиваем Microsoft Keyboard Layout Creator, устанавливаем и запускаем
3. Загружаем свою или текущую раскладку File / Load Source File.. | Load Existing Keyboard...
4. Когда закончите с творчеством нажимаете Project / Build DLL and Setup Package
5. Не обращем внимание на предупреждения (WARNING) в логе, переносим созданую папку на компьютер, где нужна эта раскладка и запускаем setup.exe
NB! При создании папки может ругаться (ERROR). Удаляем раскладку на данном компьютере в языках (ms-settings:regionlanguage), а также в программах (appwiz.cpl или ms-settings:appsfeatures) и пытаемся создать заново.

LINUX UBUNTU / MINT

1. Копируем файл раскладки в домашнюю папку (например us) sudo cp /usr/share/X11/xkb/symbols/us ~/
2. Даем себе права на редактирование файла sudo chmod 666 ~/us
3. Открываем файл в редакторе. Например nano ~/us
4. Редактируем либо основную раскладку (например English (US)):
    xkb_symbols "basic" {

        name[Group1]= "English (US)";

        .....

    };
либо дополнительную (например English (Dvorak, left-handed)):
    xkb_symbols "dvorak-l" {
    
    include "us(dvorak)"
        name[Group1]= "English (Dvorak, left-handed)";
        
        .....
    
    };
Настройка кнопки выглядит примерно так:
        key <AE05> { [  5,      percent,        EuroSign,        yen ] };
Что значит:
key <AE05> - код кнпки на клавиатуре
1ый столбец - обычное нажатие
2ой столбец - нажатие с кнопкой Shift или включенном Caps Lock
3ий столбец - нажатие с кнопкой Alt Gr (правый Alt)
4ый столбец - нажатие вместе кнопок Alt Gr и Shift

Коды кнопок и символов указаны ниже...
5. После завершения редактирования сохраняем файл и переписываем обратно sudo cp ~/us /usr/share/X11/xkb/symbols
6. Перезаходим в систему или если этой раскладки у вас до этого не было то добавляем её (соотвественно ту что редактировали, например English (Dvorak, left-handed))
NB! Если выдало ошибку, то скорее всего вы где-то пропустили запятую...
Коды кнопок:
XKB keycodes
Коды символов:
ˇ    - asciicircum
^    - asciicircum
*    - asterisk
~    - asciitilde
'    - apostrophe
"    - quotedbl
,    - comma
.    - period
;    - semicolon
:    - colon
!    - exclam
¡    - exclamdown
?    - question
¿    - questiondown
@    - at
²    - twosuperior
³    - threesuperior
°    - degree
#    - numbersign
¤    - currency
%    - percent
&    - ampersand
/    - slash
\    - backslash
(    - parenleft
)    - parenright
[    - bracketleft
]    - bracketright
{    - braceleft
}    - braceright
$    - dollar
€    - EuroSign
£    - sterling
¥    - yen
©    - copyright
®    - registered
<    - less
>    - greater
|    - bar
¦    - brokenbar
№    - numerosign
µ    - mu
_    - underscore
=    - equal
+    - plus
-    - minus
×    - multiply
÷    - division
˙    - abovedot
¼    - onequarter
½    - onehalf
¾    - threequarters


ü, Ü - udiaeresis,      Udiaeresis
õ, Õ - otilde,          Otilde
ö, Ö - odiaeresis,      Odiaeresis
ä, Ä - adiaeresis,      Adiaeresis
š, Š - scaron,          Scaron
ž, Ž - zcaron,          Zcaron

а, А - Cyrillic_a,       Cyrillic_A
б, Б - Cyrillic_be,      Cyrillic_BE
в, В - Cyrillic_ve,      Cyrillic_VE
г, Г - Cyrillic_ghe,     Cyrillic_GHE
д, Д - Cyrillic_de,      Cyrillic_DE
е, Е - Cyrillic_ie,      Cyrillic_IE
ё, Ё - Cyrillic_io,      Cyrillic_IO
ж, Ж - Cyrillic_zhe,     Cyrillic_ZHE
з, З - Cyrillic_ze,      Cyrillic_ZE
и, И - Cyrillic_i,       Cyrillic_I
й, Й - Cyrillic_shorti,  Cyrillic_SHORTI
к, К - Cyrillic_ka,      Cyrillic_KA
л, Л - Cyrillic_el,      Cyrillic_EL
м, М - Cyrillic_em,      Cyrillic_EM
н, Н - Cyrillic_en,      Cyrillic_EN
о, О - Cyrillic_o,       Cyrillic_O
п, П - Cyrillic_pe,      Cyrillic_PE
р, Р - Cyrillic_er,      Cyrillic_ER
с, С - Cyrillic_es,      Cyrillic_ES
т, Т - Cyrillic_te,      Cyrillic_TE
у, У - Cyrillic_u,       Cyrillic_U
ф, Ф - Cyrillic_ef,      Cyrillic_EF
х, Х - Cyrillic_ha,      Cyrillic_HA
ц, Ц - Cyrillic_tse,     Cyrillic_TSE
ч, Ч - Cyrillic_che,     Cyrillic_CHE
ш, Ш - Cyrillic_sha,     Cyrillic_SHA
щ, Щ - Cyrillic_shcha,   Cyrillic_SHCHA
ъ, Ъ - Cyrillic_hardsign,Cyrillic_HARDSIGN
ы, Ы - Cyrillic_yeru,    Cyrillic_YERU
ь, Ь - Cyrillic_softsign,Cyrillic_SOFTSIGN
э, Э - Cyrillic_e,       Cyrillic_E
ю, Ю - Cyrillic_yu,      Cyrillic_YU
я, Я - Cyrillic_ya,      Cyrillic_YA