A short overview: With Ctrl-Key pressed, some keyboard events don't generate smalltalk keystrokes (EventKeyChar) ctrl+tab, ctrl+1, ctrl+2, ..., ctrl+0, ctrl+Tab, ctrl+m for some keyboard events there are only key down and key up events (from windows) but the vm "generates" a keypress (EventKeyChar) event ctrl+Home, ctrl+End, ctrl+PageUp, ... But the key value , char code and ctrl flag for this generated events, make them undistinguishable from other ctrl+key shortcuts ctrl+a = ctrl+Home, ctrl+d = ctrl+End, ctrl+k=ctrl+PageUp,... And one key (ctrl+Enter) creates two EventKeyChar events one "normal" and one that is generated from the vm one with keyvalue 10 and one with 13. And the keycode for char like "a","b", ..., are different if you they are typed with or without ctrl-key just key "a": keycode: 65 (keydown event) 97 (keyvalue/charcode event) (65 if you press shift key) 65 (keyup event) with ctrl key pressed: keycode 65 (keydown event) 1 (keyvalue/charcode event) 65 (keyup event) I would like to change this, that means: generate EventKeyChar events for ctrl+1, ctrl+2, ..., ctrl+Tab, ctrl+m remove the double key event for ctrl+Enter and adopt the behavior of the linux vm, for keyValue, charCode values for events like ctrl+a, ctrl+home, ... for example, the linux vm generates event buffer values: #(2 7329656 1 0 2 65 0 1) for ctrl+a (keyValue 1/charCode 65) but #(2 7329656 1 0 2 1 0 1) for ctrl+home (keyValue 1/charCode 1) this may need some changes on the image side. For example, in Pharo we have some special handling that adds "96" to the keyValue for keystrokes with ctrl-key). What do you think? nicolai