From 1e18b85e56d98ca2daeb7adc587c28f5d653a01f Mon Sep 17 00:00:00 2001 From: lostd Date: Mon, 2 Nov 2015 03:21:41 +0200 Subject: Run screensaver after a period of idleness --- noice.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'noice.c') diff --git a/noice.c b/noice.c index ba529d6..18577d3 100644 --- a/noice.c +++ b/noice.c @@ -82,6 +82,7 @@ struct entry *dents; int n, cur; char *path, *oldpath; char *fltr; +int idle; /* * Layout: @@ -259,6 +260,7 @@ initcurses(void) intrflush(stdscr, FALSE); keypad(stdscr, TRUE); curs_set(FALSE); /* Hide cursor */ + timeout(1000); /* One second */ } void @@ -314,6 +316,10 @@ nextsel(char **run) int c, i; c = getch(); + if (c == -1) + idle++; + else + idle = 0; for (i = 0; i < LEN(bindings); i++) if (c == bindings[i].sym) { @@ -879,6 +885,13 @@ moretyping: initcurses(); break; } + /* Screensaver */ + if (idletimeout != 0 && idle == idletimeout) { + idle = 0; + exitcurses(); + spawn(idlecmd, NULL, NULL); + initcurses(); + } } } -- cgit v1.2.3-70-g09d2