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

Complete Options List for config.js



  • Can we please get a completed config.js file? With all of the editable variables that can be applied by the file?
    This goes out to the 3rd party module creators out there too.

    I can’t tell you how many times I’ve added a new module (or just messed with an included module), modified it’s configuration, and get the old “Please create a config file” screen. It would be so much easier to just change the “variable” than possibly forget an “,” and throw the whole code right out the window.

    I think this would eliminate a lot of the topics found in the forum with people having difficulty.

    Who’s with me?


  • Project Sponsor Module Developer

    @nimbus78

    Yes, and no.

    I found this site to be a fantastic inspiration (and opportunity) to learn the basics of coding. Yes, there is a learning curve when you start out. I struggled painfully in the beginning and I still do with more complex code. Yes, it would be convenient if every readme file were perfectly written for the novice but you are expected to do some of the work, even if that means finding errors in readme files. In which case, you can post an issue at the repo or a pull request that fixes the problem. Boom! You’re contributing.

    There are some wonderful tutorials on this forum (if I do say so myself) that contain very useful information.

    Many module developers come and go so fixing every issue in every module readme is not even possible. The developers that are here are fantastic at supporting their modules, other modules and helping in general.

    If you come across my posts that are older than 2 years ago you will see that I started here with no knowledge of coding. A bored old man looking for something interesting to do. Likely asking the same questions that you are asking. The help I received (and still receive) was/is outstanding.

    So, hang in there. Ask. Learn. Contribute. Have fun!


  • Project Sponsor

    @nimbus78 this is why you read the readme file on github for each module.

    There isn’t any standard variables, most modules have their own options that can be configured. And it isn’t really an option to include variables just because, when they are not really used.

    The naming of the variables (config options) is totally up to the creator of the module.

    Some modules have update timers, some don’t, som modules have url variables some don’t. Etc etc



  • @broberg that’s exactly why I suggested it. The biggest problem I have, is trying to add a configuration that doesn’t have an example. 9 times out of ten I get it wrong and it’s usually because I put a comma where there shouldn’t be one or don’t put one where it should. Or put the variable in quotations when it shouldn’t be. I try to follow the format of the pre installed modules, but those don’t seem to have a consistent format either. Some have a comma at the end of a line or after a }. Some don’t.


  • Module Developer

    @nimbus78
    Anyway, All configuration files have their own structure and syntax. CONFIG.SYS of DOS, Windows INI files, OSX .plistetc, including YAML and JSON.
    While user need to write and modify it by manual, the syntax failure could not be escapable, even with “COMPLETED” config file. PPL will make a mistake absolutely because just it is possible.
    I think you’d better to use MMM-Remote-Control to maintain your config.js. With it, you can change only values without bothering you about syntax.



  • @Sean and we need to keep the tools available and visible.

    Mm provides tools.

    npm run check:config


  • Module Developer

    @sdetweil
    For myself, I don’t like current npm run check:config. It has an old-schooled (ES5) javascript grammar, so sometimes it cannot understand modern style(ES6) js.
    I recommend Esprima, online js validator (http://esprima.org/demo/validate.html).


  • Project Sponsor

    @nimbus78

    The issues you state isn’t an issue with what variables the different modules have, the issue you have can easily be remedied with a introduction class to javascript. (But I understand, not everyone will have the will or energy to get a grip on it just to get a config file right).

    And I also understand that some modules aren’t really made for all to use, giving the lack of information for some.
    Using the Readme file from the stock modules is good basis for a readme-template to apply to the modules one makes, and maybe it’s here we should put in more effort to clean things up, but again most 3rd-party modules are made of other users so the support (if any) is thereafter.

    And there is a logic to the use of Quotation marks, commas and brackets.

    Strings of text needs Quotation marks "Something something text string"
    Numbers need no Quotation marks 1234
    Boolean values, True or False, should not have quotation marks even though they are text.

    Commas are use after each “line” unless the “line” is the last one. It’s easier to grasp if you put everything on one row.
    modules: [{module: “alert”},{module: “updatenotification”, position: “top_bar”},{module: “clock”, position: “top_left”} ]



  • @sdetweil I didn’t know about this tool. I will definitely check it out. Thank you.



  • @Sean if I understand this correctly, I can simply copy the text from my config.js file, paste it into the js validator, and it will show me any mistakes that are in my setup?