gnome-session(3) 또는 gnome-screensaver에 활동이 있음을 어떻게 알립니까?

gnome-session(3) 또는 gnome-screensaver에 활동이 있음을 어떻게 알립니까?

화면이 잠기는 것을 원하지 않는 상황이 있습니다. (보통: 계산이 실행되는 동안 책상에서 물러나지만 방을 떠나지 않고 여전히 그것이 활성화된 이유에 집중합니다. 때로는 "완료 시 완료"되지 않도록 대기열에 더 많은 작업을 추가합니다.)

그놈 세션이나 화면 보호기가 잠기지 않도록 하는 메커니즘이 있습니까? 나는 이것을 달성하기 위한 영리한 DBUS API가 있을 것이라고 기대했지만 GNOME의 문서는 나중에 그것을 삭제할 누군가를 위해 개인 홈 디렉토리에 의존하는 것 같습니다:https://wiki.gnome.org/Projects/SessionManagement/GnomeSession#D-Bus_API404 링크https://www.gnome.org/~mccann/gnome-session/docs/gnome-session.html.

더 좋은 점은 이를 달성할 수 있는 Freedesktop 표준화된 API가 있습니까? 나는 주로 Cinnamon 세션을 처리하기 위해 훌륭한 WM을 사용하지만 주로 Gnome 세션에만 액세스할 수 있는 컴퓨터에서 이 문제가 발생합니다. 해결책.

답변1

적어도 X 아래에서는 사용할 수 있습니다xdg-screensaver해당 창이 존재하는 한 호환되는 화면 보호기를 비활성화합니다.

xdg-screensaver suspend <window-id>

가지다화면 보호기를 위한 Freedesktop D-Bus 인터페이스, 다음과 같은 것을 사용하여 호출할 수 있습니다.

dbus-send --session --dest=org.freedesktop.ScreenSaver --type=method_call --print-reply \
          /ScreenSaver org.freedesktop.ScreenSaver.Inhibit \
          string:"myapplication" string:"displaying long computations"

그러나 이는 호출자에 묶여 있기 때문에 작동하지 않습니다 dbus-send. 장기 실행 Python 스크립트에서 호출하면 트릭이 수행됩니다.

( --print-reply반환 값이 중요하기 때문에 포함되었습니다. 화면 보호기를 비활성화하는 데 사용되는 쿠키입니다.)

당신은 또한 볼 수 있습니다시스템이 잠자기/멈추는 것을 방지 - Xviewer/VLC로 수행하는 방법

관련 정보