Intereting Posts
Отключить аппаратное обеспечение ad hoc Внутренняя статистика ядра AIX для nmon: fork против exec Получите музыку от дозвукового, чтобы работать в безголовом MPD Невозможно создать файл * .o на разделе Как можно по-разному печатать буквенные символы в Bash и как они это делают? Сопоставьте шаблон и замените первый экземпляр строки после нее Определить, в каком экземпляре экрана выполняется процесс dd: несколько входных файлов Почему различия в цвете между сеансами терминала SSH в OSX? Устройства USB отсутствуют в / proc / acpi / wakeup Невозможно использовать tar для запуска архива через сжатие bzip2 Сортировка на основе поля1, field2, но сохранение поля 1 сортировки и игнорирование нулей / пробелов во 2-й сортировке Почему apt-get пытается удалить определенные пакеты, когда я устанавливаю вино? Как была определена геометрия диска (C / H / S) в таблице разделов флэш-памяти? Почему дистрибутивы EFI хотят быть одни в многозагрузочной среде?

Игнорирование события первого щелчка на dpms или пробуждении экрана

Я пытаюсь сделать функцию заставки (или гашение экрана) из пользовательского запроса, которая позволяет экрану пустить и пробуждать через пользовательский сенсорный ввод. Проблема, с которой я столкнулась, заключается в попытке обработать первое событие «щелчка» при пробуждении, так как это встроенное ПК-устройство панели, которое имеет только сенсорный экран, и пользователи просто не знают, где они нажимают, когда экран выключен ( что означает, что пользователи могут отменить и нажать те вещи, которые они не намереваются).

Я вижу, что существует существующий вопрос Xorg – игнорировать событие первого щелчка при возобновлении с экрана Blanking , о котором спрашивали около 3 лет назад, что мне интересно, есть ли какие-либо обновления. Я играл с поддержкой xset, поддерживая dpms, устанавливая различные таймауты, гашение экрана, но все заканчивается в первом касании, сразу же запуская кнопку ниже, где пользователь нажимает.

Я использую Poky 1.8 (Fido), Kernel 3.19.5 и имею полный доступ к исходному коду, если кто-либо знает какой-либо способ обработать эти события на C ++. Программа не имеет экрана блокировки и работает от имени пользователя root. Я работаю над созданием XScreensaver только для того, чтобы узнать, поможет ли это, или если это просто потерянная причина.

У меня была та же проблема (также с использованием yocto fido). Я не мог использовать предложенный ответ, потому что мне не удалось создать xscreensaver (есть способ для многих зависимостей)

Я, наконец, решил это, используя xssstart и модифицирующий slock который является экранным шкафчиком. Я назвал его clicklock

https://github.com/zpfvo/clicklock

Я также создал вилку xssstart с файлами сборки autotools для легкой кросс-компиляции (просто используйте inherit autotools в рецепте): https://github.com/zpfvo/xssstart

xssstart запускает команду, как только заставка активируется, а clicklock – это просто полноэкранное окно черного цвета, которое закрывается после первого нажатия или события ключа.

Таким образом, вы должны запустить xssstart clicklock

Это довольно старый вопрос. Однако я не буду последним, кто пытается это решить.

Короче: я нашел решение.

Я запускаю хром в режиме киоска с fluxbox как WM. Вместо того, чтобы полагаться на Xorg, чтобы скрыть экран, я использую xscreensaver только для гашения.

Это позволяет мне прослушивать изменения состояния экрана с помощью небольшого скрипта perl. http://pastebin.com/uwFsvG87

Этот скрипт переключается на другой (пустой) виртуальный рабочий стол, используя wmctrl когда экран wmctrl и снова отключается (при задержке 100 мс).

Чтобы сделать это невидимым для пользователя, я отключил панель инструментов fluxbox и установил полностью черный фон.

Он работает очень хорошо. 🙂