27 linux keyboard mouse android-activity
我需要一种方法来检测Linux上的鼠标/键盘活动.类似于任何IM程序的东西.如果没有检测到任何活动,例如5分钟,它会将您的IM状态设置为"我现在不在这里".
对此有任何帮助表示赞赏.
谢谢.
ros*_*sch 30
或者只需使用xprintidle返回空闲时间的命令(以毫秒为单位).
它已经为基于debian的系统打包.(源代码在原始网站dtek.chalmers.se/~henoch上不再可用,但你可以在packages.ubuntu.com上获得)
Gil*_*not 18
完整的c解决方案:(将整个代码剪切并粘贴到终端中)
cat>/tmp/idletime.c<<EOF
#include <time.h>
#include <stdio.h>
#include <unistd.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/extensions/scrnsaver.h>
int GetIdleTime () {
time_t idle_time;
static XScreenSaverInfo *mit_info;
Display *display;
int screen;
mit_info = XScreenSaverAllocInfo();
if((display=XOpenDisplay(NULL)) == NULL) { return(-1); }
screen = DefaultScreen(display);
XScreenSaverQueryInfo(display, RootWindow(display,screen), mit_info);
idle_time = (mit_info->idle) / 1000;
XFree(mit_info);
XCloseDisplay(display);
return idle_time;
}
int main() {
printf("%d\n", GetIdleTime());
return 0;
}
EOF
gcc -Wall /tmp/idletime.c -o /tmp/idletime -L/usr/X11R6/lib/ -lX11 -lXext -lXss
DISPLAY=:0 /tmp/idletime
Run Code Online (Sandbox Code Playgroud)
(主要部分来自X11 :: IdleTime perl模块)
who -u -H尝试在命令行执行。它会告诉您谁登录了以及他们闲置了多长时间。至少用户登录到一个终端;我认为它在 X 中根本不起作用。无论如何,有了这些信息,您就可以判断谁闲着或不闲着,并采取适当的行动。
如果您在 X 中,您可以创建一个脚本来作为屏幕保护程序或类似的东西运行。