Why Ctrl+Alt shouldn’t be used as a shortcut modifier

Date:March 29, 2004 / year-entry #124
Tags:history
Orig Link:https://blogs.msdn.microsoft.com/oldnewthing/20040329-00/?p=40003
Comments:    22
Summary:You may have noticed that Windows doesn't use Ctrl+Alt as a keyboard shortcut anywhere. (Or at least it shouldn't.) If a chorded modifier is needed, it's usually Ctrl+Shift. That's because Ctrl+Alt has special meaning on many keyboards. The combination Ctrl+Alt is also known as AltGr, and it acts as an alternate shift key. For example,...

You may have noticed that Windows doesn't use Ctrl+Alt as a keyboard shortcut anywhere. (Or at least it shouldn't.) If a chorded modifier is needed, it's usually Ctrl+Shift.

That's because Ctrl+Alt has special meaning on many keyboards. The combination Ctrl+Alt is also known as AltGr, and it acts as an alternate shift key. For example, consider the German keyboard layout. Notice that there are three keyboard shift states (Normal, Shift, and AltGr), whereas on U.S. keyboards there are only two (Normal and Shift). For example, to type the @ character on a German keyboard, you would type AltGr+Q = Ctrl+Alt+Q. (Some languages, like Swedish, have a fourth state: Shift+AltGr. And then of course, there's the Japanese keyboard...)

Most international keyboards remap the right-hand Alt key to act as AltGr, so instead of the finger-contorting Ctrl+Alt+Q, you can usually type RAlt+Q.

(For reference, here are diagrams of several other keyboard layouts, courtesy of my bubble-blowing friend, Nadine Kano.)

Sometimes a program accidentally uses Ctrl+Alt as a shortcut modifier and they get bug reports like, "Every time I type the letter 'đ', the program thinks I want to start a mailmerge."

[Raymond is currently on vacation; this message was pre-recorded.]


