Насколько я знаю, стандартный протокол X11 не позволяет этого. Расширение XInput 2.0 может, но я сомневаюсь в этом .. в то время как Windows предполагает одну очередь событий, которую слушает каждая программа, чтобы программа могла перехватить событие и предотвратить его отправку в очередь другим слушателям, каждый клиент X11 имеет его собственная независимая очередь и все клиенты, которые регистрируют интерес к событию, получают независимую копию в очереди. Это означает, что при нормальных обстоятельствах невозможно, чтобы ошибочная программа блокировала запуск других программ; но это также означает, что в те моменты, когда клиент должен блокировать других клиентов, он должен захватить сервер, чтобы сервер не обрабатывал события для любого другого клиента.
Что означает, что вы можете либо
- использовать прокси-сервер X-сервер (не будет трудно, но будет довольно медленным)
или
- сделать это на уровень входного устройства.
/dev/input/event<n>
дают вам входные события. Вы можете прочитать нажатие клавиш и решить, следует ли их распространять далее. К сожалению, для этого нет реальной документации, но заголовочный файл linux/include/input.h
вполне объяснителен.
что вы пытаетесь сделать? просто заблокировать «быстрый» двойной щелчок? –
@ I-V, да, если мы правильно понимаем друг друга – Inline
Я действительно имел в виду, если вы попытаетесь заблокировать щелчок на той же машине, на которой работает ваш код (или заблокировать его на удаленной машине через rdp)? –