@motdog - No worries. We’re here to help if you run into another problem.
Here’s a quick rundown of the moving parts to a typical magic mirror:
nodejs - This is what runs the Magic Mirror framework. It technically runs a dynamic webpage which is what you see on your monitor.
npm - Node Package Manager. This is a tool that ships with nodejs that handles the downloading of required packages, compiling and running of nodejs applications - including the Magic Mirror framework.
electron - This is like a web browser that runs on the Raspi desktop. It shows what nodejs is serving up, minus all the annoying bits of a web browser (menus, address bar, etc.)
node_helper.js - This is an optional Javascript file in any module. It is responsible for passing data between the front end (display information) and the back end (calls to web services, authentication, etc.)
pm2 - This is a process monitoring application. It’s responsible for running the Magic Mirror startup script and acts as sort of a cruise control. If the Magic Mirror crashes, pm2 will detect that the script has stopped and restart it. This is normally what starts your magic mirror when it boots.
X-server - This is the desktop environment for your typical Raspberry Pi. This is what electron runs in, so it must be started in order for electron to work. I’m 90% positive that it’s also necessary for the included web browser Chromium to work. This is what your command startx is firing up.
config.js - You’ve probably encountered this guy. This is the configuration file for the Magic Mirror web application. It helps to remember that this file is basically a Javascript data file. It controls how the web application loads and positions modules. It’s important to realize that the module itself may need to be installed/compiled before included in the config file. Including an uninstalled module isn’t going to help you much.
I hope this helps.