Merge tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into...
[qemu/ar7.git] / docs / system / barrier.rst
blob155d7d2901316787a81097e5ccbadefd0e76036a
1 QEMU Barrier Client
2 ===================
4 Generally, mouse and keyboard are grabbed through the QEMU video
5 interface emulation.
7 But when we want to use a video graphic adapter via a PCI passthrough
8 there is no way to provide the keyboard and mouse inputs to the VM
9 except by plugging a second set of mouse and keyboard to the host
10 or by installing a KVM software in the guest OS.
12 The QEMU Barrier client avoids this by implementing directly the Barrier
13 protocol into QEMU.
15 `Barrier <https://github.com/debauchee/barrier>`__
16 is a KVM (Keyboard-Video-Mouse) software forked from Symless's
17 synergy 1.9 codebase.
19 This protocol is enabled by adding an input-barrier object to QEMU.
21 Syntax::
23     input-barrier,id=<object-id>,name=<guest display name>
24     [,server=<barrier server address>][,port=<barrier server port>]
25     [,x-origin=<x-origin>][,y-origin=<y-origin>]
26     [,width=<width>][,height=<height>]
28 The object can be added on the QEMU command line, for instance with::
30     -object input-barrier,id=barrier0,name=VM-1
32 where VM-1 is the name the display configured in the Barrier server
33 on the host providing the mouse and the keyboard events.
35 by default ``<barrier server address>`` is ``localhost``,
36 ``<port>`` is ``24800``, ``<x-origin>`` and ``<y-origin>`` are set to ``0``,
37 ``<width>`` and ``<height>`` to ``1920`` and ``1080``.
39 If the Barrier server is stopped QEMU needs to be reconnected manually,
40 by removing and re-adding the input-barrier object, for instance
41 with the help of the HMP monitor::
43     (qemu) object_del barrier0
44     (qemu) object_add input-barrier,id=barrier0,name=VM-1