Search code examples
keyboard-shortcutsautohotkeyglobalizationkeyboard-hookdead-key

Why are dead keys not working with some letters in AutoHotkey?


In an AutoHotkey script, why do dead keys not work with some letters? As an example, when running AutoHotkey with the following script:

#InstallKeybdHook
EndKeys = {LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{RWin}{AppsKey}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{BS}{Capslock}{Numlock}{PrintScreen}{Pause}

<^>!`::
Input, SingleKey, L1, EndKeys
IfInString,SingleKey,a
Send,{U+00E0} ;à
IfInString,SingleKey,e
Send,{U+00E8} ;è
return
return

then pressing the combination of Alt-Gr & Grave, followed by an 'a', i get à, OK, but Alt-Gr & Grave, followed by an 'e' does NOT produce è.

The issue is not related to grave (`), the same thing happens with any other dead keys (like circumflex, acute, macron etc.)

In my particular case, the letters not working are: e y s d k n. Could it have something to do with the keyboard layout? (I am using a UK English). Any ways of approaching the issue to ensure the dead keys will work?

Thank you!


Solution

  • In my particular case, the letters not working are: e y s d k n

    Try reorganizing these letters. I find this very hillarious indeed. Please insert any expression of laughter yourself, for it would not be welcomed on stackoverflow if I did.

    You forgot to include your %'s. It should be

    Input, SingleKey, L1, %EndKeys%
    

    Otherwise, only e, n, d, k, y, s will be recognized as EndKeys