MagicMirror² v2.13.0 is available! For more information about this release, check out this topic.


  • Project Sponsor Module Developer

    This module behaves like a screensaver and displays a full-screen word clock on your mirror when it is idle.


    This is very similar to the existing MMM-TextClock module. It is not a fork – the underlying code is quite different – and my reasons for recreating this module are as follows:

    • I wanted my word clock to be full screen
    • I wanted my word clock to act like a screensaver, where after a certian amount of time, the clock appears, and is cancelled upon notification from the PIR Sensor module.
    • My English layout is slightly different, in that the clock reads: “It’s half past one” instead of “It’s half two”
    • Adding other layouts is fairly trivial, and adding multiple layouts for any given langauge is possible (e.g.: An English language version for tall HDTV resolution, another for HDTV wide, a third for German HDTV tall, etc).
    • Layouts are not restricted to the same amount of lines or even the same amount of words per line as the English version. This means that translations or even other layouts in the same language do not need to follow the same pattern. Useful when the order of words in one language does not work in another.
    • Each layout name is added to the DOM wrapper as a class name so styling each layout specifically is possible while maintaining style inheritance from the defaults where applicable.
    • It’s fun to learn new things!

    Currently supports English, French, German and Dutch. Defining more is pretty easy, so with all your help we could have many languages supported.

    It should be noted that this requires the use of Paviro’s MMM-PIR-Sensor module for it to work properly. Cancelling the display of the clock is triggered by the USER_PRESENCE notification that is dispatched when motion is detected. This means it will be at odds with anyone using the PIR Sensor module to turn the display on and off. There are a few ways this can be dealt with:

    • Set your powerSavingDelay config in MMM-PIR-Sensor to something longer than the showClockTimeOut value in this module. This lets the clock be displayed after an amount of time of no motion detection, then the screen gets turned off after a longer amount of time. Detection of motion cancels the clock AND turns the screen back on.
    • Turn off powerSaving in MMM-PIR-Sensor altogether and instead use a cron job (independent of MM) to turn the screen completely off during late-night / early morning hours. This was the route that I took, as I really like the clock display.
    • Don’t bother with power management at all! Electricity bill be damned!!!

    N.B. I have not tested with the Profile Switcher module, but I expect it should work just fine. Be sure to add the classes default everyone to this module so that it is never hidden by the profile switcher.

    Change Log


    • Simplified Chinese, Japanese and Korean layouts added


    • Danish layout added
    • Update to Swiss German layout
    • Code refactoring


    • Swiss German layout added
    • German layout updated
    • Now supports picking a random language each time the clock updates
    • NOTE This update requires a change to to how the module is configured. See the README for details.


    • German layouts (thanks to @clubbi , @willfri , and @pjkoeleman for their help)
    • French layouts
    • Support for variations of words based on context
    • Improved typography


    • Replaced ‘Lobster’ font (i.e.: the script font for highlighted words) with Google Fonts version to support accented characters.


    • Layouts abstracted into separate files
    • English and Dutch support (Thanks to @pjkoeleman for help with translation)


    • Initial build, English only

Log in to reply