On Mon, Jul 16, 2018 at 11:37:41AM +0200, Sebastien Marie wrote: > Hi, > > I am looking at a way to auto-logout some workstation on inactivity.
ping. no problem if there is no interest for such thing in xidle, I will write a dedicated app for that. > 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, -- Sebastien Marie