Having run dual (or more!) screen setups in Linux for 20 years I'm no stranger to setting up a layout but am having an issue on my laptop that's got me stumped. The machine is a Dell XPS originally sold preloaded with Ubuntu. Ubuntu came off it the day I got it and it's been an Arch Linux machine since.
The display adapter is an Intel Iris 540 running standard i915 drivers. The internal display is a HIDPI 3200x1800 panel. I'm trying to hook up an external display via a USB-C adapter with either HDMI or VGA connections. The problem I'm having is the same over either connection type and with several different displays, so this doesn't seem to be an idiosyncrasy of the display.
The problem I'm having only shows up trying to run Awesome WM. I also have Gnome loaded on the machine and for some reason it doesn't have any trouble with the external display. A quick configuration from the control center turned off mirroring and arranged the external display to the right of the internal (primary) one and everything was hunky dory.
In Awsesome I ran a few
xrandr commands and got the display turned on, but it refuses to layout properly. It can mirror any portion (or scaled version) of the internal display, but arranging it as extra real estate outside the primary display results in weirdness. Arranging it to the right of the primary appears to work in that the cursor moves across screens onto the external monitor at the expected spot, but no windows will draw there. Only the cursor. The screen display is permanently stuck at whatever was in the frame buffer at +0+0 on the primary at the time it was turned on. Windows can be dragged over there and Awesome seems to know the right geometry, but nothing gets rendered except the cursor.
If I map it to the left of the primary the external display works, but then the width of the external display (for example 1280px) is frozen on the right side of the primary display. Whatever was on the left edge of the primary (for example a 1280px by 1800px sliver) is drawn on the right side and frozen.
I've even used
arandr to save a working layout from Gnome and run the generated script from Awesome, but the results are the same. The layout works perfectly in any arrangement in Gnome but borks and leaves be with garbage from old buffers rather than rendering the current display arrangement when Awesome is in charge?
What else should I be looking for? What is Gnome doing to make it happy that I'm not doing in Awesome?