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

marcandre.lureau at redhat.com marcandre.lureau at redhat.com
Tue Jul 31 13:24:40 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 WIP series (fairly small, everything is there already) for
QEMU will provide 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.


Marc-André Lureau (22):
  remote-viewer: add handling of spice+unix and spice+tls schemes
  Remove class signal handlers
  app: simplify toggling visibility
  window: use virt_viewer_window_set_menus_sensitive()
  window: move default sensitivity in .ui
  window: do not reset sensitivity of menu-send in rebuild
  window: set sensitivity based on display capability
  display: make klass->close() optional
  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                    |  22 ++-
 data/remote-viewer.desktop.in   |   2 +-
 src/Makefile.am                 |   6 +
 src/resources/ui/virt-viewer.ui |  50 +++++
 src/virt-viewer-app.c           | 197 ++++++++++++++------
 src/virt-viewer-app.h           |   2 +-
 src/virt-viewer-display-spice.c |   8 -
 src/virt-viewer-display-vte.c   | 319 ++++++++++++++++++++++++++++++++
 src/virt-viewer-display-vte.h   |  81 ++++++++
 src/virt-viewer-display.c       |  22 +--
 src/virt-viewer-display.h       |  14 +-
 src/virt-viewer-session-spice.c | 284 +++++++++++++++++++++++++++-
 src/virt-viewer-session.c       |  48 +++--
 src/virt-viewer-session.h       |  30 ++-
 src/virt-viewer-window.c        | 117 ++++++++++--
 15 files changed, 1066 insertions(+), 136 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