Разширяване на функционалността на клавиатурата

Днес производителите на клавиатури ни предлагат доста богат избор от най-разнообразните опции за определените устройства за въвеждане. От разширени версии с допълнителни бутони за по-удобно управление на компютъра, до версии с пресечен брой ключове, насочени, хм ... към същото увеличение на удобството. Е, предлагам да разгледаме въпроса за подобряване на работата с клавиатурата не толкова от хардуерна гледна точка, а от софтуер.

И така, нека разгледаме принципа на клавиатурата, а именно натискането на клавиш. Самото натискане се състои от три събития - директно натискане, задържане и пускане на клавиш. В същото време при въвеждане на символ се използва само натискане, задържането в повечето случаи играе роля само за модификаторите Shift, Ctrl, Alt, както и за навигация, изтриване и някои други системни клавиши. Разбира се, има и автоматично повторение, което рядко се използва за символни клавиши (както показва практиката, ако е необходимо да се въведе един и същ знак, потребителят предпочита да натисне един и същ бутон няколко пъти, отколкото да използва автоматично повторение). В този случай събитието за задържане на клавиш може да се използва за по-полезни цели - а именно, когато задържате клавиш, го превърнете в модификатор, който може да създаде допълнителни комбинации от ключове. Между другото, задържането на клавиша се използва в мобилните клавиатури. Така например, в Smart Keyboard for Android, когато задържите буква на екранната клавиатура, ще получите алтернативно вмъкване на символ или число (например вместо "y" - "1", "c" - "2", "p" - "*" и др.), Което е доста удобно в условията на ограничено пространство на екрана.

Но да се върнем към модификаторите. Подходът, предложен в тази тема, разглежда използването на задържане на клавиш за промяна на функционалното оформление на клавиатурата. Например, ако бутонът „f“ е задържан, ние блокираме вмъкването на този знак и изчакваме следващите натиснати клавиши, като временно блокираме самото вмъкване на символи. Ако бутонът е бил натиснат и освободен, ние сме присвоили някаква функция в това функционално оформление, можем да предположим, че оформлението е работило, изпълняваме възложената функция и продължаваме да блокираме вмъкването на символи, докато бутонът за промяна на оформлението е задържан (в този случай, това е "f"). Ако с освобождаване на „f“ не е бил натиснат функционален бутон, ние вмъкваме въведените символи, които преди това са били блокирани.

Нека разгледаме това с по-илюстративен пример.

Shift Ctrl

Фигурата показва цифровото оформление на символните клавиши. Ако, докато държите натиснат бутона "f" (клавиш за промяна на оформлението), натиснете и отпуснете "j", ще получим вмъкването на символа "4". Когато използваме комбинацията f-h, получаваме натискане на клавиша за въвеждане. Между другото, когато комбинираме f- '(или ae в руското оформление), ще получим символ на апострофа, независимо от използваното езиково оформление (което е доста удобно, тъй като нито руското, нито украинското езиково оформление предвиждат присъствието на този знак ).