Read the statement by Michael Teeuw here.
Magic mirror dual screen
-
@MMRIZE hmmm ideally… 1 pi connect to 2 monitor and both monitor running … this is the part I don’t quite get it.
I want 1 monitor to just display Google photo and the other monitor showing all the informative stuff like calendar news stock etc. would this be more viable running 2 instances of mm? Or 1 instance of mm portraying Google photo on 1 screen and info on another side?
It feels like the first option is easier?
I’m happy to go either direction.
Of course the easiest solution is to buy 2 pi and call it a day. But where’s the fun in that 😅
-
@1a2a3a MM only displays on one screen… you can run two instances, and have them display on different monitors… from the same mm folder. just two different config files.
see the MM_CONFIG_FILE env variable
to get an instance on the other monitor you need to add
electronOptions:{x:????,width:yyyy},
to the config.js before the modules:{} list
??? is the width of the 1st display in pixels
yyyy is the width of the second monitornote that you can also do the MMM-Pages approach, and only display some on a logical page 1 and some on logical page 2 in rotation…
see my fork for a better way to define that
https://github.com/sdetweil/MMM-pages -
@sdetweil oh my just that simple 1 config file and I’m done? And when I run pm2 it will flash to 2 as well?
-
@1a2a3a have to run two scripts, one w the second config file
-
@sdetweil see the pm2_MagicMirror.json in ~/MagicMirror/installers
copy, change the name and script name, make a new script mm2.sh
and the env variablepm2 start pm2_MagicMirror.json(new name)
pm2 savethat give the app pm2 manages a pretty name
you can test w another terminal window
set the env variable, using export variable=
then create the new config.js, w only the modules u want enabled.
then npm start -
-
@BKeyport What I did was two directories, with seperate configs, then mm.sh does:
cd /home/bkey1970/MagicMirror DISPLAY=:0 npm start
and mm2.sh does:
cd /home/bkey1970/MagicMirror2 DISPLAY=:0 npm start
To get the 2nd on the 2nd monitor, I added:
electronOptions: { x: 1920 },
to the 2nd config.js, right below the address line, and changed the port to 8081.
-
copy the second config.js to the first mm config directory as config2.js
edit the mm2.sh
cd to the first mm directory(instead of the second)
and add a lineexport MM_CONFIG_FILE=${cwd}/config/config2.js
npm startnow. make sure all the modules needed by both instances are installed in the modules folder of the 1st instance.
if they aren’t used by a particular instance, no big deal, same as setting disabled:true on a module config
-
Interesting - although, now, it’s ignoring the
electronOptions:
item. -
Here’s the answer for @1a2a3a (Edited to show below changes)
Here’s how to do it cleanly: (replace
<username>
with your pi login name., with width of first monitor)- create two starting scripts:
First,
mm.sh
is as follows:cd /home/<username>/MagicMirror DISPLAY=:0 npm start
Second,
mm2.sh
is as follows:cd /home/<username>/MagicMirror export MM_CONFIG_FILE=${pwd}/config/config2.js DISPLAY=:0 npm start
- Two config files in magicmirror/config next:
First,
config.js
(this is your second monitor):var config = { electronOptions: { x: <width> }, address: "0.0.0.0", port: 8080, ipWhitelist: [], language: "en", timeFormat: 12, units: "imperial", //logLevel: ["INFO", "LOG", "WARN", "ERROR", "DEBUG"], modules: [ ...
Second
config2.js
(this is your first monitor):var config = { address: "0.0.0.0", port: 8081, ipWhitelist: [], language: "en", timeFormat: 12, units: "imperial", //logLevel: ["INFO", "LOG", "WARN", "ERROR", "DEBUG"], modules: [ ...
electronOptions will only work in the file that isn’t redirected to a new config - so use that in the
config.js
only.