I want to interact with a Virtualbox-VM to do an unattended install of Virtualbox-Guest-Additions. Therefore I have to send keystrokes to the VM. I'm able to do this by using the VBoxManage-API, where I send the HEX of the scancode to the VM:
# sends "b" to the VM
VBoxManage controlvm "$VMNAME" keyboardputscancode <HEX>
Now I want to send a complete command to the VM, like:
mount /dev/scd0 /media/cdrom0<Enter>
So I have to convert every single char of that string into a scancode and send it to the VM by using VBoxManage.
How do I convert these chars to the corresponding keyboard scancodes on Linux? My VM has the same keyboard mapping like my host. I'm looking for something I can use like that:
$ getscancode n
> 31
?
showkey -s
, which gives me the correct scancode. But that only works in a Terminal outside of my Window Manager, Otherwise I getCouldn't get a file descriptor referring to the console
. – Portraitistxev
will provide the information you need, but not in such a neat format asshowkey -s
(so I'm hesitant to give it as an answer). You will need to put the cursor into the black box, then type the keys you need. – Torhert