Типографская раскладка в CatBoard

Хочу попробовать сделать в CatBoard типографскую раскладку, вызываемую по Alt+буква или Alt+Shift+буква, как это сделано в MacOS. За основу и возьму макосовскую раскладку.

Русская:          Alt               Alt+Shift
`12345 67890-=    §!@#$% ^&*()–»    ±|"£€∞ ¬¶√'`—«
йцуке нгшщзхъ     јџќ®† њѓѕў‘“ъ     ЈЏЌ®† ЊЃЅЎ’”Ъ
фывап ролджэ\     ƒыћ÷© }°љ∆…эё     ƒЫЋ÷© {•Љ∆…ЭЁ
ячсми тьбю.       ђ≈≠µи ™~≤≥“       Ђ≈≠µИ ™~<>„

Английская:       Alt               Alt+Shift
`12345 67890-=    §¡™£¢∞ §¶•ªº–≠    ±⁄€‹›fi fl‡°·‚—±
qwert yuiop[]     œ∑´®† ¥¨ˆøπ“‘     Œ„´‰ˇ Á¨ˆØ∏”’
asdfg hjkl;'\     åß∂ƒ© ˙∆˚¬…æ«     ÅÍÎÏ˝ ÓÔÒÚÆ»
zxcvb nm,./       Ω≈ç√∫ ˜µ≤≥÷       ¸˛Ç◊ı ˜Â¯˘¿

Так как ввод юникодных символов с клавиатуры в разных операционных системах производится по-разному, то придётся сделать несколько режимов, указывающих в какой операционной системе работаете в данный момент. Так как изредка может понадобиться вводить клавиатурные сочетания в виде Alt+буква или цифра, или Alt+Shift+буква или цифра, то типографская раскладка должна быть отключаемая.

В Windows символы вводятся нажатием и удерживанием Alt, набору кода символа в десятичной системе счисления на цифровой клавиатуре (коды символов KEYPAD_0 - KEYPAD_9), и при отпускании Alt символ будет вставлен в поле ввода.

В Linux для ввода специальных символов нужно нажать Ctrl+Shift+U, в строке ввода появится подчёркнутая буква u, после чего нужно ввести код символа в шестнадцатеричной системе счисления, и нажать Enter.

В MacOS символы вводятся через Alt и Alt+Shift и обычные буквы и цифры по всей клавиатуре, таблица приведена выше.

Будет производиться отправка кода нужного символа в выбранной операционной системе, при выборе MacOS ничего происходить не будет, будет отрабатываться встроенный в операционную систему механизм.

Заодно переделываю код прошивки CatBoard под ввод стандартных символов из QWERTY раскладки без шифта, старший 8-й бит теперь указывает на необходимость инвертировать нажатия Shift для определённой клавиши.

08 августа 2013