You might try making one or the other display explicitly primary with xrandr.
Any chance your VGA cable could be replaced with a DVI-DVI or DVI-HDMI cable? My Haswell has HDMI, DVI and VGA. Going all digital can sometimes work better, or at all.
My xrandr script is in /etc/X11/Xsession.d/. No .xinitrc, .xsession, Gnome or GDM here. I have no trouble getting my Kaby Lake to use all connected displays without any need for xorg.conf* whether I use startx or TDM:
Code:
## to stack displays instead of side by side by side
# xrandr --output DP-1 --mode 2560x1440 --primary --output HDMI-1 --mode 2560x1080 --above DP-1 --output HDMI-2 --mode 1920x1200 --above HDMI-1
# xrandr | egrep 'onnect|creen|\*' | grep -v disconn | sort -r
Screen 0: minimum 320 x 200, current 2560 x 3720, maximum 8192 x 8192
HDMI-2 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 519mm x 324mm
HDMI-1 connected 2560x1080+0+1200 (normal left inverted right x axis y axis) 673mm x 284mm
DP-1 connected primary 2560x1440+0+2280 (normal left inverted right x axis y axis) 598mm x 336mm
2560x1440 59.95*+ 74.92
2560x1080 60.00*+
1920x1200 59.95*+
# inxi -GxxS
System: Host: gb250 Kernel: 4.19.0-5-amd64 x86_64 bits: 64 compiler: gcc v: 8.3.0 Desktop: Trinity R14.0.7 tk: Qt 3.5.0
wm: Twin dm: startx Distro: Debian GNU/Linux 10 (buster)
Graphics: Device-1: Intel HD Graphics 630 vendor: Gigabyte driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:5912
Display: tty server: X.Org 1.20.4 driver: modesetting unloaded: fbdev,vesa
resolution: 2560x1080~60Hz, 1920x1200~60Hz, 2560x1440~60Hz
OpenGL: renderer: Mesa DRI Intel HD Graphics 630 (Kaby Lake GT2) v: 4.5 Mesa 18.3.6 compat-v: 3.0
direct render: Yes
Note HDMI-2 here is actually a DVI connection.
I would expect my Haswell to do no differently other than connector names in xrandr, but I don't have Buster on it.