Как управлять настройкой «Энергосбережение экрана» в KDE через командную строку?

Проблема

Я ищу то, что необходимо для изменения состояния параметра «Энергосбережение экрана» в KDE из командной строки.

В настоящее время я делаю это графически одним из двух способов:

  • Системные настройки -> Управление питанием -> Энергосбережение -> Энергосбережение экрана
  • Виджет батареи и яркости -> Включить управление питанием

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

Что я пробовал

Я искал в своем каталоге ~/.configследующий grep:

grep -rnis -e "power" -e "energy" -e "saving" ~/.config/{k,plasma}*

Я искал любое упоминание слова «мощность», «энергия» или «сбережение» в том, что могло быть связано конкретно с KDE или Plasma.

Я получаю следующие обращения, но ничего не меняется, когда я переключаю настройку «Энергосбережение экрана».

/home/joe/.config/kglobalshortcutsrc:290:[org_kde_powerdevil]
/home/joe/.config/kglobalshortcutsrc:296:PowerOff=Power Off,Power Off,Power Off
/home/joe/.config/kglobalshortcutsrc:299:_k_friendly_name=Power Management
/home/joe/.config/ksmserverrc:30:program4=/usr/lib/x86_64-linux-gnu/libexec/org_kde_powerdevil
/home/joe/.config/ksmserverrc:38:restartCommand4=/usr/lib/x86_64-linux-gnu/libexec/org_kde_powerdevil,-session,<uuid>
/home/joe/.config/plasmashellrc:40:pluginWhiteList=services,desktopsessions,PowerDevil,shell,bookmarks,baloosearch,locations

Это то, чем на самом деле управляет KDE? Или KDE просто потенциально разгружает этот вызов PowerDevil?

Для справки

  • Плазменная версия KDE: 5.12.9
  • KDE Frameworks Version 5.47.0
0
15.06.2020, 21:59
2 ответа

Другое решение, которое я нашел, заключалось в редактировании файла $HOME/.config/powermanagementprofilesrc. Удалить

[AC][DPMSControl]
idleTime=600

Я сделал это с sed так

sed -i "/\[AC\]\[DPMSControl\]/,+2d" $HOME/.config/powermanagementprofilesrc

затем позвоните qdbus org.freedesktop.PowerManagement /org/kde/Solid/PowerManagement org.kde.Solid.PowerManagement.reparseConfigurationперезагрузить конфиг

Если вам нужно повторно активировать его, снова добавьте строки и запустите qdbus с теми же параметрами

1
18.03.2021, 23:27

Для тех, кто сталкивался с этим, я понял это, но это было далеко не так, как я ожидал. Это можно контролировать вручную с помощью вызова qdbus.

Чтобы приостановить «Энергосбережение экрана»:

dbus-send --print-reply \
--dest=org.freedesktop.PowerManagement.Inhibit \
/org/freedesktop/PowerManagement/Inhibit \
org.freedesktop.PowerManagement.Inhibit.Inhibit \
string:"Application Name" \
string:"Reason"

, который даст ответ типа

method return time=1592250463.638616 sender=:1.54 -> destination=:1.574 serial=4527 reply_serial=2
   uint32 <id>

Это uint32 <id>то, что нам нужно для повторного -включения этой настройки, которую можно назвать таковой:

dbus-send \
--dest=org.freedesktop.PowerManagement.Inhibit \
/org/freedesktop/PowerManagement/Inhibit \
org.freedesktop.PowerManagement.Inhibit.UnInhibit \
uint32:<id>
0
18.03.2021, 23:27

Теги

Похожие вопросы