Uploaded image for project: 'Guacamole'
  1. Guacamole
  2. GUACAMOLE-168

Add support for X.Org



    • New Feature
    • Status: In Progress
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None


      It's been frequently requested that we add support for a more efficient protocol like NX or X2Go. Though that sounds nice on the surface, and theoretically would allow us to leverage some of Guacamole's nicer protocol-level features, investigating deeper reveals:

      1. X2Go is NX - it uses the same protocol behind the scenes.
      2. NX isn't really a protocol - it is essentially a compressor for X11, and depends on the client having a local X11 server to handle the decompressed result.

      Implementing support for either of these would thus involve implementing support for X11, which is crazy. However:

      What about implementing a driver for the X.Org X11 server?

      The X.Org server provides a driver abstraction layer which exposes access to windows (including their hierarchy) and pixmaps, much in the same way the Guacamole protocol provides nestable layers and buffers. If we were to implement a Guacamole driver for X.Org, we would be able to make much greater use Guacamole protocol features like client-side compositing. Operations which are typically expensive in VNC or RDP like window movement suddenly become simple, as they only involve updating the properties of a layer.

      I have an experimental implementation of all this, built upon several other improvements which ended up being required. Work started several years ago, even before Guacamole was accepted into the Apache Incubator, but I think it's finally ready to move forward. I've been using it myself for roughly a month now, and so far so good.


        1. Xorg.0.log
          27 kB
          Tim Worcester
        2. mvn_error.txt
          5 kB
          Bernd Oelker
        3. err.txt
          11 kB
          Bernd Oelker
        4. 00-guac.conf
          0.9 kB
          Tim Worcester

        Issue Links



              mjumper Mike Jumper
              mjumper Mike Jumper
              21 Vote for this issue
              31 Start watching this issue