Comments (22)
  1. SteveM says:

    Any idea why AltGr + Del doesn’t bring up the Task Manager?

  2. Mike Dimmick says:

    Oddly, the UK keyboard has an AltGr key despite only having two symbols that can be accessed with this key – the broken bar ¦ and the Euro symbol € (which has only been added in the last five years).

    This causes problems with the default key-mapping on Virtual PC and the Pocket PC emulators, which use Right Alt as the host key. The additional Ctrl generated by AltGr makes it through to the hosted OS and usually confuses it, because the release of the key doesn’t get through. Ctrl is ‘stuck’ down until you press and release Ctrl.

    So I use Right Windows as the host key instead.

  3. Mike Dunn says:

    Using a US keyboard to type Japanese is fun. You get neato shortcuts like Alt+` and Shift+Caps Lock.

    The funny thing is, I almost always use my left hand for the three shift keys (old habit I picked up when my C=128’s right shift key broke) so Ctrl+Alt+Q is no problem for me ;)

  4. Dan Maas says:

    Also note that if you have an icon on your desktop, you can set up a "shortcut key" (Properties->Shortcut) that is always Ctrl+Alt+Something. So it would be bad for applications to take over these user-created keyboard shortcuts.

  5. Scott says:

    Is the "Gr" for Grey?

  6. Centaur says:

    So, how come AltGr is not widely used in other layouts, seeing as there are so many characters that have to be typed via Alt+0nnn? All kinds of smart quotes, dashes, ellipsis, degree sign, ­copyrights and trade marks, and so on… if they were on the keyboard, maybe people would learn to use them. Now they just don’t bother learning the codes or opening Charmap.

    It was only recently that I found a usable tool to map the keyboard to my liking — the Microsoft Keyboard Layout Creator. In Windows 9x times, there were several third-party tools, but they usually messed up key names (so when you assigned Ctrl+Shift+Q to a program shortcut, the properties dialog displayed Ctrl+Shift+W or so).

    By the way, the feature that allows Caps Lock to behave completely different from Shift seems really handy. I’ve set it up so base mode and Shift act as the US layout, Caps and Caps+Shift act as the Russian layout, and AltGr enters typographical characters. The only drawback I notice is that Word now thinks all input is in Russian, marks paragraphs appropriately and starts complaining at English words.

    What inspired me to remap the layout in such a way is the lack of flexibility in layout switching. Suppose I have US, Russian and Japanese IME installed. US is used all the time to enter shell commands, source code and English text. Russian is used fairly often for communication. Japanese is used only occasionally. In this use case, I would like to have one key to toggle between US/Russian, and another key to switch to the rarely used Japanese. Instead, what Windows offers me is: Ctrl+LShift (two keys) to cycle in one direction, Ctrl+RShift (two other keys) to cycle in another direction (so I had to remember which to use to switch from US to Russian, and which to use to switch back, as the wrong one would activate Japanese), or Alt+Shift+0..9 to switch to any installed layout (so I had to memorize what activates what, and also make unnatural three-finger chords at each switch). Switching layouts is a very frequent operation for cyrillic-writing users, it deserves a rich choice of one- and two-key switches. Third-party switchers offer all Shift, Ctrl and Alt keys alone and in combinations with each other. RShift and RCtrl seem to be very popular, and there are those who for some reason like Shift+Shift, an ancient combination invented in the dark times of DOS, long before DOS 5.0 gave us Keyb (disliked for its beeping and the same lack of flexibility).

    Sorry for this stream of thought :)

  7. Hm, I always thought the Gr was short for Graphic, but I’m not sure…

  8. Christian says:

    The great thing in the company I work is that the terminal services client has problems with the @-sign.

    We use german layout and keyboards and often one has to press AltGr+Q twice or more until it is recognized as @.

    ALT+STRG+Q always works

    I already called MS support and they could reproduce it and filed a bug. That was more than a year ago!

  9. Norman Diamond says:

    3/29/2004 10:09 AM Mike Dunn:

    > Using a US keyboard to type Japanese is fun.

    > You get neato shortcuts like Alt+and
    <br>&gt; Shift+Caps Lock.
    <br>
    <br>The US keyboard has
    in the same place where the Japanese keyboard has ??/??? Traditionally, Alt + ??/?? turned the IME on or off, and the key is still labelled that way. But since Windows 98 and Windows 2000, even without pressing Alt, that key now turns the IME on or off, and if you really want to input hankaku katakana then you have to use a different way to set it. But only with a Japanese keyboard can you omit Alt. If that change were made to a US keyboard, you wouldn’t be able to input when you wanted to.
    <br>
    <br>Shift + Caps Lock turns Caps Lock on or off. Ctrl + Caps Lock turns something else on or off (it's labelled ?? but I'm not skilled in its usage). Alt + Caps Lock turns something else on or off (it's labelled ???? but I'm not skilled in its usage).
    <br>
    <br>Anyway, on the keyboard itself, Shift does shifting just like on a US keyboard, Ctrl does ctrling just like on a US keyboard, and there is no AltGr. All other state modification is done in the IME. When you have to find the cumbersome technique to force Windows to use the Japanese-106 driver vs. the US-101 driver, it's not really a difference in driving, it's just a matter of knowing the layouts of keys like
    and [ and : and ^ etc. This is because at the layout level where you can say US or UK or German etc., those change the layout, but if you say Japanese then it enables usage of the IME but assumes US layout. Hack on hack on hack. Why couldn’t the layout layer just say what the layout is and the IME layer just say what the IME is.

  10. H. Monkey says:

    Shouldn’t any program worth its salt that uses such strange chording arrangements have a well-documented method for changing the setup anyway?

    The new version of WinAmp is the only program I can I’ve used that has Ctrl-Alt-<something> keystrokes by default. Not only can you change them, but wouldn’t WinAmps use of Insert, Home, PgUp, etc. instead of the core 40-something keys circumvent the AltGr problem? Of course, I didn’t find it well documented in WinAmp – I just meandered through the preferences until I found it.

    Also: my sincerest thanks, Mike Dunn. I’ve spent a lot of time trying to find the Ctrl-Caps and Alt-Caps toggles in Microsoft’s IME. Neither the English .chm or browsing methodically through the settings helped me find that one.

  11. DrPizza says:

    "Microsoft Keyboard Layout Creator"

    Annoyingly, this otherwise useful tool doesn’t /quite/ let me do what I want.

    What I want is a terminal-style compose key (using alt-gr as the compose key). This would let me go alt-gr, firstkey, secondkey to get non-standard characters.

    Unfortunatlely, it won’t quite manage this. I can do alt-gr+firstkey, secondkey (as I can set alt-gr+firstkey to be a dead key), and I can make it symmetric, so I can type alt-gr+secondkey, firstkey. But what I can’t do is to set the alt-gr to be sticky.

    The stickykeys feature in Windows appears to work fine for normal keymaps, so would provide a solution. Unfortunately when used with a custom, msklc-generated keymap, it leaks handles at an extraordinary rate (whenever I press a metakey it leaks a handle) rendering it essentially unusable.

  12. Vigor says:

    I’m from Germany. Before I read this article, I didn’t even know that AltGr is a shortcut for Alt+Ctrl (which happens to be called Strg on German keyboards), although I use this key every day to type email adresses. It was also interesting to learn that US keyboards don’t have this key. Which explains why some programs behave strangely when I try to type any of {[]}~|@€µ. Great article!

  13. Robert Morris says:

    Vigor … I had no idea non-US keyboards *did* have AltGr keys. I suppose we have the opposite issues. :-)

    Thanks to Raymond, now I do. I’ll have to check out this.

  14. Jeroen says:

    Actually, VS.NET 2003 (and older version as well) have default Alt+Ctrl shortcuts, like Alt+Ctrl+X for the GUI toolbox.

  15. andy says:

    I use Ctrl-Alt-W to run Word, Ctrl-Alt-X to run Excel, Ctrl-Alt-I to run IE etc etc. these can be set by entering a letter in the shortcut key field on the properties of the shortcut. my question though is why doesn’t this always work? just had my pc rebuilt and it no longer works for everything , any ideas anyone?

  16. Kev says:

    With regards to the UK keyboard only having two altgr combonations – it has 7 and 5 alt-gr+shift combos

    AltGr + a = á

    AltGr + e = é

    AltGr + i = í

    AltGr + o = ó

    AltGr + u = ú

    AltGr + Shift + A = Á

    AltGr + Shift + E = É

    AltGr + Shift + I = Í

    AltGr + Shift + O = Ó

    AltGr + Shift + U = Ú

    (or AltGr + the character with Caps Lock On)

    The most pointless key has to be the duplicate Windows key though!

  17. Kev says:

    The ones i listed are in addition to the

    AltGr + ` = ¦

    and

    AltGr + 4 = €

  18. Raymond Chen says:

    Commenting on this entry has been closed.

Comments are closed.


*DISCLAIMER: I DO NOT OWN THIS CONTENT. If you are the owner and would like it removed, please contact me. The content herein is an archived reproduction of entries from Raymond Chen's "Old New Thing" Blog (most recent link is here). It may have slight formatting modifications for consistency and to improve readability.

WHY DID I DUPLICATE THIS CONTENT HERE? Let me first say this site has never had anything to sell and has never shown ads of any kind. I have nothing monetarily to gain by duplicating content here. Because I had made my own local copy of this content throughout the years, for ease of using tools like grep, I decided to put it online after I discovered some of the original content previously and publicly available, had disappeared approximately early to mid 2019. At the same time, I present the content in an easily accessible theme-agnostic way.

The information provided by Raymond's blog is, for all practical purposes, more authoritative on Windows Development than Microsoft's own MSDN documentation and should be considered supplemental reading to that documentation. The wealth of missing details provided by this blog that Microsoft could not or did not document about Windows over the years is vital enough, many would agree an online "backup" of these details is a necessary endeavor. Specifics include:

<-- Back to Old New Thing Archive Index