LINUX.ORG.RU

А как в KDE5 не блокировать экран через DBus?

 , , ,


0

2

Пишу скрипт для KDE 5 на замену lightsOn (который и раньше-то не работал в связи с выпилом из Хрома NPAPI).

Научился определять полноэкранные приложения и вопрос остался за малым - как временно отключать блокировщик экрана?

Раньше, если я все правильно понимаю, можно было использовать qdbus org.freedesktop.ScreenSaver /ScreenSaver SimulateUserActivity но в KDE5 почему-то не работает.

Пробовал трейсить VLC - там используется org.kde.Solid.PowerManagement.PolicyAgent /org/freedesktop/PowerManagement/Inhibit. Но у меня не работает.

org.freedesktop.PowerManagement.Inhibit.Inhibit отдает куку, но при вызове метода org.freedesktop.PowerManagement.Inhibit.HasInhibit() говорит false.

★★

Гуглится, что в kde 5 нужно дёргать GetSessionIdleTime и такой код:

    idle_time=qdbus org.kde.screensaver /ScreenSaver GetSessionIdleTime
    if [ "$idle_time" -gt 50 ]; then
      qdbus org.kde.screensaver /ScreenSaver SimulateUserActivity
    fi

mky ★★★★★
()
Ответ на: комментарий от SaBo

GitHub. Но пока глючит сильно - нет времени дебажить.

SaBo ★★
() автор топика
Ответ на: комментарий от mky

Гуглится, что в kde 5 нужно дёргать GetSessionIdleTime

А как именно ты это нагуглил, каким запросом? Я когда искал, не нашёл.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Просто в лоб дал такой запрос:

"SimulateUserActivity" KDE5
В выдаче, сразу после этой темы на ЛОРе, было https://forum.kde.org/viewtopic.php?f=66&t=126392 (подтверждение, что в KDE5 есть такая проблема), а следующией ссылкой https://raw.githubusercontent.com/i-rinat/freshplayerplugin/master/data/fresh... . Там было:
# method org.freedesktop.ScreenSaver.SimulateUserActivity() in KDE 5 seems
# to have no effect unless GetSessionIdleTime() called afterwards. Set
# parameter to 1 to call latter

Дальше я дал запрос:

"KDE5" "GetSessionIdleTime" ScreenSaver
И не получив в нём нужного, убрал из него ″5″, на 5-ом месте было http://superuser.com:8080/suggested-edits/63225 , посмотрел, вроде код делает что надо и запостил.

Я когда искал, не нашёл.

Судя по тому, что FreshPlayerPlugin твоё, как-то ты нашёл информацию про ″GetSessionIdleTime″.

mky ★★★★★
()
Ответ на: комментарий от mky

как-то ты нашёл информацию про

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

Уже не первый раз так. Ищешь-ищешь, затем решаешь сам или всё-таки находишь. А потом, уже зная нужные ключевые слова, это можно нагуглить на раз-два. Вся соль в том, как прийти к нужным словам ещё на этапе первоначального поиска. Это я и хочу выяснить.

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.