如何检查 Linux 控制台屏幕保护程序是否黑屏
有没有办法以编程方式(通过 ioctl() 等)或通过读取 /sys、/proc 或 /dev 中的文件)检查屏幕是否已被 Linux 控制台屏幕保护程序清空?
谢谢并致以最诚挚的问候,
冈特
is there a way to check programmatically (via ioctl(), etc.) or by reading a file in /sys, /proc or /dev) whether the screen has been blanked by the Linux console screensaver?
Thanks and best regards,
Günter
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
好的,检查了 xset 源代码。相关的代码部分是
为了以防万一其他人需要这个;-)
Okay, checked the xset source code. The relevant code parts are
Just in case anyone else needs this ;-)
您可以使用
DISPLAY
设置来解析xset q
的输出,但这并不漂亮。You can parse the output of
xset q
withDISPLAY
set, but it's not pretty.我使用 ctypes 在 Python 中对 Günter 的代码进行了等效实现。
调用示例位于我的github上。
I made an equivalent implementation of Günter's code in Python with ctypes.
Calling sample is on my github.
我已经很久没有做过任何桌面开发了,但记忆告诉我,大多数 Linux 屏幕保护程序都是由 xscreensaver 执行的 - 可能会检查进程是否正在运行,或者检查其源代码以查看是否设置了任何系统状态,或者在项目邮件列表上询问会产生一些结果。
当然,KDE 和 Gnome 现在可能有单独的屏幕保护程序实现 - 不幸的是,Linux GUI 几乎没有统一性......
I haven't done any desktop development in ages, but memory tells me that most linux screensavers were being executed by xscreensaver - maybe checking whether the process is running, or going through its source-code to see for any system-state being set, or asking on the project maillist would yield some results.
Of course KDE and Gnome might have separate screensaver implementations by now - there is very little uniformity when it comes to linux GUIs, unfortunately...
我正在使用此脚本来读取 DPMS 信息。效果很好!它是用 PHP 编写的,但您可以看到它是如何工作的。
I'm using this script to read DPMS info. It works great! Its written in PHP, but you can see the idea how it works.