MacOS – esc key doesn’t work, only fn + esc

high sierrakeyboardmacos

So there's probably some app that's responsible for this, but I'm not sure how to find it.

I press Esc in:

  • Karabiner-events: it echoes 'escape' as it should

  • according to OS X keyboard-viewer Esc is never pressed.

But fnEsc does work (also in OS X keyboard-viewer).

I have no clue where to look for.
I saw this thread but I already disabled Siri and Speech and rebooted.

Where can I find more info how to deal with this?

I'm on the latest update of High Sierra 10.13.4.

Using an app called 'Key Codes', it logged:

  • pressing Esc : nothing

  • pressing fnEsc (first fn, than esc):

    Modifier Change
        Keys:       
        Key Code:       65535 / 0xffff
        Modifiers:      8388864 / 0x800100 ⓘ
    
    Key Down
        Characters: 
        Unicode:        27 / 0x1b
        Keys:           Escape
        Key Code:       53 / 0x35
        Modifiers:      8388864 / 0x800100 ⓘ
    
    Key Up
        Characters: 
        Unicode:        27 / 0x1b
        Keys:           Escape
        Key Code:       53 / 0x35
        Modifiers:      8388864 / 0x800100 ⓘ
    
    Modifier Change
        Keys:       
        Key Code:       65535 / 0xffff
        Modifiers:      256 / 0x100 ⓘ
    

In xev, when I press 'esc' nothing is echoed. But when I press fn+esc, I get the following output:

FocusIn event, serial 34, synthetic NO, window 0xa00001,
    mode NotifyNormal, detail NotifyNonlinear

KeymapNotify event, serial 34, synthetic NO, window 0x0,
    keys:  4294967201 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   

PropertyNotify event, serial 34, synthetic NO, window 0xa00001,
    atom 0x101 (_NET_WM_STATE), time 979893442, state PropertyNewValue

KeyPress event, serial 34, synthetic NO, window 0xa00001,
    root 0x1a1, subw 0x0, time 979893799, (144,-11), root:(161,702),
    state 0x0, keycode 61 (keysym 0xff1b, Escape), same_screen YES,
    XLookupString gives 1 bytes: (1b) "
mbLookupString gives 1 bytes: (1b) "
FilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0xa00001,
    root 0x1a1, subw 0x0, time 979893895, (144,-11), root:(161,702),
    state 0x0, keycode 61 (keysym 0xff1b, Escape), same_screen YES,
    XLookupString gives 1 bytes: (1b) "
FilterEvent returns: False

For the full output of xmodmap -pk I uploaded it here. The most notable lines (I guess) is:

 61         0xff1b (Escape) 0x0000 (NoSymbol)       0xff1b (Escape)
 79         0xff1b (Escape) 0x0000 (NoSymbol)       0xff1b (Escape)

Best Answer

If you know that your keyboard has got the correct country identification and ISO/Ansi setting, you might try "xev" in Terminal app. After some moments it will open a small window left on top of your screen. Just press "esc" once, then any letter, next press "fn" and "esc". Last: Cmd-dot to stop the output. Depending on what your Terminal window tells you you might get some hint.

Another command in Terminal "xmodmap -pk" delivers a list of your keyboard's Keycodes and Keysym-values. Maybe there is s.th. unusual shown there. You might post relevant output here.