Vague Clock Screensaver

Vague Clock Screensaver
Vague Clock Screensaver

I get it, it’s 2025 and nobody uses a screensaver anymore, we quite rightly prefer to put monitors to sleep with power management options when locking them – and we absolutely should be locking monitors when not in use. But…

I’ve had this idea for a vague clock for some time; I’m sure I saw something similar once, working mechanically, and it stuck with me. I can’t help but feel it was a remnant of late 20th century Berlin, but I’m probably bombarding my head with the Mengenlehreuhr, Clock of Flowing Time or the Urania World Clock – what’s the deal with Berlin and weird timepieces? As per usual, I digress; suffice it to say that I have an interest in odd ways of representing the time – I’d adore a genuine Nixie Tube clock, and am tempted by one of the more artistic text-based wall clocks if I find one at a sensible size, or if the Vestabord were to be released in a more home-oriented size, I’d totally take a look. It’s this odd mixture of old and (at the time) new, analogue and digital, a modernity that has passed – I find it very intriguing alongside movements such as Googie and Moderne, a desire for a nostalgia that isn’t even mine.

And there’s that digression again. Clocks, I guess people usually strive towards precision, whether it be the movements within watches or the calculated measurements used within an atomic clock – but I’ve deliberately gone vague. Does it matter to me what the exact time is, or do I just want to know the time of day? My grandfather, being a watchmaker and member of the British Horological Institute, would be spinning in his grave, but I have gone for the latter. I’ve implemented this a few times previously, as web app, a JavaScript desktop widget, but the latest incarnation is as a Windows screensaver.

An odd throwback to one of my first commercial apps from 1998: a Visual Basic (a language I had to support until 2021) countdown screensaver for opening times for a bar in Crawley (now a Chiquito “restaurant”) – a project that was in a time before commercial Internet, so distributed on 1.44MB floppy disk, required graphics that were using a lot of the space, an installer, etc – really gave me some interesting challenges around optimisation and support. It also came with a voucher for a free drink (worth up to £3.50) – which I shall assume is no longer valid.

Now in 2025, those challenges don’t really exist, but I still am aware of the lessons they provided and am mindful of optimisation and distribution – funny how old technology problems still hold value. Anyhow, it seems seems that the prevailing method for creating a screensaver in Visual Studio is a C# WinForms exe, renamed to scr. – I remembered much of the process but leant pretty hard on this reference. I have deliberately targeted Windows 10 and upwards (on an x64 platform) for distribution, because, again it’s 2025, but I believe that the code would hold true on lower versions and other platforms; I see nothing specific to my targeting within the code – just the compilation and packaging. I have added a settings screen allowing the user to configure typefaces, colours, update frequency and movement frequency (a still screensaver is not a screensaver, quite the opposite). It runs happily on multiple monitors and any resolution.

The installer was a bit of a chore; Visual Studio outputs a WinForms executable naturally as an exe file, but screensavers are scr files – sure they are the same thing but with an extension change, but to automatically package this up, a post-built action was needed to facilitate the renaming. I had previously built an installer that set the screensaver as the active screensaver, as this is outside the scope of the stock Visual Studio method – but I figured that anyone installing a screensaver will know how to accomplish this, so was able to simplify the product. So I reverted back to a stock installer with the output scr file dropped into C:\Windows\SysWOW64 (as is necessary for the screensaver to be registered).

Tip: If you don’t know – just press [START] and type Change screen saver to get the required dialogue.

I’ll probably tinker with this more as time goes by, an am considering code re-use and refactoring the actual text calculation aspect into an API that could be used by other projects. But for now, the code is up at Github.com/NLouch/Vague-Clock-Screensaver and the compiled installer is available below:

Vague.Clock.Screensaver.Installer.msi

Leave a Reply

Your email address will not be published. Required fields are marked *