LINUX.ORG.RU
решено ФорумTalks

Razer Anansi и Линукс

 ,


0

3

Привет всем. Есть клавиатура, Razer Anansi. Чем хороша - есть 12 доп. клавиш, на которые можно запрограммировать клавиатурные макросы, переключения окон и т.д. А также есть подсветка с возможностью задания цвета (не по клавишам, а в целом). Но это в винде.

Так вот, у клавы нет поддержки Линукса (как и у всего остального в Razer). Виндовый софт где-то такой: 1, 2, 3, 4. Хочется запилить аналог.

С протоколом общения по USB разобрался. Теперь при помощи libusb я могу выставлять цвет подсветки в RGB (как с плавным переходом, так и мгновенно), включать циклическую смену цвета. Есть даже занятная идея менять цвет при смене раскладки.

Доп. клавиши же по дефолту выдают коды обычных клавиш - например, клавиша М1 дает обычное «=», М2 - "-" и т.д. Но посылкой спец. пакета можно заставить их выдавать другие коды. Эти коды также фиксированы, но их по идее можно юзать:

M1: keycode 193 (keysym 0x1008ff46, XF86Launch6)
M2: keycode 194 (keysym 0x1008ff47, XF86Launch7)
M3: keycode 195 (keysym 0x1008ff48, XF86Launch8)
M4: keycode 196 (keysym 0x1008ff49, XF86Launch9)
M5: keycode 197 (keysym 0x0, NoSymbol)
T1: keycode 198 (keysym 0x0, NoSymbol)
T2: keycode 199 (keysym 0x1008ffa9, XF86TouchpadToggle)
T3: keycode 200 (keysym 0x1008ffb0, XF86TouchpadOn)
T4: keycode 201 (keysym 0x1008ffb1, XF86TouchpadOff)
T5: keycode 98 (keysym 0xff26, Katakana)
T6: keycode 99 (keysym 0xff25, Hiragana)
T7: keycode 103 (keysym 0x0, NoSymbol)

По работе с клавиатурой не хватает знаний.

  • Допустим, я хочу по T1 заставить посылать «Ctrl+A,M». Как это сделать в линуксе (с консоли или программно)?
  • Допустим, я хочу по T2 выполнить свой код. Как это сделать в линуксе?
★★★★★
Ответ на: комментарий от Pavval

Короче. Написал я свой драйвер :) Научил его транслировать FN в Right_Win. Начал изучать, как обрабатывать M1-M5. А там какая-то мутная история, пришлось лезть в hid-core.c и шпиговать его всяким отладочным выводом...

А потом я ПО ОШИБКЕ послал в клавиатуру вместо «0200 0403» другие байтики: «0200 0402» :) И она перешла в тот самый желаемый режим, в котором работала старая прошивка.

Ну, я разумеется, решил послать и «0200 0401» тоже. После чего клава померла и потребовалась перепрошивка :)

Вот и не знаю, пилить ли свой драйвер дальше. С одной стороны лень, с другой можно сделать так, что никаких дополнительных телодвижений для настройки клавы не надо будет, он сам все сделает. Ну и еще у есть заманчивая мысль продублировать индикатор, например, ScrollLock зажиганием логотипа Razer для более видимой индикации раскладки.

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

Ну, я разумеется, решил послать и «0200 0401» тоже. После чего клава померла и потребовалась перепрошивка :)

Наверное это код вход а в режим перепрошивки:)

Вот и не знаю, пилить ли свой драйвер дальше. С одной стороны лень, с другой можно сделать так, что никаких дополнительных телодвижений для настройки клавы не надо будет, он сам все сделает. Ну и еще у есть заманчивая мысль продублировать индикатор, например, ScrollLock зажиганием логотипа Razer для более видимой индикации раскладки.

Если всё можно сделать с userspace - не пиши драйвер. Дублирование ScrollLock и так запилить мона. Я когда перенесу свой быдлокод (которого пока мало, но он гордый) с libusb на hidraw - выложу на github и можно будет туда добавить твою клаву.

Pavval ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.