Для Debian, Ubuntu и Mint:
netcat -h
nc -h
Для Fedora, Red Hat Enterprise Linux и CentOS:
ncat -h
Первая строка этих команд даст версию.
Существует символ клавиши XF86LogGrabInfo
, при нажатии которого X-сервер печатает информацию обо всех захватах в файле журнала (, обычно/var/log/Xorg.$DISPLAY.log
). Если у вас установлен xdotool
, вы можете активировать эту клавишу с помощью команды, например
xdotool key XF86LogGrabInfo
Оттуда вы можете определить клиента X11-виновника. Например, чтобы определить, какой клиент X11 возится с клавишей «Пробел», я сначала получаю код клавиши, привязанный к символу клавиши space
:
$ xkbcomp $DISPLAY - | grep SPCE
<SPCE> = 65;
key <SPCE> { [ space ] };
(вы также можете использовать xev
+ нажмите Space
для этого ), затем я ищу его черезXorg.$DISPLAY.log
:
$ awk '/registered grabs of client/{c=$0}/detail 65/{if(c)print c; c=""; print}' /var/log/Xorg.0.log
[452727.209] Printing all registered grabs of client pid 32055 openbox --config-file /home/pi/.config/openbox/lxde-pi-rc.xml
[452727.220] detail 65 (mask 0), modifiersDetail 8 (mask 0)
[452727.220] detail 65 (mask 0), modifiersDetail 24 (mask 0)
[452727.220] detail 65 (mask 0), modifiersDetail 10 (mask 0)
[452727.220] detail 65 (mask 0), modifiersDetail 26 (mask 0)
[452727.241] detail 65 (mask 0), modifiersDetail 12 (mask 0)
[452727.241] detail 65 (mask 0), modifiersDetail 28 (mask 0)
[452727.241] detail 65 (mask 0), modifiersDetail 14 (mask 0)
[452727.241] detail 65 (mask 0), modifiersDetail 30 (mask 0)
modifiersDetail 8
это Mod1Mask
он же Alt
и т. д.
Итак, openbox
крадет комбинацию клавиш Alt-Space
.
Обратите внимание, что pid и командные строки клиентов не всегда точны; это те процессы, которые подключились к сокету домена unix Xorg, которые могут больше не существовать, если они разветвятся тем временем, а их дети унаследовали дескриптор файла сокета (. Это общая проблема с наивное злоупотребление SO_PEERCRED
«аутентификацией», о которой довольно долгая история;-))