Я использую ОС Parrot с рабочим столом MATE на X11.
Что я хочу:
- Нажмите 1/2/3/4
- Если выбранное приложение действительно использует клавишу (ввод в терминале, ввод в браузере, редактор, ярлыки и т. д.) → пусть оно ведет себя нормально
- Если ничего не происходит / клавиша не используется приложением (рабочий стол, неинтерактивная область) → переключение в рабочую область 1/2/3/4
Ограничения:
– нет клавиш-модификаторов (без Ctrl/Alt/Super/CapsLock)
– нет трюков с касанием и удерживанием
/> общесистемный (браузер, терминал, рабочий стол)
Я уже пробовал:
- xbindkeys + wmctrl
- xdotool / xautomation (внедрение ключей ненадежно или заблокировано)
- эвристика оконного класса (недостаточно точная)
Мой вопрос:
Есть ли в X11 КАКОЙ-нибудь способ определить, было ли нажатие клавиши «потреблено» целевым приложением, прежде чем запускать глобальное действие?
Если это невозможно, то какое именно техническое ограничение в X11 предотвращает это?
Я открыт для низкоуровневых подходов (XInput2, захваты, фильтрация событий) или четкого объяснения, почему это невозможно сделать чисто.
Подробнее здесь: https://stackoverflow.com/questions/798 ... y-is-not-u