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