From: Gereon Kremer Date: Sat, 5 Jan 2013 11:47:02 +0000 (+0100) Subject: make refreshs align with minutes X-Git-Tag: 2.7~16 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=11757b8105ebebba40c3a94c5d6c5431cc58b3d1;p=i3%2Fi3status make refreshs align with minutes --- diff --git a/i3status.c b/i3status.c index 87a793b..af62a7c 100644 --- a/i3status.c +++ b/i3status.c @@ -515,10 +515,11 @@ int main(int argc, char *argv[]) { /* To provide updates on every full second (as good as possible) * we don’t use sleep(interval) but we sleep until the next * second (with microsecond precision) plus (interval-1) - * seconds. */ + * seconds. We also align to 60 seconds modulo interval such + * that we start with :00 on every new minute. */ struct timeval current_timeval; gettimeofday(¤t_timeval, NULL); - struct timespec ts = {interval - 1, (10e5 - current_timeval.tv_usec) * 1000}; + struct timespec ts = {interval - 1 - (current_timeval.tv_sec % interval), (10e5 - current_timeval.tv_usec) * 1000}; nanosleep(&ts, NULL); } }