Использовать цифровую USB-клавиатуру с функцией набора текста как на телефоне?

Использовать цифровую USB-клавиатуру с функцией набора текста как на телефоне?

У меня есть цифровая USB-клавиатура, вот такая:

введите описание изображения здесь

Мне нужно писать символы (от A до Z) на этой клавиатуре, поэтому я хочу использовать ее как на старом мобильном телефоне:

введите описание изображения здесь

Если я нажму 1x 2, он напишет A, 2x 2 - B, 4x 9 - Z и т. д.

Возможно ли это сделать? И как? С помощью udev?

решение1

У меня нет полного ответа, но вот несколько вещей, которые могут помочь.

Если ваша клавиатура подключена к компьютеру с графическим интерфейсом рабочего стола на базе Gnome или KDE,АвтоКейможно использовать для превращения клавиш в горячие клавиши, которые могут делать почти все, что вы можете себе представить. Поскольку нажатия клавиш на панели, вероятно, неотличимы от соответствующих клавиш на вашей обычной клавиатуре, все, что вы сделаете, повлияет и на них.

Запустите xevтерминал и нажмите каждую клавишу на панели, чтобы увидеть, какие коды клавиш генерируются. Они, вероятно, такие же, как и для обычной клавиатуры, но если нет, вы можете использовать эти коды, чтобы различать их.

Если вы используете встроенную систему (или даже сервер) без графического интерфейса, то вышеприведенное не сработает.

Я не очень разбираюсь в устройствах Linux, ноэтотпост может дать вам подсказку о том, как обрабатывать ввод с клавиатуры непосредственно в скрипте или программе. Как только вы добавите нажатия клавиш в скрипт, вы сможете делать все, что захотите, в ответ на них.

Поскольку это скрипт/программа, вам придется придумать способ передать ее вывод в желаемое место назначения.

Первый подход, который приходит на ум, — это использование конвейера. Это сработает, если вывод идет только в одну программу.

Если решение должно быть немного более общим, может подойти именованный канал. Мне пока не приходилось их использовать, поэтому я немного не представляю, как можно использовать один и тот же именованный канал, последовательно подключенный к разным программам.

решение2

Решение – использоватьмультипрессМетод ввода.

В приложении необходимо вручную задать метод ввода multipress. Если вы хотите, чтобы multipress был по умолчанию, вам нужно создать файл /.xinputrcс содержимым:

GTK_IM_MODULE=multipress
QT_IM_MODULE=multipress

Связанный контент