MagicMirror² v2.4.1 is available! For more information about this release, check out this topic.
Please read the release notes carefully since this update requires adjustments to your Raspberry Pi configuration!

Different looks based on browser / user-agent

  • I do realize that this is probably off-topic for the bulk of the users.

    I intend to run multiple mirrors off of one server instance. I will have one “complete” Magic Mirror installation (including physical mirror) but want to show the content on several other screens, not all of them mirrors!

    There is a very simple way of doing this and that is selecting showed content based on browser / user-agent strings. In my case I will use the Midori browser (and maybe Chromecast) for mirrors. All my other devices will use Chrome. So anything with Chrome in the user-agent will be shown a custom theme while the rest will show the “standard” theme.

    To accomplish this the user-agent needs to be saved so that the CSS can select theme based on it. I did a quick hack of index.html in the MagicMirror folder. I added the following right after the ****-tag:


    I can then use custom.css to define a different look based on the above. In my case I wanted to have something other than a black background, i.e. a different background image. To get this I added the following in custom.css:

    body[data-useragent*="Chrome"] {
      background-image: url("background.jpg");

    This works great (I had to put the background.jpg in the css folder but I am sure there is another way).

    Now I just need to figure out how to set values in config.js to customize the modules shown. Any suggestions?

  • Interesting so following, as have in mind similar plans but feeding some relevant info from our Ai down to specific screens.

    Do keep me updated, as a server set up and API per config mirror may be the way forward.