LINUX.ORG.RU

 Получение информации о подключении мыши и клавиатуры

 


0

2

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

Ответ на: комментарий от x905

Не очень понятно как увидеть клавиатуру

листинг ответа на команду

Bus 001 Device 009: ID 203a:fffa Bus 001 Device 008: ID 203a:fff9 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

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

0 научиться форматировать свои посты
1 дать вывод при воткнутой клавиатуре
2 дать вывод при вынутой клавиатуре
3 сравнить 1 и 2 )

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

Он это хочет из цепепе делать. В цепепе можно воспользоваться тем же, что и в С работает: libusb. Поочередно пройтись по всем подключенным устройствам и распарсить на предмет клавы/мыши.

Но это не сработает для PS/2. Поэтому нужно подумать о более общих методиках проверки.

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

Ленивый какой ты, а?

for i in /sys/class/input/input*; do cat *i/name; done
sparks ★★★★
()

Клавиатура подключена к компьютеру вообще или к конкретному терминалу/графическому сеансу? А то может быть так что клавиатура есть, но не для тебя (например, на терминальном сервере, или на многоголовой рабочей станции).

legolegs ★★★★★
()

d-bus? Там можно подписаться на события от udev.

Pentium02 ★★
()
  • lsusb
  • usbhid-dump
  • dmesg | grep input
  • ...
beastie ★★★★★
()
Ответ на: комментарий от snizovtsev

А предварительно попробовать и разобраться в libudev так:
enumerate - loginctl seat-status (использует sysfs)
monitor - udevadm monitor (использует netlink)

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

А ещё более правльно было бы обратиться к API композитора (X11, GNOME, KDE) - ибо они последние решают, что из подключенного на самом деле есть клавиатура/мышь, и как её использовать. Под рутом и глобально для всей системы это можно сделать как то так.

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

Не очень понятно как увидеть клавиатуру

Через udev (и прочее в sysfs) можно увидеть лишь то, что устройство является устойством ввода (SUBSYSTEM=input). Если тебе нужно лишь проверить наличие конкретной модели мышки/клавиатуры - смотришь тут их id, а затем в программе ищешь. Если тебе нужно классифицировать любое устройство как «мышь» или «клавиатура», то тебе нужен evdev или libinput (требуют прав root), или API твоего композитора (X11, Wayland-Gnome, Wayland-KDE etc).

У меня вот, к примеру, мышь и клавиатуры подключены через один беспроводной свисток и идут одной строчкой в lsusb.

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