I have a Ubuntu machine that I use as a Plex and data server. There is no monitor connected to it. This wasn't a problem with Ubuntu 16.04, but now, with 18.04, it is and it shows a black screen whenever I connect using VNC.
I've already created the virtual display using the answer to this question: Add virtual output to Xorg
sudo vi /usr/share/X11/xorg.conf.d/20-intel.conf
Add the following configuration information into the file:
Section "Device" Identifier "intelgpu0" Driver "intel" Option "VirtualHeads" "2" EndSection
This tells the Intel GPU to create 2 virtual displays. You can change the number of VirtualHeads to your needs.
Then I made a shell script (don't forget to set executable) and put that in Startup Applications:
#! /bin/bash /usr/bin/xrandr -d :0 --output VIRTUAL1 --primary --auto /usr/bin/xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900$ /usr/bin/xrandr --addmode VIRTUAL1 "1600x900_60.00"
After this, it still shows a black screen when I connect using VNC. BUT, when I run this with SSH:
export DISPLAY=:0 xrandr
After that, I can see my desktop in VNC... Any ideas on how to fix this? Also, when I see my desktop after all this, the dock is missing and all the icons are in the same spot.