Hi,
I am looking at a way to auto-logout some workstation on inactivity.
xidle(1) seems great for such purpose. But I didn't found a way to just
use timeout and not also an active area (a corner where the program is
launched if pointer stays inside few seconds).
The following diff tries to implement a way to disable the active area
without being too intrusive.
For that, I used the `delay' parameter ("Specify the number of seconds
the pointer has to be in the given position before running the
program."), to allow value -1, and make it to discard the event.
Does it make sens ? Or any proposition to more straighfull approch ?
Thanks.
--
Sebastien Marie
Index: xidle.1
===================================================================
RCS file: /cvs/xenocara/app/xidle/xidle.1,v
retrieving revision 1.4
diff -u -p -r1.4 xidle.1
--- xidle.1 9 Nov 2017 19:13:03 -0000 1.4
+++ xidle.1 16 Jul 2018 09:25:40 -0000
@@ -63,6 +63,7 @@ The default is 2 pixels.
Specify the number of seconds the pointer has to be in the given position
before running the program.
The default is 2 seconds.
+The value -1 makes the activation of program on position to be disabled.
.It Fl display Ar display
This argument allows you to specify the server to connect to; see
.Xr X 7 .
Index: xidle.c
===================================================================
RCS file: /cvs/xenocara/app/xidle/xidle.c,v
retrieving revision 1.5
diff -u -p -r1.5 xidle.c
--- xidle.c 20 Aug 2017 16:43:25 -0000 1.5
+++ xidle.c 16 Jul 2018 09:23:18 -0000
@@ -303,7 +303,7 @@ fail: errx(1, "illegal value -- %s", (
}
if (getres(&value, rdb, "delay", "Delay")) {
*delay = strtol((char *)value.addr, &p, 10);
- if (*p || *delay < 0)
+ if (*p || *delay < -1)
goto fail;
}
if (getres(&value, rdb, "position", "Position")) {
@@ -414,6 +414,9 @@ main(int argc, char **argv)
break;
case EnterNotify:
+ if (delay == -1)
+ break;
+
sleep(delay);
XQueryPointer(x.dpy, x.win, &ev.xcrossing.root,