So you would expect the first and second characters to overwrite the selected text, right?
What does xev print?
(Run it from a terminal, then move the mouse over the window, then press
Ctrl Shift Left Left a b)
For me, it does this.
Pressing and holding Ctrl then Shift...
KeyPress event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143718968, (47,65), root:(48,147),
state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143719024, (47,65), root:(48,147),
state 0x14, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
then Left, Left...
KeyPress event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143720176, (47,65), root:(48,147),
state 0x15, keycode 113 (keysym 0xff51, Left), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143720280, (47,65), root:(48,147),
state 0x15, keycode 113 (keysym 0xff51, Left), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143720952, (47,65), root:(48,147),
state 0x15, keycode 113 (keysym 0xff51, Left), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143721040, (47,65), root:(48,147),
state 0x15, keycode 113 (keysym 0xff51, Left), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
then letting go of Ctrl and Shift...
KeyRelease event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143723304, (47,65), root:(48,147),
state 0x15, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143723304, (47,65), root:(48,147),
state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
then pressing a, b
KeyPress event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143724576, (47,65), root:(48,147),
state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XmbLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143724672, (47,65), root:(48,147),
state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
KeyPress event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143725048, (47,65), root:(48,147),
state 0x10, keycode 57 (keysym 0x62, b), same_screen YES,
XLookupString gives 1 bytes: (62) "b"
XmbLookupString gives 1 bytes: (62) "b"
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x4c00001,
root 0x109, subw 0x4c00002, time 143725136, (47,65), root:(48,147),
state 0x10, keycode 57 (keysym 0x62, b), same_screen YES,
XLookupString gives 1 bytes: (62) "b"
XFilterEvent returns: False
I would look especially at the last two blocks, i.e. when releasing Ctrl and Shift and then when pressing a b to see if there are any differences.
Other thoughts:
- do you have Sticky Keys on?
- do you have Ctrl+Shift set to change the keyboard layout or language?