This library provides a "Mouse, Keyboard, and Screen" to QEMU using the D-Bus device support in QEMU and GTK 4.
Go to file
Christian Hergert 90f722234b Merge branch 'bilelmoussaoui/dmabuf-texture' into 'main'
Switch to using GdkDmaBufTexture

See merge request GNOME/libmks!45
2024-01-15 21:34:47 +00:00
data/icons data: provide a symbolic and an emblem 2023-03-09 12:27:45 +01:00
docs docs: Adapt post GNOME group migration 2023-07-11 14:48:23 +02:00
lib Add a GtkGrphicsOffload for dmabuf passthrough 2023-11-14 20:20:57 +01:00
subprojects build: Depend on gtk main for GdkGLTextureBuilder 2023-05-17 13:08:31 -07:00
tests tests: add functional test 2023-09-07 21:31:59 +02:00
tools session: Allow setting the unique name 2023-10-25 23:21:08 +02:00
.editorconfig initial commit 2023-02-08 18:06:08 -08:00
.gitignore misc: Ignore images downloaded by functional test 2023-10-25 23:21:08 +02:00
.gitlab-ci.yml ci: Add missing dependencies 2024-01-14 16:44:37 +01:00
.packit.yml packit: Fix configuration 2023-09-14 10:36:29 +02:00
COPYING Relicense as LGPLv2.1+ 2023-06-01 12:04:35 +01:00
libmks.doap doap: It is actually libmks 2023-08-15 20:43:51 +00:00
meson_options.txt build: tweak wording for meson_options.txt 2023-08-22 10:51:40 -07:00 dmabuf paintable: Switch to GdkDmabufTexture 2023-10-25 23:50:08 +02:00
NEWS Release libmks 0.1.5 2023-09-14 10:39:51 +02:00
org.gnome.libmks.mks.json build: add flatpak manifest to testing in Builder 2023-02-17 16:28:25 -08:00 tests: add scaffolding for unit tests with coverage 2023-08-22 17:49:40 +00:00


This library provides a "Mouse, Keyboard, and Screen" to QEMU using the D-Bus device support in QEMU and GTK 4.


Nightly documentation can be found here.

Unit testing

Be sure you have lcov package installed on your system if you want coverage data.

meson setup builddir
meson configure -Db_coverage=true builddir  # if you want to collect coverage data
meson compile -C builddir
meson test -C builddir --suit "libmks"
rm -rf builddir/subprojects  # if you don't want subprojects coverage in the report
ninja coverage-html -C builddir  # if you want to generate coverage report

If generated, coverage report will be in builddir/meson-logs/coveragereport/index.html


By default, QEMU will connect to your user session D-Bus if you do not provide an address for -display dbus. Therefore, it is pretty easy to test things by running QEMU manually and then connecting with the test program ./tools/mks.

qemu-img create -f qcow2 fedora.img 30G
qemu-system-x86_64 \
    -enable-kvm \
    -cpu host \
    -device virtio-vga-gl,xres=1920,yres=1080 \
    -m 8G \
    -smp 4 \
    -display dbus,gl=on \
    -cdrom Fedora-Workstation.iso \
    -hda fedora.img \
    -boot d

and then to run the test widget

meson setup build
cd build