Делаю программу с удобным интерфейсом.
Стандартные доступ терминальных кодов не подходит, т.к. с ним не возможны все сочетания клавиш, некоторые клавиши вообще недоступны.
Ищу разные способы получения нажатия всех клавиш, сочетаний клавиш, движений мыши,
нажатий кнопок мыши, колеса мыши.
Пока что нашёл такие способы.
Клавиатура :
- Коды терминала (обычный режим) - Отсутствут полный доступ к всем сочетаниям клавиш и некоторым отдельным клавишам.
- RAW режим - Хороший способ. Дает доступ ко всем клавишам, их нажатиям и отжатиям.
Но опасен, т. к. получается эксклюзивный доступ и нужно позаботится о возвращении нормального режима клавиатуры. Например создав спец-сервис который будет "если че" при зависании, вылете основной программы возвращать нормальный режим клавиатуры.
- Скан коды - это как-бы не нужный режим, т. к. уже есть RAW режим.
- Библиотеки SLANG, NCURSES - предоставляют режимы кодов терминала.
- /dev/input/ - это крутой способ.
Дает доступ ко всем клавишам, их нажатиям и отжатиям.
Интересен тем что не блокирует клавиатуру !
Из /dev/input/ могут читать множество программ одновременно.
Им пользуется например X Window System.
Но по дефолту дается доступ только для root. Придется перенастроить права доступа к файлу, дать доступ на чтение для юзера.
Мышь :
- gpm - нельзя получить события о прокрутки колесика мыши.
- /dev/input/ - Дает данные о колесе мыши.
Но по дефолту дается доступ только для root. Придется перенастроить права доступа к файлу, дать доступ на чтение для юзера.
Решил что буду использовать по дефолту /dev/input/, а для работы в особых случаях (удаленный доступ) режим терминальных кодов.
Каким ещё способом можно получить нажатия клавиш, мыши, движения мыши, колеса мыши, если такие существуют ?