From eca2774bae841168afff8a435b5f8341cbdd6eb7 Mon Sep 17 00:00:00 2001 From: Hayden Hamilton Date: Wed, 3 Jun 2026 16:33:56 +0100 Subject: Alter sleep behaviour for date() // Previously this status would sleep all the way until the next day. // This worked fine until the device entered sleep/hibernation // // Therefore a limit was added. Not the ideal solution, // as if the device is woken within config.MaxSleep, // then the date will not update until some extra time has elapsed. // // TODO: a better solution if (until > config.MaxSleep) { until = config.MaxSleep } time.Sleep(until) --- config/config.go | 8 +++++++- status/04-date.go | 18 +++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/config/config.go b/config/config.go index 6b52e8c..9487d30 100644 --- a/config/config.go +++ b/config/config.go @@ -1,6 +1,9 @@ package config // import "hhvn.uk/hbspbar/config" -import "image/color" +import ( + "image/color" + "time" +) // Bar height var H uint = 17 @@ -39,3 +42,6 @@ var FontYPad int = 1 // Space between status elements var StatusPad int = 15 + +// Maximum time.Sleep() allowed +var MaxSleep = time.Minute * 15 diff --git a/status/04-date.go b/status/04-date.go index cd8f7f2..fba68d6 100644 --- a/status/04-date.go +++ b/status/04-date.go @@ -17,7 +17,23 @@ func date(b *Block) error { // Sleep til the next day comes around tmrw := time.Now().AddDate(0, 0, 1) tmrw = time.Date(tmrw.Year(), tmrw.Month(), tmrw.Day(), 0, 0, 0, 0, time.Local) - time.Sleep(time.Until(tmrw)) + + var until time.Duration + until = time.Until(tmrw) + + // Previously this status would sleep all the way until the next day. + // This worked fine until the device entered sleep/hibernation + // + // Therefore a limit was added. Not the ideal solution, + // as if the device is woken within config.MaxSleep, + // then the date will not update until some extra time has elapsed. + // + // TODO: a better solution + if (until > config.MaxSleep) { + until = config.MaxSleep + } + + time.Sleep(until) } _, err := b.drawText(0, config.Fg, time.Now().Local().Format("Mon 02/01")) -- cgit v1.2.3