selarion, благодарю за отзыв.
Паскаль был выбран просто потому что я его знаю довольно глубоко. Программистом был очень давно, в те времена, когда в моде была Delphi, работал по найму, мы писали коммерческие проекты на ней. Переключатель писать начинал, как полагается, на С, но быстро понял что мне сильно долго разбираться придется, а хотелось написать что-то быстро и просто для себя, чтоб работало. Попробовал паскаль, оказалось что все что нужно для этой задачи в нем есть, и писать под линукс тоже можно. Публиковать изначально не планировал, но когда понял, что работает неплохо, решил присоединиться к движению open source).
По поводу пожеланий и описанных багов.
В принципе, добавить вторую клавиатуру можно, подумаю над этим, уже на форуме спрашивали.
По поводу Backspace. Вероятно речь идет о ситуации "нажал и держу пока не сотру много букв". Действительно, при этом буфер портится, связано это с тем, что по какой-то причине прилетают не все сообщения о том что клавиша сработала. От паскаля это не зависит, простой тестовый слушатель, написанный на С тоже не слышит. Соответственно, корректно обработать такую ситуацию не получается. Природу такого поведения до конца выяснить не смог, поковырялся в исходниках ядра, бросил. При этом, если не зажимать, а стирать по одной букве, то все хорошо работает.
С шифтом тоже самое, если долго держать, в момент отпускания сообщение KEY_UP может не прилететь, шифт останется "нажатым", клавиатура будет фигачить капсом.
Как бы проблема присутствует, путей решения в общем-то не вижу пока, она не зависит от easy-switcher. Возникает она довольно редко, поэтому решил оставить как есть.
По поводу Ctrl. По нажатию Ctrl, Alt, PgUP, PgDown, Tab и клавиш-стрелок буфер чистится, потому что
вот. Нажатия этих клавиш, или шорткатов с ними (например Ctrl+C Ctrl+V, или Ctrl-T как у автора багрепорта) приводит к тому, что положение курсора перестает соответствовать ранее напечатанному на клавиатуре тексту. Конвертация в этом случае бессмысленна, чистим буфер. Shift таким поведением не обладает, поэтому переделывать shift на ctrl пока не планирую.