1

Тема: Зчитування клавіш із певної клавіатури

Всім привіт. Зразу до діла)
У мене є 2 клавіатури. Я їх використовую для різних цілей. На одній строчу текст на іншій - натискаю кнопку яка є приатачена до певної команди. Цю всю штуку я роблю за допомогою самописної програми на c
Вона відкриває потік необхідний event файл клавіатури і читає його. У даній реалізації фішка у тому що ми читаємо дані тільки які поступають з певної клави а не з усієї системи.

Для знавців є питання: чи можна за допомогою Xlib, без рута зчитувати натиснення клавіш.
Є такі програми як xbindkeys, keylaunch  вони це все вміють але читають для всіх клавіатур події.
Тобто якщо я на будь які з клавіатур натискаю клавішу - ми отримуємо дані про цю подію, але не знаємо на якій клавіатурі натиснули її.

Ось для прикладу кусок як відловлюють натиснення клавіш.
https://github.com/jeremija/keylaunch/b … #L110:L130

Можливо хтось запитає: чому ти не можеш залишити свою програму в спокої і не паритись, вона ж працює?
Відповідаю: я не можу програму запустити із під рута коли забутався ком. Тобто я ставлю у крон а всіх даних не вистачає. Не можу відкрити дисплей. Уже робив і експорт змінної DISPLAY і інші штуки, все рівно не виходить.
Ось код який валиться.

char *display_name = XDisplayName (NULL);
Display *display = XOpenDisplay(display_name );
if (display == NULL) {
  fprintf(stderr, "[ERROR] Could not connect to X server\n");
  exit(RESULT_FAILURE_OPEN_DISPLAY);
}

Якщо можна буде вирішити дане питання по іншому, було б круто. Дякую всім за будь яку допомогу, код, посилання, напутнє слово)))

Подякували: leofun011

2

Re: Зчитування клавіш із певної клавіатури

А як саме ви підключаєте дві клавіатури (на рівні заліза) ?

3

Re: Зчитування клавіш із певної клавіатури

2 різні usb порти
http://i.imgur.com/17Ipoar.png