Snow Leopard broke Control and Caps Lock swapping

9/1/2009 Update: The problem turned out to be related to the wireless USB hub for Logitech’s MX Revolution (and others?) mouse. If you unplug it before you change the Modifier Keys the changes do take effect. You can then plug the Logitech USB dongle back in and everything works fine. I tried every combination of plugging my keyboard into my computer but the Logitech dongle was plugged into the back of my display so I didn’t think to try it. Michael Richardson figured it out.

I installed Snow Leopard this morning and discovered that they broke the most important feature of any OS: swapping Caps Lock and Control. The Control key isn’t used much by most users, but developers use it all the time. In fact, it’s safe to say that no developer worth his/her salt doesn’t swap their Control and Caps Lock keys and I haven’t had an OS in decades that didn’t do this… until now. Actually, Mac OS X didn’t do this officially until 10.4, but you could edit a .plist file to swap the keys, which was good enough. In 10.4 they conveniently put the feature in System Preferences and officially supported it. Until Snow Leopard broke it. Not even the manual way to change it works anymore.

To be clear, this setting in the System Preferences Keyboard pane has no effect whatsoever, not just for Caps Lock but for any of the keys:

It’s bad that the retarded [Update after finding out the true cause of the problem: My apologies to the Apple developer for calling them “retarded”, I should be calling the Logitech developer “retarded” because they obviously did something non-standard with their driver for the USB dongle] developer that broke this didn’t even bother to test their change themselves. It’s inexcusable that the entire time this was broken during the development of Snow Leopard (12 months?) nobody at Apple noticed it, not even their developers.

This is like an auto mechanic never noticing that his wrench is broken. Or a bartender never noticing that his corkscrew doesn’t work.

That no developer noticed this means that either the developers at Apple don’t use the Control key or they don’t mind bending their pinky back to reach the normal Control key the 3,000 times a day that every programmer’s editor requires that you use the Control key. It’s not possible that they don’t use the Control key because even the crappy editor in XCode, Apple’s development IDE, makes heavy use of the Control key. In my 20+ years of software development I have never known an editor that doesn’t use the Control key more than any other key. Even vi, the (great) editor whose design goes to great lengths to avoid using anything other than alphanumeric keys, uses the Control key heavily.

So the only logical conclusion is that Apple’s developers use the Control key in that god-awful location in the lower-left of the keyboard. That’s good, because it means that Apple will one day get sued by all their employees for the injuries that keystroke causes.

How long until 10.6.1 comes out? 3 months? 4 months? And will it even be fixed in that??! Apple is notoriously slow at fixing bugs or even acknowledging them, especially ones like this they obviously think is minor, that they make Microsoft look downright responsive to bug-fixes. Sometimes I really really hate Apple.

Postscript: When are we going to finally get rid of the stupid Caps Lock key anyway?!? Who has used that key in the last 40 years? What kind of typist types anything in all caps or can’t be bothered to hold the Shift key down? All Caps were useful back in the 1940s when people didn’t have bold, italics or underlines on their typewriters. Why are we still making keyboards with this worthless and dangerous key?

13 thoughts on “Snow Leopard broke Control and Caps Lock swapping”

  1. After I installed Snow Leopard, the Caps Lock started locking caps again. I agree with you — the Caps Lock key has been outdated for decades. It’s has always bugged me because I hit it by accident. WHO TYPES IN ALL CAPS ANYWAY!?!

    But I was able to fix it using system preferences setting the modifier keys like you show. I am using a 2009 MacBook Pro and my keyboard is listed as “Apple Internal Keyboard / Trackpad”. Maybe it’s a driver issue.

  2. Michael Richardson’s comment was not automatically approved so I didn’t see his comment until now, I just happened to check Apple’s support forums again. Crikey, I could have had this fixed yesterday! Thank you, thank you, thank you Michael!!

  3. Congratulations on your sophomoric use of the word “retarded.” It’s interesting that you are quick to speak of developers being worth their salt based on their control key preferences (I actually don’t switch mine and sleep well at night) when you couldn’t execute basic troubleshooting tasks.

    Here’s a hint:

    1) Disconnect all peripherals
    2) Create a new user
    3) Log in as new user
    4) Test problem

    Follow those basic 100-level steps and you would have been well down the path to fixing the problem yourself.


  4. @Rick Deckard: You are obviously retarded because my use of “retarded” is valid. Here’s a hint: it doesn’t only mean mentally-retarded.

    I did remove all peripherals, except for the Logitech dongle because it was hidden to me and I had forgotten about it. IOW, it’s a mistake. Some of us make them, you may make one too yourself someday. Oh wait, you already did.

    Sorry if you’re offended that I think you’re a lousy developer based on your position of the Control key. More proof that you’re retarded is that you couldn’t detect the hyperbole.

    BTW, you’re a dork, and retarded, for using the Blade Runner character’s name.

  5. “Follow those basic 100-level steps and you would have been well down the path to fixing the problem yourself. ”

    Spoken like a true MS help desk tech. Why exactly should people need to create a new user b/c snow leopard broke things?

  6. Thank you. I had the same problem – the culprit was a Logitech MX516 mouse. After unplugging the mouse, restoring default keyboard settings, then going back and swapping my buttons, everything works. I ended up having to swap BOTH (or at least, the second) keyboard profile under “Modifier Keys” before it worked.

    @Troy Sorry to pick nits, I believe most vi users would prefer to switch their caps lock key to Escape, rather than Control. (I also happen to be a developer who does not remap the control key.)

  7. Thank you for this information, I was going crazy with Vim when my CTRL stopped working and turned into Caps Lock. The culprit was my Logitech Trackball. Just unplugged it, set the preferences and then plug the trackball back again. Works now 🙂

  8. A late reply, but I’m having a similar problem where although the “extra control key” solution works for me, as soon as I unplug my Microsoft ergo keyboard (well, technically I’m unplugging the Apple monitor that’s acting as a USB hub for my M$ kb/mouse) and plug it back in again, I lose the setting.

    In this case, I’m inclined to blame the Microsoft drivers, which have a separate preferences pane – unfortunately, they only have a “swap ctrl and caps lock” option, which (since my fingers are now totally confused) I hate, since I accidentally hit the “real” ctrl key nearly as often as the remapped version. I’ve tried setting it in both pref panels, to no avail, it always resets itself when I plug back in. My theory is that the Microsoft prefs notice that I haven’t set it to swap, and “helpfully” force it to the unmapped setting.

    Since I undock to go to meetings all day, its pretty irritating. Anyone tripped across this (given how old this blog post is, I feel like I’m writing a note in a bottle for future search engine users…)

  9. This solution worked for me (after trying lots of others)…
    simply unplugged the logitech mouse and the MS natural keyboard dongle.
    Then I plugged the keyboard dongle back in, and modified the setting in Settings
    Everything now works
    (not sure what caused this to happen in the first place, but at least it’s working now)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s