我很快将不得不将整个计算机实验室(大约 50 台 PC)从 Windows 7 迁移到 Ubuntu 14.04 LTS。由于它是一所大学,99% 的时间(如果不是 100%)它将被学生使用。没有用户帐户和凭据的中央数据库,因此每台 PC 将只有两个帐户,admin并且guest,后者配置为自动登录(除了根据本教程进行一些自定义)。
当电脑打开,来宾帐户自动登录时,窗口管理器加载后显示的第一件事是这个对话框:

但是,有两个问题:
因此,考虑到这种情况,我想要实现的是有一个与此非常相似的对话框(但具有不同的文本,由我设置)在计算机不使用时弹出,例如 15 分钟。(对于这个问题,我们假设“未使用”意味着没有键盘或鼠标活动)。
我已被定向到 ubuntu 如何在暂停前确定不活动? 以及 脚本如何检测用户的空闲时间? 并使用 ruby 或 sheel 脚本,但我不知道如何编码。
有没有更简单的方法来实现我的需要?
我正在尝试使用xprintidleX (Unity) 空闲时间,以便我可以在一段时间后让我的显示器进入睡眠状态。(我必须使用,xset dpms force off因为在使用正常的 Ubuntu 电源/挂起设置时我的显示器不会重新启动。不同的问题......)但xprintidle无论我是否使用我的机器,都会每 30 秒重置为 0 毫秒。即,无论我是移动鼠标/点击/滚动还是在键盘上打字。我怀疑有什么事情导致 Unity 认为我没有闲着,但我不知道那可能是什么。
这是显示问题的输出:
x-pc-linux% while [[ $(xprintidle) -lt 60000 ]]; do
echo "$(date +%T) $(xprintidle)" && sleep 1;
done
13:24:47 12
13:24:48 917
13:24:49 1924
13:24:50 2933
13:24:51 3940
13:24:52 4946
13:24:53 5955
13:24:54 6963
13:24:55 7969
13:24:56 8976
13:24:57 9982
13:24:58 10990
.
. # snip
.
13:25:08 21061
13:25:09 22069
13:25:10 23078
13:25:11 24085
13:25:12 342
13:25:13 1350
13:25:14 2358 …Run Code Online (Sandbox Code Playgroud)