Отключение экрана при получении входных данных

Мне нужно запустить набор ( графических ) тестов с отключенным экраном . Следующая команда не сработала:

      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 не будет пытаться включить его, если предполагает, что он все еще включен.

Другие вопросы по тегам