Заблокировать Ubuntu 24.04 после бездействия без затемнения экрана

Вопрос или проблема

Я запускаю сервер удаленного рабочего стола Sunshine, который в настоящее время зависит от kmsgrab, поэтому затемнение экрана вызывает невозможность захвата изображения. (Надеюсь, это будет решено, когда он мигрирует на порталы xdg или новый API захвата Wayland, но посмотрим!)

Это означает, что мне пришлось включить автоматический вход, установить «Затемнение экрана» / «Задержка затемнения экрана» на ‘никогда’ и отключить «Автоматическую приостановку». Однако итог таков, что нет блокировки экрана при простое, потому что автоматическая блокировка экрана связана с затемнением экрана.

Я протестировал xdg-screensaver lock, и это работает! Это активирует экран блокировки и затемняет (но не очищает) дисплей. Я могу сделать скрипт, но хотел спросить:

  • Какой лучший способ автоматически переходить на экран блокировки после 5 минут простоя без затемнения экрана?

Авто-вход – еще одна надоедливая проблема, в противном случае он не может захватить ничего, но это проблема для другого дня.

Ответ или решение

Чтобы обеспечить автоматическую блокировку экрана в Ubuntu 24.04 без его затемнения при простое, можно воспользоваться комбинацией системных настроек и пользовательских скриптов. Эта проблема становится особенно актуальной для пользователей, использующих сервер удаленного рабочего стола Sunshine, который зависит от kmsgrab. При отсутствии затемнения экрана во время простоя, не будет блокировки, что может представлять собой риск безопасности.

1. Настройки системы

Первый шаг заключается в том, чтобы убедиться, что параметры управления питанием не блокируют возможность защиты экрана. Сделайте следующее:

  1. Откройте меню "Настройки".
  2. Перейдите в раздел "Энергия".
  3. Установите "Задержка затемнения экрана" на "Никогда".
  4. Отключите "Автоматический режим сна".

Эти действия гарантируют, что экран не будет затемняться, и ваш сервер удаленного рабочего стола будет работать корректно.

2. Установка и настройка xdg-screensaver

Так как команда xdg-screensaver lock выполняет блокировку экрана без его затемнения, мы можем использовать эту утилиту для автоматизации блокировки.

Установка xdg-utils (если еще не установлено)

Откройте терминал и выполните команду:

sudo apt install xdg-utils

3. Создание скрипта для блокировки экрана

Теперь необходимо создать скрипт, который будет отслеживать простои и вызывать блокировку экрана.

Пример скрипта

Создайте файл, например lock_screen.sh в вашей домашней директории:

nano ~/lock_screen.sh

Вставьте в него следующий код:

#!/bin/bash

IDLE_TIME=300
while true; do
    if [ "$(xprintidle)" -ge "$IDLE_TIME" ]; then
        xdg-screensaver lock
    fi
    sleep 60
done

В этом скрипте IDLE_TIME задает время в секундах (в данном случае 300 секунд или 5 минут) после которого происходит блокировка. Команда xprintidle возвращает время простоя в миллисекундах, что и проверяется в цикле.

Установка прав на выполнение

Сохраните файл и выйдите из редактора. После этого установите права на выполнение:

chmod +x ~/lock_screen.sh

4. Запуск скрипта при входе в систему

Теперь вам нужно настроить запуск этого скрипта при каждой загрузке системы. Для этого вы можете использовать функцию автозагрузки GNOME.

  1. Нажмите клавишу "Super" (или "Windows") и введите "Автозагрузка приложений".
  2. В открывшемся окне выберите "Добавить".
  3. Введите имя (например, "Lock Screen Script"), а в поле команды укажите путь к вашему скрипту:
/home/your_username/lock_screen.sh

Замените your_username на ваше имя пользователя.

5. Заключение

Теперь ваш Ubuntu 24.04 будет автоматически блокироваться через 5 минут без затемнения экрана, что подходит для работы с Sunshine и kmsgrab. Этот метод обеспечивает безопасность системы, при этом позволяя использовать виртуальное рабочее пространство удаленно.

В случае возникновения вопросов или необходимости доработки скрипта, вы всегда можете обратиться к документации Ubuntu или сообществу для получения более специфической помощи.

Оцените материал
Добавить комментарий

Капча загружается...