Как отключить экран (DPMS) вместе с блокировкой сеанса в KDE?

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

Прежде всего, я знаю, что аналогичный вопрос о GNOME задается здесь: “Выключить подсветку ноутбука при блокировке экрана”.

Цель

Я хотел бы отключать экран при блокировке сессии по причинам экономии энергии.

Актуальная проблема

Блокировка экрана в Kubuntu (KDE) неизбежно запускает защиту экрана, насколько я могу видеть. Нет других опций защиты экрана, кроме ‘Пустой экран’, которая имеет черный цвет фона и почти соответствует моей цели. Она отключает экран, но не выключает экран. Подсветка экрана все равно будет включена и не будет экономить энергию.

Текущий обходной путь

Обходной путь с помощью скрипта + горячей клавиши возможен, однако, это просто обходной путь, так как он не срабатывает при всех способах блокировки сессии. Поэтому я думаю, что это должно быть сделано более элегантно, например, предоставив эту опцию в диалоговом окне конфигурации защитника экрана KDE.

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

#!/bin/bash

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
xset dpms force standby

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

Вот почему я считаю это обходным путем, а не решением. Он не работает для других способов инициирования блокировки сессии.

Мой фактический вопрос(ы)

Мне нужно модифицировать/патчить исходный код KDE?

  • Если нет, какие у меня есть варианты?
  • Если да,
    • не мог бы кто-то посоветовать, с чего начать?
    • как вы думаете, где в GUI расположена рекомендуемая опция для конфигурации?

Я использую Kubuntu 12.04 и готов обновиться до KDE 4.9 или дождаться выпуска 12.10.

Нашел способ для KDE 4 (до Ubuntu 14.10). Для современного KDE 5 см. другой ответ.

  1. Перейдите в Системные настройкиУведомления приложений и системыУправление уведомлениями.

  2. Выберите Защитник экрана в качестве источника событий

  3. Найдите и выберите Экран заблокирован

  4. добавьте эту команду к событию:

     xset dpms force off
    

enter image description here

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

Подтверждено: выполнение команды: /bin/sleep 1 ; /usr/bin/xset dpms force off в уведомлении о блокировке экрана работает для Plasmashell 5.10.

Перейдите в: Системные настройки > Уведомления > Источник события “Защитник экрана”:

Уведомления -- Системные настройки

В KDE Plasma 5.18 немного иначе, чем в комментарии.

Найдите Уведомление через Super и следуйте скриншотам ниже:

Уведомления

Уведомления - Настройки приложения

Настройка уведомлений - Модуль системных настроек

Я использовал /bin/sleep 5; /usr/bin/xset dpms force off вместо 1, но это на ваше усмотрение.

Начиная с KDE 5, большинство решений здесь больше не работают.

Вот что я нашел, что работает (по состоянию на 2016-09-28), создайте текстовый документ и скопируйте в него следующий код:

#!/bin/sh
sleep 0.5
loginctl lock-session
xset dpms force off

и затем сохраните его под именем “KDE5lockscreenanddpms.sh” Имя не имеет значения, просто убедитесь, что у вас есть .sh в конце. Затем перейдите к месту, где вы сохранили, с помощью файлового менеджера, кликните правой кнопкой мыши и откройте свойства>разрешения> и сделайте его исполняемым.

Теперь вы можете нажать на него, и он выполнит скрипт, который заблокирует ваш экран и затем через 0,5 секунды выключит ваш монитор(ы).

Вот несколько публикаций с информацией об этих командах.

KDE.org- loginctl lock-session

Linux-apps.com – sleep 0.5
xset dpms force off

Одно из возможных решений – перейти на xscreensaver. Страница man действительно содержит инструкции.

Следующее – это обзор

  1. Отключите защитник экрана KDE

    1. Меню K -> Компьютер -> Системные настройки -> Дисплей и монитор -> Защитник экрана
    2. Снимите галочку Запускать автоматически после
  2. Установите xscreensaver

    sudo apt-get install xscreensaver

  3. Создайте ~/.kde/Autostart/xscreensaver.desktop

    Добавьте в него следующие строки

    [Desktop Entry]
    Exec=xscreensaver
    Name=XScreenSaver
    Type=Application
    X-KDE-StartupNotify=false
    
  4. Замените экран блокировки KDE

    cd /usr/lib/kde4/libexec
    sudo mv kscreenlocker kscreenlocker.original
    sudo vim kscreenlocker
    

    Добавьте следующие строки в kscreenlocker

    #!/bin/sh
    xscreensaver-command -lock
    
  5. Используйте xscreensaver-demo для настройки dpms (без sudo)

    Настройте DPMS на вкладке Расширенные. Минимальный тайм-аут в режиме ожидания составляет 1 минута.

    Тем не менее, вы можете попробовать сделать его меньше, отредактировав ~/.xscreensaver после первой конфигурации. Найдите dpmsStandby: в файле.

    Не знаю, сработает ли если dpmsStandby: изменить на 0:00:00. Я тестирую на виртуальной машине, и черный экран выглядит так же.

Вам нужно другое решение, если вы используете сессию Wayland KDE (запускающую kwin_wayland).
Поскольку мы – в упомянутом сценарии – больше не используем X.Org, API X11 и так xset – сюрприз – больше не работает на сегодняшний день (так как пользователи используют все меньше и меньше сессий на основе kwin_x11).
Но, должно быть, есть какой-то метод dbus, чтобы выключить экран(ы), правильно? Правильно!

