86a3e45904
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> |
||
---|---|---|
.cargo | ||
keycodemap | ||
keycodemapdb@ab223f5d31 | ||
qemu-display | ||
qemu-rdp | ||
qemu-rdw | ||
qemu-vnc | ||
qemu-vte | ||
xtask | ||
.gitignore | ||
.gitmodules | ||
.rustfmt.toml | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
QEMU D-Bus display experiment
Introduction
WIP Rust crates to interact with a -display dbus
QEMU.
Some dependencies, such as RDW are also in development and unreleased.
Features
Depending on what the VM exposes & supports, various interfaces are implemented:
- display, with optional DMABUF sharing
- display resize
- keyboard & mouse
- serial terminals
- QMP/HMP monitors
- audio playback & recording
- USB device redirection
- clipboard sharing
Project organization
qemu-display
This crate provides simple D-Bus interfaces through zbus, and some basic abstractions.
qemu-rdw
This crate aims to provide Gtk+ 4 widget for a QEMU display, as well as dialogs/widgets for USB redirection and other options or features.
Currently it's a demo app (run by default with cargo run
).
It is also based on a WIP crate "RDW" (Remote display/desktop widget) to provide a base widget for various remote display solutions (VNC, RDP, Spice etc).
qemu-vnc
A simple VNC server implementation.
qemu-vte
A standalone VTE/Gtk+ 4 client, which should eventually be a consumable crate or integrated with qemu-rdw.
Build requirements
To build this project, you will need several system libraries. Here is the current list of build dependencies on Fedora:
$ sudo dnf install cargo gcc usbredir-devel wayland-devel libxkbcommon-devel glib2-devel gtk4-devel gstreamer1-devel gstreamer1-plugins-base-devel