Add API virDomainSendKey() and virsh send-key command. # virsh help send-key NAME send-key - Send keycodes to the guest SYNOPSIS send-key <domain> [--codeset <string>] [--holdtime <number>] <keycode>... DESCRIPTION Send keycodes to the guest, the keycodes must be integers or the qemu-style key strings for the "xt:keystring" codeset or the KEY_* strings listed below for the "linux" codeset. Available codeset: linux the keycodes specified in /usr/include/linux/input.h(default) default linux codeset will be used driver_default the hypervisor default codeset will be used xt XT(set1) scancode of standard AT keyboards and PS/2 keyboards atset1 set1 scancode of standard AT keyboards and PS/2 keyboards atset2 set2 scancode of standard AT keyboards and PS/2 keyboards atset3 set3 scancode of standard AT keyboards and PS/2 keyboards xt:keystring XT scancode, but <keycode>... must be the qemu-style key strings Examples: virsh # send-key <domain> 37 18 21 virsh # send-key <domain> --holdtime 1000 0x15 18 0xf virsh # send-key <domain> KEY_LEFTCTRL KEY_LEFTALT KEY_F1 virsh # send-key <domain> --codeset xt:keystring alt-sysrq h KEY_XXX strings for the "linux" codeset: . . . OPTIONS [--domain] <string> domain name, id or uuid --codeset <string> the codeset of keycodes, default:linux --holdtime <number> the time (in millsecond) how long the keys will be held <keycode> the key code PATCH 01~04 prepare PATCH 05~10 Add support for send keys to guest PATCH 11~13 improve usage of send keys. Python version of virDomainSendKey() has not been implemented yet, it will be done soon. Lai Jiangshan (13): allow name for VSH_OT_ARGV options improve the iteration of VSH_OT_ARGV options add VSH_OFLAG_REQ_OPT options remote_generator: support general dynamic array send-key: Defining the public API send-key: Defining the internal API send-key: Implementing the public API send-key: Implementing the remote protocol send-key: Expose the new API in virsh qemu:send-key: Implement the driver methods send-key: support KEY_XXX names for the linux keycode qemu,send-key: map linux keycode to xt keycode virsh,send-key: add --codeset xt:keystring support daemon/remote_generator.pl | 18 ++ include/libvirt/libvirt.h.in | 7 + include/libvirt/virtkeys.h | 276 ++++++++++++++++++++++++++++ python/generator.py | 1 + src/driver.h | 8 + src/libvirt.c | 54 ++++++ src/libvirt_public.syms | 1 + src/qemu/qemu_driver.c | 50 +++++ src/qemu/qemu_monitor.c | 75 ++++++++ src/qemu/qemu_monitor.h | 6 + src/qemu/qemu_monitor_json.c | 15 ++ src/qemu/qemu_monitor_json.h | 5 + src/qemu/qemu_monitor_text.c | 48 +++++ src/qemu/qemu_monitor_text.h | 5 + src/remote/remote_driver.c | 1 + src/remote/remote_protocol.x | 19 ++- src/remote_protocol-structs | 11 + tools/virsh.c | 415 +++++++++++++++++++++++++++++++++++++++--- tools/virsh.pod | 4 + 19 files changed, 989 insertions(+), 30 deletions(-) create mode 100644 include/libvirt/virtkeys.h -- 1.7.4.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list