Одна вещь, которая остается неизменной при переключении с VT на X11 и обратно, — это общая подсистема обработки устройств ввода Linux «низкого -уровня». Примеры на C есть в Linux USB Input Subsystem и , часть 2 в Linux Journal. Ваша система может иметь пакет библиотеки Python python -evdev , чтобы упростить эту задачу.
Чтобы проверить, что возможно, evtest
можно использовать для простого вывода событий на заданное устройство ввода, и вы можете отслеживать состояние интересующих вас клавиш с помощью скрипта awk
или аналогичного, и получать для выполнения команд chvt
.
Обновление :Я перезагрузился, и оказалось, что трюк «удалить всех возможных виновников» застрял и сработал:
rm -rf /usr/bin/xdg-screensaver /usr/lib/python3.6/site-packages/orca/scripts/apps/gnome-screensaver-dialog /usr/lib64/libxcb-screensaver* /usr/lib64/pkgconfig/xcb-screensaver* /usr/lib64/totem/plugins/screensaver /usr/libexec/gsd-screensaver-proxy
Не элегантно, но проблема решена...
Я также разместил отчет об ошибке в настройках gdm, потому что он поддерживает эту настройку:-
но сам gdm не соблюдает его, и нет возможности изменить настройки самого gdm (это пользователь, в которого вы не можете войти как ), поэтому gdm должен уважать настройки пользователя, который его породил (root ).
Я предлагаю установить его непосредственно в dconf db,:
Создайте следующий файл конфигурации:/etc/dconf/db/local.d/01-centos-event-settings
[org/gnome/desktop/session]
idle-delay=uint32 0
Обновление базы данных :обновление dconf
Проверьте, установлено ли новое значение:
gsettings get org.gnome.desktop.session idle-delay
Также убедитесь, что selinux находится в разрешительном режиме.