Это решение основано на принятом ответе и его актуализированной копии для KDE5.
Так что сначала ознакомьтесь с ними – если вы еще этого не сделали. Но нужная команда теперь отличается, и я был вдохновлен хорошей темой по горячей клавише выключения экрана в KDE.

Скомбинировав несколько источников информации, немного пробуя dbus viewer и изучая вызовы тата – вы должны вставить эту команду в уведомление блокировки экрана:
/bin/sleep 1 && /bin/dbus-send --session --dest=org.kde.kglobalaccel /component/org_kde_powerdevil org.kde.kglobalaccel.Component.invokeShortcut string:'Turn Off Screen'

Некоторые разъяснения по команде:

  • Команда начинается с 1-секундной задержки, потому что: событие отпускания клавиши горячей клавиши блокировки экрана может сразу снова включить экран
  • Команда qdbus устарела и не установлена во многих дистрибутивах сейчас, но dbus-send достаточно базовая и повсеместная

Также это следует перенести на Super User, или Unix & Linux.
Ubuntu не самый актуальный дистрибутив для KDE, но это применимо ко всем дистрибутивам KDE.

Более 10 лет прошло с тех пор, как я задал свой вопрос… 😅

KDE 5.27 получила функцию выключения экрана на экране блокировки при нажатии Esc. 🎉

Объявление Plasma 5.27

Экономьте электроэнергию одним нажатием клавиши: находясь на экране блокировки, нажмите клавишу Esc, чтобы выключить экран и сэкономить немного энергии.

В Plasma 6 это можно настроить в управлении питанием:

Выберите нужный профиль(и) – Сетевая адаптация, Батарея, Низкий заряд батареи.
В разделе Дисплей и яркость, где написано Выключить экран, выберите При блокировке: Немедленно.

Обычно я настраиваю нижний левый край экрана на Блокировку экрана, и с учетом этого, я выключаю монитор с помощью жеста.

enter image description here

Kde5 и XScreenSaver(5.34):
нажмите на вкладку complex Advance, затем активируйте управление энергией, установив галочку и задав минуты в выключении питания по вашему желанию (или даже используйте быстрое отключение питания).

Системные настройки / Персонализация / Light Locker (в новом меню Whisker)

На Kubuntu 14.04 просто перейдите в Системные настройки – Управление питанием – отключите затемнение экрана и экономию энергии экрана во вкладке Экономия энергии.

Всего хорошего!

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

Как отключить экран (DPMS) вместе с блокировкой сессии в KDE

Вам уже известна проблема, что блокировка экрана в Kubuntu (KDE) вызывает активацию экранной заставки, а не останавливает светодиоды экрана, что не способствует энергосбережению. Эта статья охватывает различные подходы к решению данной задачи.

Цели и Проблема

Вы хотите, чтобы при блокировке сессии экран вашего устройства автоматически отключался, что значительно улучшит его работу и сэкономит электроэнергию. Проблема в том, что встроенные функции KDE в большинстве случаев не предусматривают такого поведения.

Применяемые Решения

  1. Скрипт для блокировки и отключения экрана

    Первое и простое решение — создать оболочку скрипта. Он будет выполнять команду блокировки и отключения экрана последовательно. Ваша реализация уже выглядит неплохо:

    #!/bin/bash
    qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
    xset dpms force standby

    Этот скрипт работает, но его недостает гибкости, так как он не будет срабатывать при других способах блокировки сессии.

  2. Добавление команды в уведомления KDE

    На более новых версиях (KDE 5 и выше) существует возможность добавления пользовательских действий в систему уведомлений. Вот шаги, которые помогут вам настроить это:

    • Откройте "Системные настройки"УведомленияУправление уведомлениями.
    • Выберите «Экранная заставка» как источник событий.
    • Найдите и выберите «Экран заблокирован».
    • Добавьте следующую команду:

      /bin/sleep 1 && /usr/bin/xset dpms force off

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

  3. Использование loginctl

    В более поздних версиях KDE (например, KDE 5) также можно использовать команду loginctl для блокировки сессии. Создайте файл скрипта, как показано ранее:

    #!/bin/sh
    sleep 0.5
    loginctl lock-session
    xset dpms force off

    Не забудьте сделать файл исполняемым, выполнив команду chmod +x имя_файла.sh.

  4. Изменение настроек энергосбережения

    • Откройте "Системные настройки" → Энергосбережение и настройте параметры отключения экрана в соответствии с вашими предпочтениями.
    • Убедитесь, что вы выбираете время отключения экрана при блокировке.
  5. Использование XScreenSaver

    Если стандартные опции KDE вас не устраивают, установите xscreensaver и настройте его:

    sudo apt-get install xscreensaver

    Затем создайте .desktop файл для автозапуска в каталоге ~/.kde/Autostart/ с содержимым:

    [Desktop Entry]
    Exec=xscreensaver
    Name=XScreenSaver
    Type=Application
    X-KDE-StartupNotify=false

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

Заключение

Решение задачи энергосбережения при блокировке экрана в KDE можно достичь несколькими способами. Наиболее простым является создание скрипта для блокировки экрана и его отключения, но дополнительная настройка уведомлений также может обеспечить более универсальное решение. Рекомендуем также проверить свои настройки энергосбережения для оптимизации работы вашей системы. Надеемся, эти решения помогут вам эффективно сэкономить энергию и продлить жизнь вашему устройству.

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

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