Can I make Ctrl+Alt NOT act like AltGr on Windows?

21,798

Solution 1

I have researched further and looked at the other answers. It seems like the short answer is: No! Windows treats Ctrl+Alt and AltGr identically.

But there is a hack. Essentially we do not let Windows handle AltGr key bindings and instead use a third party tool that knows the difference. We do this manually for every singe key.

This hack does not work with "dead keys" such as ~ or ^.

.

Part 1: Let AutoHotKey convert AltGr+Some Key to symbols
AutoHotKey can distinguish between AltGr and Ctrl+Alt. It can also transform keystrokes like AltGr+2 to a single symbol @, before Windows applies its keyboard layout.

  1. Download and install AutoHotKey
  2. Create a new script, i.e., a plain text file with the extension .ahk
  3. For each character you want to write with AltGr+BUTTON=CHAR, create a line like this:
    <^>!BUTTON::SendInput {raw}CHAR
    Example: AltGr+2=@ becomes <^>!2::SendInput {raw}@
  4. Save the script

If you want to test your script, you can create some arbitrary mapping like <^>!t::SendInput {raw}tttt. Double click the script to apply it and test if AltGr+t produces four t's when you type.

.

Part 2: Get windows out of the way:
We want to remove all assignments of AltGr+Any Key on they keyboard, so Windows never convert them into characters.

First we need to create a new keyboard layout.

  1. Download The Microsoft Keyboard Layout Creator. It is a simple tool that lets you modify your keyboard layout. (Download link)
  2. Open to tool and File -> Load Existing Keyboard and choose your keyboard layout.
  3. Select File -> Save source as and give it a new name.
  4. Tick the Alt+Ctrl (AltGr).
    You might want to select File -> Save as Image to make a note of the original assignments.
  5. Remove all assigned keys, by clicking them, deleting the symbol, and click OK
    Do not clear any dead keys! (The grey ones). Check for all modifiers i.e. AltGr, Ctrl, Alt, or none!
  6. Go to Projet -> Propertie and give it a decent name and description.
  7. Save it: File -> Save Source File so you can edit it later
  8. Export setup: Project -> Build DLL and Setup Package

Then we need to apply this new keyboard layout.

  1. Find the exported setup files in you Documents folder, and double click setup.exe. This will install your new keyboard layout.
  2. Open the input setting by going to Control Pannel -> Change keyboards and other input methods -> Change keybords
  3. Click Add select you own keyboard and make it default.
    Come back here and remove the standard keyboard, once your confident everything works well.

.

Part 3: Let AutoHotKey take over:
Now lets put everything into action:

  1. Make sure your new keyboard is selected in the language task bar, and AutoHotKey is not running minimized in the notification tray.
  2. Try to type your special characters. This should not work.
  3. Double click on you AutoHotKey script. So it launches
  4. Try to type special characters again. This should now work with AltGr only.
  5. To make sure the script is loaded when Windows starts, create a short-cut to it in the Start Menu\Programs\Startup folder

That's it! (ツ) You can share the keyboard layout setup files and the .ahk script, with other computers to skip most of the steps.


Other resources:
http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/replace-default-windows-keyboard-shortcut-behavior/0c5ff2a4-6bea-49a9-88bc-669049a1e107
http://office.microsoft.com/en-us/word-help/alt-gr-keys-HP005259063.aspx
https://devblogs.microsoft.com/oldnewthing/20040329-00/?p=40003
http://www.autohotkey.com/board/topic/61625-how-to-avoid-that-ctrl-alt-altgr/

Solution 2

I found out that the numeric keyboard can be used instead of regular number keys to activate Google Docs shortcuts. Using AHK this works also on laptops without numeric keys. For example,

<^<!2::SendInput ^!{Numpad2}

will activate header 2 without printing @. No need to use MSKLC.

Solution 3

I would recommend you to have a look at AutoHotKey. Its a free Tool and you can also change shortcut-effects very easy. Have a look at the Hotkey-Documentation at their website. It is really easy to understand and really easy to use. You can remap every key/shortcut.

Share:
21,798

Related videos on Youtube

Bittenus
Author by

Bittenus

Updated on September 18, 2022

Comments

  • Bittenus
    Bittenus over 1 year

    Many applications like Google Docs use Ctrl+Alt shortcuts like Ctrl+Alt+2 for heading 2, Ctrl+Alt+m for comments etc. However, in case of international keyboards' layouts, Ctrl+Alt is mapped to AltGr, so many of these shortcuts produce special characters instead, e.g. Ctrl+Alt+2 = @. Therefore these shortcuts can not be used.

    Is there a way to disable this Ctrl+Alt = AltGr, such that AltGr+2 = @ but Ctrl+Alt+2 can be used as a shortcut?


    There has been some earlier post with answers related to this problem:

    Both solutions are however related to unassign the special character completely. These solutions do not disable the Ctrl+Alt = AltGr binding. This means, that in order to use Ctrl+Alt+2 as a shortcut, I am not able to write @ at all, which is naturally not an option.

    • Dave
      Dave almost 11 years
      Did you try AutoHotKey
    • mancestr
      mancestr over 7 years
      Did you ever make the script? If so, could you share it?
  • Piotr Dobrogost
    Piotr Dobrogost over 10 years
    Another valuable resource is Michael Kaplan's blog.
  • Vomit IT - Chunky Mess Style
    Vomit IT - Chunky Mess Style over 6 years
    Please clarify and add a little more context to this answer to convey what you are suggesting exactly. You know, consider adding some reference to this answer supporting what you state. Otherwise, read over "Why do I need 50 reputation to comment" to ensure you understand how you can start commenting.
  • phuclv
    phuclv almost 6 years
    removing AltGr+Key assignments will only work if your language doesn't require the use of AltGr
  • CervEd
    CervEd over 4 years
    I got this to kind of work. Problem is the Keyboard Layout Creator is buggy. Be prepared to install and uninstall layouts multiple times. Sometimes uninstalls don't work the first time. The description doesn't update properly, which you can fix in the registry Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Key‌​board Layouts`, the DLLs can be found in System32`. I give up at making this work 100% at this point
  • CervEd
    CervEd over 4 years
    Seems like Windows needs to reboot to do some keyboard related things, like reflect updated descriptions and removing deleted keyboards from the control panel. This was way more of a pain in the ass then I had hoped. Seems to work okay now though. Had to create explicit capitalization commands in AutoHotKey, ie both <^>!q::SendInput {raw}ä and <+<^>!q::SendInput {raw}Ä
  • Harry
    Harry over 2 years
    What if I want the opposite? I want AltGr characters to work normally, but I don't want the shortcuts bound to Alt+Ctrl to steal and disable my special characters available with AltGr. In Polish keyboard, AltGr+s gives "ś" but if a programs maps Ctrl+Alt+s, then I can no longer type "ś". Is it fixable? I mean to Ctrl+Alt+s to activate a shortcut, but AlgGr+s type "ś"?