2

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)
3
  • If Karabiner events sees "escape" as it should, it's sending the correct scan code, however, what you're getting for fn-Esc doesn't look right (Esc should be code 61). See this post for how to use xev (included with macOS) to obtain scan codes. Also try testing in Safe Mode – Allan Oct 2 '18 at 11:42
  • I am using Karabiner Elements which allegedly doesn't register FN. To make this even more mysterious: Key Codes on my MacbookAir returns for Escape (w or w/o FN) >>Keys: Escape / Key Code: 53/0x35 / Modifiers: 256/0x100<< EventViewer simply returns: >>0x29/escape<< and xev returns: >>keycode 61 (keysym 0xff1b, Escape)<< – clemsam lang Oct 2 '18 at 15:27
  • yeah I don't feel the problem is getting much clearer... – flowen Oct 3 '18 at 14:58
1

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.

4
  • 1
    Thanks for the suggestion @clemsam_lang but neither xev or xmodmap come pre-installed in OSX. I looked it up and it seems a tool for ubuntu.. perhaps you know how to installed it in OSX? So I went looking for other alternatives. I found an app called 'Key Codes' and edited the post with the results – flowen Oct 2 '18 at 9:51
  • 1
    You will need to install an X11/X.Org server to get xev and xmodmap. This used to come bundled with OS X, but now you have to download and install it separately from xquartz.org. – calum_b Oct 2 '18 at 10:15
  • I added the results in the topic... but not sure what else to do with it – flowen Oct 3 '18 at 14:58
  • Actually I had quite a similar problem with a non-Apple keyboard whose Windows "context menu key" showed no reaction until I installed a special file "ApplePS2SmartTouchPad.kext" which down in its deepest recesses offered a setting "Make context menu key into key". There I assigned -quite randomly- key number "16" to it which Karabiner (EventViewer) now sees as "scan_previous_track" – and successfully remaps to any key I want. (There is a more advanced "VoodooPS2Controller.kext" that's mainly used in hackintosh devices; that one does not work with my older keyboard, though.) – clemsam lang Oct 4 '18 at 9:58
0

I still haven't found out WHY it's suddenly this way. But I found a solution. In karabiner-elements I bound escape to escape and this overwrote whatever happened before :) Should've thought of this earlier

0

In my case it was the BetterTouchTool. I removed it and all of a sudden my ESC key worked again like before :)

0

All software solutions did not work out for me so used hardware one. Literally made fn key always pressed. Now my K1280 keyboard upper row is the same as genuine apple keyboard.

2
  • How did you “literally make all fn keys pressed?” Explaining how to do something goes a long way in making a good answer. – Allan Sep 10 '20 at 3:02
  • I taped fn key carefully so it's always pressed. It does not look that ugly and it does its job very well. Finally I got Esc key in VIM! :) – sergio Sep 11 '20 at 6:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .