So, one of this month’s Windows XP updates, KB2686509, has a problem. Long story short, in order to fix a security problem, Microsoft had to make the rules more strict for software that installs custom keyboard layouts. If I’ve understood correctly, most software already does it the recommended way, but if you have software installed that is incompatible with the new rules the update will refuse to install. You may be able to fix the problem yourself, or you may have to contact your software vendor.
That isn’t actually the interesting part. The update will also refuse to install if you’ve remapped a key, for reasons that aren’t entirely clear.
Thought for today: If God wanted us to remap keys, he’d have given us a control panel.
Nah, too easy an answer. People have reasons for wanting to remap keys, and the process is, or at least was, documented. If Microsoft are going to make it that easy, of course people are going to do it, and it shouldn’t cause strange problems years later.
No, this is another case of too many moving parts. We need to be able to configure this sort of thing, sure, but it needs to be done in a controlled way, so that issues can be avoided, or at least properly identified. Of course, none of the suggestions in my previous post would have addressed this issue, so the question becomes: what should the ideal operating system do to deal with this sort of situation?
I think the solution  is to associate changes to the registry (or rather, its equivalent) with the application (or component) that made those changes. This would probably be implemented by keeping a collection of registry settings for each application; a query for a particular setting would return the default value only if no application had made any changes. As a bonus, you’d know when two applications or components were in conflict, although to be honest I’m not sure what you’d do about it.
(This doesn’t mean that you couldn’t make ad-hoc changes; in this context, an “application” could be a single text file, not much different from a Windows .reg file except that it would have to include a name to go in the list of installed software. The registry editor could build these for you.)
Anyway, if Windows worked like that, KB2686509 wouldn’t have had to, metaphorically speaking, shrug its shoulders at you. It would know which application had configured the setting it was upset about and could say something like, “I can’t install because I am an incompatible with the installed program, Freddy’s Keyboard Mapper. Please contact the vendor for an upgrade, or uninstall that program and try again.”
I think that would have upset fewer people.
 By solution, I mean a way for a hypothetical new operating system to avoid running into this sort of trouble. It would not be feasible to modify Windows to work in this way.