Xpra: Ticket #1247: start-desktop using a single display

Follow up from #1206.

Instead of starting Xephyr nested in a mostly unused Xvfb display, we should be able to start the Xvfb and watch the root window directly for damage events.

This should work without having to enable the Composite extension, without redirecting any windows, which would be more compatible with some rendering mechanisms which are not currently supported, notably some multi display native graphics card modes. We would not need to run as window manager on the vfb display at all, simplifying the code greatly (no need for focus management, etc - just direct mouse and keyboard events).

Thu, 07 Jul 2016 09:08:19 GMT - Antoine Martin: attachment set

poc patch showing the root window as a managed window

Sun, 10 Jul 2016 09:40:13 GMT - Antoine Martin: attachment set

much better approach using a dedicated model and server class

Sun, 10 Jul 2016 09:48:11 GMT - Antoine Martin: status changed

Some preparatory refactoring which also helps in more clearly separating the gtk code and pure x11 code: r12970 (cursor, clobber flag), r12971 (windows vs cursors), r12973 (bell, motion, cursors).

Things left to do:

Mon, 11 Jul 2016 14:42:47 GMT - Antoine Martin:

More preparatory work in r12974 (randr cleanup), r12975 + r12976 (mouse pointer adjustments: re-use shadow code), r12977 (window model class refactoring), r12978 (split damage from composite), r12979 (fix undedirect), r12980 (logging tweak), r12982 (unnecessary import fixup)

Full "start-desktop" support added in r12981 + r12983, see commit message for details.

Still TODO:

Tue, 12 Jul 2016 13:08:21 GMT - Antoine Martin:

Turns out that the corrupted window with resizing may well be an Intel opengl issue (#1233), and it should work well enough as of r12986, will need to re-test on non-intel chipsets.

For reference, here's how you can easily start a non-composited vfb:

xpra start-desktop \
    --xvfb='Xvfb -extension Composite -nolisten tcp -noreset -auth $XAUTHORITY -screen 0 1920x1080x24+32'

Another option is to use an existing display server with xpra start-desktop --use-display.

This mode may be useful for adding support for deep colour modes (#909).

Tue, 12 Jul 2016 16:52:22 GMT - Antoine Martin: milestone changed

Milestone renamed

Tue, 06 Sep 2016 09:33:40 GMT - Antoine Martin:

Some minor updates:

Unfortunately, there is an Xorg bug which sends all events to the first screen: XTestFakeMotionEvent no longer works on multiple screen displays

@afarr: just a FYI, please close.

Wed, 07 Sep 2016 01:58:42 GMT - alas: status changed; resolution set

Noted... to the best of my ability.


Thu, 12 Jan 2017 02:36:24 GMT - Antoine Martin:

Added wiki page: wiki/Desktop.

Sat, 23 Jan 2021 05:19:02 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1247