Отключение экрана при получении входных данных
Мне нужно запустить набор ( графических ) тестов с отключенным экраном . Следующая команда не сработала:
xset dpms force off
Потому что любой ввод с клавиатуры/мыши снова включит экран . Другой вариант был следующий :
xrandr --output eDP-1 --off
Это отключает экран на секунду , а затем вызывает следующую ошибку сегментации :
gnome-shell[25737]: segfault at 8 ip 00007f3d02ef9210 sp 00007ffeee4e1fd8 error 4 in libmutter-2.so.0.0.0[7f3d02e99000+156000]
Как можно решить проблему ? Есть ли другая альтернатива на уровне пользователя/ядра?
ОБНОВЛЯТЬ:
Выход дляxinput --list
показано ниже:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=15 [slave pointer (2)]
⎜ ↳ USBest Technology SiS HID Touch Controller id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Asus Wireless Radio Control id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Video Bus id=9 [slave keyboard (3)]
↳ Sleep Button id=10 [slave keyboard (3)]
↳ USB2.0 HD UVC WebCam: USB2.0 HD id=12 [slave keyboard (3)]
↳ Asus WMI hotkeys id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
PS: Этот вопрос также задается на веб-сайте Unix StackExchange и в списке рассылки Xorg .
1 ответ
Вы можете отключить ввод с помощью мыши и клавиатуры, используяxinput --list
чтобы перечислить устройства ввода по имени и идентификатору, а затем использоватьxinput --disable device-or-id
для каждого реального устройства с мышью и клавиатурой. Чтобы отменить использование--enable
.
Альтернативно вы можете использоватьsudo evtest --grab /dev/input/eventN &
где N — номер устройства ввода. Захват длится до тех пор, пока процесс не будет прерван.
Еще одна вещь, которую стоит попробовать, — это включить экран на X-сервере, а затем использоватьddccontrol
для связи напрямую с монитором по шине DDC I2C. Если монитор распознан, можно дать команду на его выключение. Предположительно, Xserver не будет пытаться включить его, если предполагает, что он все еще включен.