LINUX.ORG.RU

Кастомные кейкоды с кастомной клавиатуры

 ,


0

1

Короче, я регулярно задрочу в Elite Dangerous и в определённый момент я решил, что возможно кастомная клавиатура с функциями корабля это хорошая идея. Зачем? Потому что у меня есть паяльник и я могу. Есть в целом два варианта, как я полагаю: набиндить обычных клавиш (которые буковки), что является скучным вариантом, и запрогать контроллер клавиатуры так, чтоб он отправлял кастомные кейкоды (А-ля XF86UseECM, ну или как оно там будет). Со стороны клавиатуры я могу отправить что угодно, проблем нет, это я умею. Чего я не понимаю, как работают нестандартные клавиши в linux. Было бы здорово если бы кто-нибудь пояснил что увидит система и сможет ли она вообще на это среагировать. И где это обрабатывается.

А, работать это будет через wine конечно же, но не думаю что это беда.



Последнее исправление: Pierre_Dolle (всего исправлений: 2)
Ответ на: комментарий от Pierre_Dolle

Сейчас используеться общий перехватчик -специальная библиотека.Эта библиотека в зависимости от активного графического сервера -Xfree или вайланд переправляет ввод туда.Из-за этого (так как получить стабильный протокол сразу не вышло) а править баги под Х мало желающих до фига старых утилит для правки сканкодов отвалилось.
В общем что у тебя за активный сервер оттуда и пляши: материалов по нестандартная клавиатура и Xfree или вайланд достаточно.

maximnik0 ★★
()
Последнее исправление: maximnik0 (всего исправлений: 1)

Я не совсем понимаю зачем это. Можно подменять нажатия клавиш, но то что идет через функциональную клавишу отправляется отдельным биндом. Ее нельзя переназначить. При нажатии функциональной клавиши только сама клавиатура понимает что она нажата. А если событие не отлавливается системой, то и заменить его в системе не получится. Отлавливается - тогда уже делай что хочешь, насколько система позволяет. Обычно это для доставания спецсимволов используется чтобы шифт не долбить. Так то и WM может событие послать.

anonymous
()
Ответ на: комментарий от anonymous

Все переназначаемо -материалы на хабре :Как сделать кастомную раскладку клавиатуры в Linux
https://habr.com/ru/articles/788334/

Единственное исключения- клавиши модификаторы и код аварийной обработки: ctr+alt+prtsc+ клавиша и то вроде можно отключить в параметрах загрузки.

maximnik0 ★★
()
Последнее исправление: maximnik0 (всего исправлений: 2)
Ответ на: комментарий от maximnik0

Ха, прикольно. Так тоже можно. Я вот кастомную систему ввода делал для японского языка. Но там на основе латиницы все это работает в связке fcitx, Mozc. Тоже как вариант любые символы просто делать, если чего-то не получается настроить имеющимися методами в WM на Wayland например.

https://rutube.ru/video/b8295cdf15bf40364cdd755e6384557e/

anonymous
()

кастомная клавиатура с функциями корабля

нестандартные клавиши

Нестандартные задачи требуют нестандартных решений. Если в заголовочниках ядра не найдёшь подходящих кейкодов, то делай не hid устройство(чтоб его автоматически не захватывал драйвер ядра), а кастомное и пили юзерспейсный драйвер. Возьми libusb - она предоставляет стабильный апи в отличие от. Если нужен будет обычный ввод помимо нестандартного, то можешь отправлять события ввода через uinput, например.

u5er ★★
()
Ответ на: комментарий от u5er

Т.е. кейкоды ядро ловит? Я думал это только для ядрёной консоли. Я просто не совсем цепочку понимаю, вот я нажал кнопочку, контроллер в клавиатуре отправил hex, он попал куда-то в комп, а дальше что?

Pierre_Dolle
() автор топика
Ответ на: комментарий от u5er

зачем городить кастомные дрова, если можно использовать «стандартные» кейкоды, которых нет/не используются на обычной клавиатуре?

их же до жопы разных, всякие мультимедиа и прочие шорткаты.

ann_eesti
()
Ответ на: комментарий от Pierre_Dolle

А, ну и добавлю, что клавиатура-то отправляет коды хексами, а что там дальше я не особо понимаю.

Простите за офтоп, я просто тоже хочу сделать специфичную клавиатуру, но не знаю как сигналы посылать. Я только UART умею пользоваться. :-)

Вы будете какой-то конкретный МК использовать? Подскажете как это делается?

Jullyfish
()
Ответ на: комментарий от Jullyfish

Да, есть готовые мк, спецом под клавиатуры, к ним подключаются платы и вперёд. В двух словах не описать, но если хочется попробовать, надо почитать гайды как diy клавиатуры люди делают. Только они делают сплиты и прочие извращения, а лично я собираюсь извратиться совсем иначе.

Pierre_Dolle
() автор топика
Ответ на: комментарий от Pierre_Dolle

Да я что-то искал по этой теме, но в основном натыкался на Arduino проекты, где просто Write’ом всё печатают (т.е. через UART).

Тыкните меня, пожалуйста, в какой-нибудь конкретный МК. :-)

Jullyfish
()

Вот здесь много написано про нестандартные клавиатуры и их «железное» подключние: https://geekhack.org/index.php?topic=14618.0

Я кстати собирал и использовал эту железку и софт,только микроконтроллер поставил более распространенный atmega8 https://radiokot.ru/forum/viewtopic.php?f=61&t=100200

watchcat382
()
Ответ на: комментарий от Pierre_Dolle

Это уже тебе решать :) Я лишь предложил такой вариант, по которому пошёл бы сам. У меня была похожая идея, когда я играл в спейс инженерс. Там есть внутреигровое программирование и у меня была идея пробросить туда некое нешнее устройство и дислеем и кнопками, чтоб можно было управлять разными подсистемами корабля и выводить индикацию. Но идея так и осталась идеей, но может пригодиться тебе в качестве варианта.

u5er ★★
()