qemu/ui
Gerd Hoffmann e0d2bd5195 input: linux evdev support
This patch adds support for reading input events directly from linux
evdev devices and forward them to the guest.  Unlike virtio-input-host
which simply passes on all events to the guest without looking at them
this will interpret the events and feed them into the qemu input
subsystem.

Therefore this is limited to what the qemu input subsystem and the
emulated input devices are able to handle.  Also there is no support for
absolute coordinates (tablet/touchscreen).  So we are talking here about
basic mouse and keyboard support.

The advantage is that it'll work without virtio-input drivers in the
guest, the events are delivered to the usual ps/2 or usb input devices
(depending on what the machine happens to have).  And for keyboards
qemu is able to switch the keyboard between guest and host on hotkey.
The hotkey is hard-coded for now (both control keys), initialy the
guest owns the keyboard.

Probably most useful when assigning vga devices with vfio and using a
physical monitor instead of vnc/spice/gtk as guest display.

Usage:  Add '-input-linux /dev/input/event<nr>' to the qemu command
line.  Note that udev has rules which populate /dev/input/by-{id,path}
with static names, which might be more convinient to use.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 1457087116-4379-2-git-send-email-kraxel@redhat.com
2016-03-08 12:20:11 +01:00
..
shader console-gl: add opengl rendering helper functions 2015-05-05 10:48:22 +02:00
cocoa.m qapi: rename input buttons 2016-03-01 08:19:07 +01:00
console-gl.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
console.c console: add & use qemu_console_lookup_by_device_name 2016-03-01 07:51:34 +01:00
curses_keys.h ui/curses: Fix pageup/pagedown on -curses 2015-11-03 10:12:46 +01:00
curses.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
cursor_hidden.xpm ui: move files to ui/ and include/ui/ 2012-12-19 08:31:30 +01:00
cursor_left_ptr.xpm ui: move files to ui/ and include/ui/ 2012-12-19 08:31:30 +01:00
cursor.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
egl-context.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
egl-helpers.c egl-helpers: add functions for render nodes and dma-buf passing 2016-02-23 12:04:39 +01:00
gtk-egl.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
gtk-gl-area.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
gtk.c qapi: rename input buttons 2016-03-01 08:19:07 +01:00
input-keymap.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
input-legacy.c ui: Shorten references into InputEvent 2016-03-05 10:41:55 +01:00
input-linux.c input: linux evdev support 2016-03-08 12:20:11 +01:00
input.c qapi: Avoid use of 'data' member of QAPI unions 2016-03-05 10:41:58 +01:00
keymaps.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
keymaps.h
Makefile.objs input: linux evdev support 2016-03-08 12:20:11 +01:00
qemu-pixman.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-x509.h ui: move files to ui/ and include/ui/ 2012-12-19 08:31:30 +01:00
sdl2-2d.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
sdl2-gl.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
sdl2-input.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
sdl2-keymap.h sdl2: keymap fixups 2014-09-16 08:07:05 +02:00
sdl2.c qapi: rename input buttons 2016-03-01 08:19:07 +01:00
sdl_keysym.h ui/sdl2 : initial port to SDL 2.0 (v2.0) 2014-03-05 09:52:05 +01:00
sdl_zoom_template.h sdl: Fix heap smash in sdl_zoom_rgb{16,32} for int > 32 bits 2013-01-15 18:25:30 -06:00
sdl_zoom.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
sdl_zoom.h
sdl.c qapi: rename input buttons 2016-03-01 08:19:07 +01:00
shader.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
spice-core.c Postcopy+spice: Pass spice migration data earlier 2016-02-23 12:05:02 +01:00
spice-display.c spice/gl: tweak debug messages. 2016-02-23 12:04:40 +01:00
spice-input.c qapi: rename input buttons 2016-03-01 08:19:07 +01:00
vgafont.h ui: move files to ui/ and include/ui/ 2012-12-19 08:31:30 +01:00
vnc_keysym.h qemu-char: add cyrillic characters 'numerosign' to VNC keysyms 2015-03-10 08:15:34 +03:00
vnc-auth-sasl.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-auth-sasl.h aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
vnc-auth-vencrypt.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-auth-vencrypt.h
vnc-enc-hextile-template.h pixman/vnc: use pixman images in vnc. 2012-11-01 14:00:04 +01:00
vnc-enc-hextile.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-tight.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-tight.h
vnc-enc-zlib.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zrle-template.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zrle.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zrle.h vnc: Add ZRLE and ZYWRLE encodings. 2011-02-23 16:28:28 -06:00
vnc-enc-zywrle-template.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zywrle.h misc: Spelling and grammar fixes in comments 2013-10-26 13:06:45 +04:00
vnc-jobs.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-jobs.h ui/vnc: Remove vnc_stop_worker_thread() 2015-03-10 08:15:33 +03:00
vnc-palette.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-palette.h all: Clean up includes 2016-02-23 12:43:05 +00:00
vnc-ws.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-ws.h ui: convert VNC server to use QIOChannelWebsock 2015-12-18 15:02:11 +00:00
vnc.c vnc: send cursor when a new client is connecting 2016-03-08 10:45:01 +01:00
vnc.h all: Clean up includes 2016-02-23 12:43:05 +00:00
x_keymap.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
x_keymap.h Delete useless 'extern' qualifiers for functions 2011-01-23 16:21:20 +00:00