I'm setting my RaspberryPi 3B+ (Debian Buster) up as a magic mirror. I've run into a really weird issue that I can't wrap my brain around.
The magic mirror software is basically an EletronJS app, configured to run full-screen when LXDE-pi loads up. I have a monitor connected directly to the RPI, and have been configuring it via SSH.
I can set up the app to render various non-fullscreen components, and it renders properly on my monitor. Its appearance over VNC looks identical.
Adding any full-screen component causes my local monitor to display the new content momentarily -- before blanking to a black screen. Over VNC, the app displays properly (i.e., in fullscreen with the new content).
If I "restore" the ElectronJS app over VNC -- i.e., make it non-fullscreen and un-maximized -- then it suddenly appears on my local monitor.
If I resize the app window over VNC, I will see it resize on the local monitor -- up to a certain size, at which point the whole monitor goes black again.
/etc/xdg/lxsession/LXDE-pi/autostart
:
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@xset s noblank
@xset s off
@xset -dpms
# @unclutter -idle 0.1 -root
The app is re-/started/stopped using PM2, which in turn delegates to a shell-script -- ~/mm.sh
:
#!/bin/bash
cd ~/MagicMirror
DISPLAY=:0 npm start
Finally -- my HDMI resolution is set to be DMT Mode 47 (1440x900, 60Hz) -- /boot/config.txt
:
...
hdmi_group=2
hdmi_mode=47
# We ran into trouble using the experimental GL driver; so we're using the legacy, non-GL version
# dtoverlay=vc4-fkms-v3d
gpu_mem=256
# Finally -- the display is rotated 90 degrees CW to a portrait orientation
display_rotate=1
avoid_warnings=1
...