Gnome3
如何告訴 gnome-session(3) 或 gnome-screensaver 有活動?
在某些情況下,我不希望我的螢幕鎖定。(通常情況下:當計算正在執行時,我會離開辦公桌,但我不會離開房間並且仍然關注它為什麼處於活動狀態;有時,我會將更多任務添加到隊列中,所以它不是“完成後完成”)
是否有機制告訴 GNOME 會話或 ~ 螢幕保護程序不要鎖定?我期待有一個聰明的 DBUS API,但 GNOME 的文件似乎依賴於刪除它的人的私人主目錄:https ://wiki.gnome.org/Projects/SessionManagement/GnomeSession#D-Bus_API連結到 404 https://www.gnome.org/~mccann/gnome-session/docs/gnome-session.html。
更好的是:是否有用於此的 Freedesktop 標準化 API?我主要使用很棒的 WM 處理 Cinnamon 會話,但我遇到的這個問題主要是在我只能訪問 Gnome 會話的機器上;但是,如果有一個萬能的解決方案,我會非常喜歡。
至少在 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
包含在內是因為返回值很重要——它是一個用於取消禁止螢幕保護程序的 cookie。)