checkForFreshInstall() {

    if (!utils.getEntry($tm.ref.sysMeta, 'showWelcomeMessage', true)) {
      return;
    }

    utils.setEntry($tm.ref.sysMeta, 'showWelcomeMessage', false);

    const args = {
      dialog: {
        preselects: {
          "config.storyview": "true",
          "config.navigation": "true",
          "config.sidebar": "true",
          "config.demo": "true",
        }
      }
    };

    $tm.dialogManager.open('welcome', args, (isConfirmed, outTObj) => {

      const config = utils.getPropertiesByPrefix(outTObj.fields, 'config.', true);

      if (config['storyview'] && utils.tiddlerExists('$:/plugins/felixhayashi/topstoryview')) {
        utils.setText('$:/view', 'top');
      }

      if (config['navigation']) {
        utils.setText('$:/config/Navigation/openLinkFromInsideRiver', 'above');
        utils.setText('$:/config/Navigation/openLinkFromOutsideRiver', 'top');
      }

      if (config['sidebar']) {
        utils.setText('$:/themes/tiddlywiki/vanilla/options/sidebarlayout', 'fixed-fluid');
      }

      if (config['demo']) {
        const view = $tm.misc.defaultViewLabel;

        const n1 = $tm.adapter.insertNode({ label: 'Have fun with', x: 0, y: 0 }, view);
        const n2 = $tm.adapter.insertNode({ label: 'TiddlyMap!!', x: 100, y: 100 }, view);

        $tm.adapter.insertEdge({ from: n1.id, to: n2.id });
      }

      if (Object.keys(config).length) {
        // trigger a save and reload message
        utils.touch('$:/plugins/felixhayashi/tiddlymap');
      }

    });

  }
The first time a map is opened, we want to display a welcome message.
Once shown, a flag is set and the message is not displayed again.