2

I'm running VMWare Workstation on Arch Linux with KeePassX set to use ALT + "A" as a global auto-type keybinding.

Prior to running VMware, KeePassX works great. When VMware releases the keyboard from the guest OS to the host the "a" key stops working entirely (except for in the KeePassX gui and inside the guest OS in VMware). I confirmed with xev that the "a" key is not being passed to X as it should, but appears to be intercepted by another program (I'm guessing keepassx since it's the only application the "A" key works in).

Running $ showkey --keycodes on the host indicates the scancode (0x1e down, 0x9e up) is still being generated as expected. Prior to the first VMware keyboard capture, running xev on the host indicates correct detection and mapping of the keypress (pressing "a" then "shift + a"):

$ xev

KeyPress event, serial 37, synthetic NO, window 0x1600001,
    root 0x292, subw 0x0, time 102283463, (137,56), root:(2626,74),
    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 37, synthetic NO, window 0x1600001,
    root 0x292, subw 0x0, time 102283568, (137,56), root:(2626,74),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x1600001,
    root 0x292, subw 0x0, time 102286270, (137,56), root:(2626,74),
    state 0x10, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x1600001,
    root 0x292, subw 0x0, time 102286698, (137,56), root:(2626,74),
    state 0x11, keycode 38 (keysym 0x41, A), same_screen YES,
    XLookupString gives 1 bytes: (41) "A"
    XmbLookupString gives 1 bytes: (41) "A"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x1600001,
    root 0x292, subw 0x0, time 102286826, (137,56), root:(2626,74),
    state 0x11, keycode 38 (keysym 0x41, A), same_screen YES,
    XLookupString gives 1 bytes: (41) "A"
    XFilterEvent returns: False

After the first VMware keyboard capture xev no longer detects the "A" keypress generating the following output instead (pressing "a" then "shift + a"):

$ xev
FocusOut event, serial 37, synthetic NO, window 0x1600001,
    mode NotifyGrab, detail NotifyAncestor

FocusOut event, serial 37, synthetic NO, window 0x1600001,
    mode NotifyUngrab, detail NotifyPointer

FocusIn event, serial 37, synthetic NO, window 0x1600001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 37, synthetic NO, window 0x0,
    keys:  2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeyPress event, serial 37, synthetic NO, window 0x1600001,
    root 0x292, subw 0x0, time 102369614, (6,122), root:(2495,140),
    state 0x10, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x1600001,
    root 0x292, subw 0x0, time 102370094, (6,122), root:(2495,140),
    state 0x11, keycode 38 (keysym 0x41, A), same_screen YES,
    XLookupString gives 1 bytes: (41) "A"
    XmbLookupString gives 1 bytes: (41) "A"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x1600001,
    root 0x292, subw 0x0, time 102370235, (6,122), root:(2495,140),
    state 0x11, keycode 38 (keysym 0x41, A), same_screen YES,
    XLookupString gives 1 bytes: (41) "A"
    XFilterEvent returns: False

The problem persists even after the VMware services are terminated. Restarting the X session by logging out/in corrects the issue.

I'm not sure whether to investigate VMware, KeePassX, or my desktop environment.

  • something crazy to try: change keyboard layout, then change it back. – hildred Mar 3 '15 at 16:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.