[virt-tools-list] [PATCH v2 00/16] Add QEMU-like UI: VT console & basic VM state

marcandre.lureau at redhat.com marcandre.lureau at redhat.com
Wed Sep 26 15:26:23 UTC 2018

From: Marc-André Lureau <marcandre.lureau at redhat.com>


QEMU provides multiple display backend, with different set of
features. One of the richest UI is the -display gtk. It is quite
minimal, and comparable to remote-viewer UI wrt fullscreen, zooming,
grabbing. I haven't done a detailed comparison, but for regular use, I
prefer the remote-viewer UI. The fullscreen mode has a popup toolbar,
there is a send-key menu, it provides better desktop integration
support: USB redirection, folder sharing, more complete multi-monitor
configuration, screenshot. remote-viewer also allows hotkey
configuration, and has an experimental "kiosk" mode.

However, remote-viewer is lacking 2 important features compared to
QEMU UI: VT console (for serials, and monitors) and basic VM state
commands (power off, reset, pause..).

This series add support for VT console over Spice ports, and QMP
monitor to provide a similar user experience as QEMU -display gtk.
Another RFC series for QEMU "[PATCH 00/10] RFC: spice: add -display
app to launch external UI" provides a new "-display app" backend, that
will configure QEMU appropriately, and start remote-viewer (actually
any client handling spice+unix://). The result is that the "QEMU UI
experience" is entirely out of qemu code base and process.


 - rebased
 - "spice: hook into QMP port" now uses spice-gtk v0.36 SpiceQmpPort
 - commit message updates

Marc-André Lureau (16):
  window: do not reset sensitivity of menu-send in rebuild
  window: set sensitivity based on display capability
  build-sys: check for VTE library
  Add a VirtViewerDisplayVte display kind
  window/zoom: deal with VTE display differently
  display: ignore display that do not have toplevel window
  session: skip monitor changes if there is no sized monitors
  app: set subtitle using VTE name
  app: append VTE consoles to display submenu
  display: allow display without associated monitor number
  session: do not take VTE display into account for geometry changes
  app: create a window for VTE displays
  spice: hook into port channel to create VTE terminals
  app: add "machine" UI
  app: add "vm-running" property
  spice: hook into QMP port

 configure.ac                    |  16 +-
 src/Makefile.am                 |   4 +
 src/resources/ui/virt-viewer.ui |  46 +++++
 src/virt-viewer-app.c           | 154 ++++++++++++---
 src/virt-viewer-display-vte.c   | 319 ++++++++++++++++++++++++++++++++
 src/virt-viewer-display-vte.h   |  81 ++++++++
 src/virt-viewer-display.c       |   7 +-
 src/virt-viewer-display.h       |   6 +
 src/virt-viewer-session-spice.c | 220 +++++++++++++++++++++-
 src/virt-viewer-session.c       |  22 +++
 src/virt-viewer-session.h       |  11 ++
 src/virt-viewer-window.c        | 107 ++++++++++-
 12 files changed, 955 insertions(+), 38 deletions(-)
 create mode 100644 src/virt-viewer-display-vte.c
 create mode 100644 src/virt-viewer-display-vte.h


More information about the virt-tools-list mailing list