不活动后在控制台程序之上运行屏幕保护程序:如何监视输入?

不活动后在控制台程序之上运行屏幕保护程序:如何监视输入?

我正在实现一个屏幕保护程序系统,它将等待用户在 tty 上输入,如果没有收到任何输入,则会播放屏幕保护程序,直到收到输入。

我会怎样有效率的点击 tty 的用户输入(例如/dev/pts/1

提前致谢。

答案1

所以,这实际上主要是关于 PTY,而不是标准输入:运行进程中的按键通常不是标准输入!

因此,您需要的是一个伪 TTY 模拟器,它既能处理输入,又能保留一个计时器,记录屏幕上没有发生任何事情的时间。

tmux可以做到这一点。安装tmux,并创建一个tmux.confin ~/.config/tmux,包含(至少)以下内容(60 s 屏幕保护程序延迟)

set -g lock-command "the program you want to be screensaver. It has to quit when a key is pressed, but that's your problem to implement"
set -g lock-after-time 60

然后你可以运行你的“主”程序

tmux new yourprogram

(或者像往常一样使用 tmux,参见大量tmux 教程

使用reptyr您可以将已有的程序迁移到tmux会话中;还没有尝试不活动检测是否仍然有效。

相关内容