ui: add an embedded Barrier client
commit6105683da35babad9ae168a72d1e89e63e9d6974
authorLaurent Vivier <laurent@vivier.eu>
Fri, 6 Sep 2019 08:38:12 +0000 (6 10:38 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 17 Sep 2019 11:43:22 +0000 (17 13:43 +0200)
tree46faa844b75b726401f64c0ff52b2532ff122921
parente1b3d47751a420835cb0560fd029c39fea961a79
ui: add an embedded Barrier client

This allows to receive mouse and keyboard events from
a Barrier server.

This is enabled by adding the following parameter on the
command line

    ... -object input-barrier,id=$id,name=$name ...

Where $name is the name declared in the screens section of barrier.conf

The barrier server (barriers) must be configured and must run on the
local host.

For instance:

  section: screens
      localhost:
          ...
      VM-1:
          ...
      end

  section: links
      localhost:
          right = VM-1
      VM-1:
          left = localhost
  end

Then on the QEMU command line:

    ... -object input-barrier,id=barrie0,name=VM-1 ...

When the mouse will move out of the screen of the local host on
the right, the mouse and the keyboard will be grabbed and all
related events will be send to the guest OS.

This is usefull when qemu is configured without emulated graphic card
but with a VFIO attached graphic card.

More information about Barrier can be found at:

  https://github.com/debauchee/barrier

This avoids to install the Barrier server in the guest OS,
for instance when it is not supported or during the installation.

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Message-id: 20190906083812.29487-1-laurent@vivier.eu
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
docs/barrier.txt [new file with mode: 0644]
ui/Makefile.objs
ui/input-barrier.c [new file with mode: 0644]
ui/input-barrier.h [new file with mode: 0644]