Multihead with Xorg dummy screen?

I’m trying to use my pad as a second monitor, so I tried to add a dummy screen in Xorg config, start a x11vnc server, and connect to it on my pad with VNC Viewer.
However:

  • The dummy screen doesn’t show up in the Display & Monitor tab of System Settings
    • There’s only a “Built-in” screen, which corresponds to my laptop screen
  • Pitch black on the dummy screen
    • Though I can start a graphical application on the dummy screen by overriding the DISPLAY env var, like env DISPLAY=:x.x alacritty

Seems like KDE is ignoring the dummy screen.

I have tried some other setups:

  • Dummy screen only: works
    • Laptop screen: pitch black
    • VNC Viewer: I can see the KDE desktop
  • Dummy screen as Screen 0, laptop screen as Screen 1
    • Same as above

My Xorg setup:

Section "Monitor"
    Identifier     "Monitor0"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
EndSection

Section "Device"
    Identifier  "Dummy Device"
    Driver      "dummy"
    # Default is 4MiB, this sets it to 16MiB
    VideoRam    16384
EndSection

Section "Monitor"
    Identifier  "Dummy Monitor"
EndSection

Section "Screen"
    Identifier  "Dummy Screen"
    Monitor     "Dummy Monitor"
    Device      "Dummy Device"
    SubSection "Display"
    Depth       24
    Modes       "2560x1600" "1366x768" "1024x800" # Not working due to absence of some other options
    EndSubSection
EndSection
Section "ServerLayout"
    Identifier    "Layout"
    Screen      0 "Screen0"
    Screen      1 "Dummy Screen" RightOf "Screen0
EndSection

This config is spreaded across 3 different conf files, and concatenated into one here.

In the end I decided to use Nvidia’s TwinView. I was trying to do this virtual multihead setup without vendor specific functionality to make it more portable, but I guess since every vendor has their own way of doing virtual display, the most possible and also portable way is using a script to generate xorg.conf.

Why make it portable you ask? Isn’t it cooler if I can just unplug my disk and run my Linux on someone else’s computer?

The guide I followed: issue #9 of GitHub repo “dianariyanto/virtual-display-linux”
(I can’t post links, sry)