Два года в /fg/. Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1235.0 пользователей не могут ошибаться!
?6906
прекрасное6424
говно5884
говнорашка5512
хуита4695
anime3055
linux2643
music2612
bnw2588
рашка2559
log2336
ололо2113
pic1809
дунч1734
сталирасты1488
украина1437
быдло1434
bnw_ppl1364
дыбр1237
гімно1158

Спустя примерно 8 лет после покупки у китайцев наконец-то приспособил этот копеечный пульт для управления прыщами. https://tinystash.undef.im/il/nr1Hk3aAV83djxkfWWu1QPQcR1Gk2TXV2BskfaRM1YLZshXcbq1PH523yVjkA6jres46q9sUqa9ZnS4ommFdmZkjk68tyXeffxZFj5WRwkUi9.jpg Внешне может отличаться (например, копировать MCE Remote), суть одна: представляются USB HID-устройствами (мышь и клавиатура), шлют пачку комбинаций кнопок (чтобы наверняка) на нажатие одной, что делает их практически неюзабельными. Сегодня мы попробуем это исправить, превратив клавиатуру в lirc-устройство. 1. Подключаем приёмник. Смотрим cat /proc/bus/input/devices. Ищем там своё устройство. В моём случае их два (клавиатура и мышь): I: Bus=0003 Vendor=1d57 Product=ad02 Version=0110 N: Name="HID 1d57:ad02" P: Phys=usb-0000:00:14.0-2/input0 S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1D57:AD02.0001/input/input2 ... H: Handlers=sysrq kbd event2 leds ... I: Bus=0003 Vendor=1d57 Product=ad02 Version=0110 N: Name="HID 1d57:ad02" P: Phys=usb-0000:00:14.0-2/input1 S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1D57:AD02.0002/input/input3 ... H: Handlers=mouse0 event3 ... Выбираем то, что про клавиатуру (см. Handlers). Нам понадобится значение Sysfs (/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1D57:AD02.0001/input/input2). Можно сразу запомнить VID/PID (Vendor=1d57 Product=ad02). 2. Теперь делаем (в -p подставить значение из предыдущего шага): udevadm info -a -p /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1D57:AD02.0001/input/input2 Видим те же VID/PID: ATTRS{idProduct}=="ad02" ATTRS{idVendor}=="1d57" Там же находим ATTRS{bInterfaceProtocol}=="01" (у второго устройства, которое прикидывается мышью, будет 02, так и будем их отличать). 3. Пишем udev-правило (подставив свои значения, конечно): # /etc/udev/rules.d/99-irremote.rules SUBSYSTEMS=="usb", ENV{.protocol}="$attr{bInterfaceProtocol}" KERNEL=="event*", ATTRS{idVendor}=="1d57", ATTRS{idProduct}=="ad02", ENV{.protocol}=="01", SYMLINK="input/irremote" 4. udevadm control --reload, перевтыкаем устройство, смотрим /dev/input, должен появится симлинк /dev/input/irremote -> eventX. 5. Выключаем lirc. 6. Ставим вместо него https://github.com/gsliepen/inputlirc 7. Конфигурируем. См. https://manpages.debian.org/unstable/inputlirc/inputlircd.8.en.html#OPTIONS Например, в дебиане правим /etc/default/inputlirc: OPTIONS="-g -c -m 0" EVENTS="/dev/input/irremote" 8. `systemctl restart inputlirc`. Теперь можно коннектиться к lirc-сокету (по умолчанию `/run/lirc/lircd` или `/var/run/lirc/lircd` в зависимости от системы) и получать команды. 9. Для эмуляции нажатия различных кнопок per application берём https://github.com/un-def/lip Кусок моего конфига: [Default] KEY_PLAYPAUSE: key XF86AudioPlay KEY_VOLUMEUP: key XF86AudioRaiseVolume KEY_VOLUMEDOWN: key XF86AudioLowerVolume KEY_MUTE: key XF86AudioMute KEY_PREVIOUS: key XF86AudioPrev KEY_NEXT: key XF86AudioNext KEY_UP: key Up KEY_DOWN: key Down KEY_LEFT: key Left KEY_RIGHT: key Right KEY_ENTER: key Return KEY_ESC: key Escape KEY_TAB: key Tab KEY_FULLSCREEN: key f KEY_CLOSE: key Alt+F4 KEY_PAGEUP: run i3-msg workspace next KEY_PAGEDOWN: run i3-msg workspace prev [mpv] window_class: ^mpv$ KEY_PLAYPAUSE: key space KEY_VOLUMEUP: key 0 KEY_VOLUMEDOWN: key 9 KEY_REW: key Left KEY_FWD: key Right KEY_F1: key numbersign ; audio KEY_F2: key j ; subtitle KEY_F4: key o ; info [Spotify] window_class: ^Spotify$ KEY_PLAYPAUSE: key space KEY_PREVIOUS: key Ctrl+Left KEY_NEXT: key Ctrl+Right KEY_REW: key Shift+Left KEY_FWD: key Shift+Right ``` #ir #remote #irremote #poorsmanremote #linux
#ZV82NZ (1+2) / @telegram / 1469 дней назад
#EVBUHM (2) / @kuro / 1865 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.