1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Dead keys cause beep to sound

Discussion in 'Support' started by gschizas, Nov 11, 2013.

  1. gschizas

    Joined:
    May 30, 2008
    Messages:
    81
    Likes Received:
    0
    I think I've asked this in the past (in another incarnation of the JPSoft forums), but I don't remember the answer.

    The problem is this: If you have a keyboard that uses dead keys (such as Greek or US-International), each time you press a dead key (for example the ";" key in the Greek keyboard or the single quote key in US-International), a beep is heard. This can be very distracting. This behavior doesn't happen with cmd.exe or powershell, so it's almost certainly some TCC.EXE behavior. TCC exhibits this either when running standalone, or inside TCMD (or inside another console wrapper). On the other hand, CMD.EXE and PowerShell.exe do not beep either standalone or inside a console wrapper.

    My question: Is this intentional? If so, how can it be disabled? If it not intentional, of course this must be a bug, by definition :)
     
  2. rconn

    rconn Administrator
    Staff Member

    Joined:
    May 14, 2008
    Messages:
    10,027
    Likes Received:
    84
    TCC isn't doing anything with dead keys. However, TCC uses a different Windows API than CMD or PowerShell for input (character vs. line input), so the bug (if any) would be in Windows.
     
  3. gschizas

    Joined:
    May 30, 2008
    Messages:
    81
    Likes Received:
    0
    Well, if it using a different API, maybe it shouldn't? Bash manages to have a completely custom tab completion, coloring etc. without beeping on dead keys. In any case, the beep that comes out when you press a dead key is exactly the same as the one that sounds when you press an unassigned key (e.g. F2). So, the beeping is definitely TCC and not Windows. There are a couple of good workarounds here: (a) make it so that BEEP does not occur when a dead key is pressed, either by hardcoding it, or by assigning some null function to the dead key press (b) disable beeping for unknown keys altogether.
     
  4. vefatica

    Joined:
    May 20, 2008
    Messages:
    8,063
    Likes Received:
    30
    It'd be nice to be able to turn off all beeping on keystrokes. I have no dead keys but I have never been fond of unassigned keys causing a beep.
     
  5. rconn

    rconn Administrator
    Staff Member

    Joined:
    May 14, 2008
    Messages:
    10,027
    Likes Received:
    84
    Change your default beep (OPTION / Advanced) to something inaudible.
     
  6. gschizas

    Joined:
    May 30, 2008
    Messages:
    81
    Likes Received:
    0
    That's not really quite the answer though, is it? You want the beep occasionally (e.g. when trying to tab through a non-existent filename), just not when pressing a dead key (or any other unassigned key).



    BTW, the dead keys that I found are:

    1. Greek tonos (΄, i.e. you press ΄ (; on most keyboards) and a/α and you get ά, shift-΄ and ι to get ϊ): 0x00010027 (Greek keyboard)
    2. Grave accent (`, i.e. press ` and a to get à, or shift-` and a to get ã) : 0x00010029 (US International)
    3. Acute accent (', i.e. press ' and a to get á, shift-' and a to get ä): 0x00010027 (US International)
    4. Circumflex (^, press Shift-6(^) and a to get â): 0x00010007 (US International)

    You will notice that all of them have the "FBIT" set; I don't know if this helps at all... I still think it would be easier to *not* beep when entering an unknown/unhandled character, or if that fails, just allow binding of a null function to keys: Just as can you have for example HistWinOpen=Shift-F2, just put NullFunction=0x00010027 (multiple times if required, e.g. NullFunction=0x00010027, NullFunction=0x00010029 etc.)
     

Share This Page