Fixing Inverted Caps Lock on VMWare Fusion, Parallels, or Remote Desktop

UPDATE: although this post was originally written in regards to running Windows in VMWare Fusion, as pointed out by multiple kind people who have commented on this post, this information is also useful for those accessing Windows through means other than VMWare Fusion including Parallels and Remote Desktop. Accordingly, I have changed the title of the post to include Parallels and Remote Desktop.

I use a MacBook Pro and on it I run VMWare Fusion on top of which I run Windows XP. Normally, when Caps Lock is on in the Mac, it's on in the Windows XP instance and when Caps Lock is off in the Mac, it's off in the Windows XP instance. However, from time to time, on the Windows XP instance Caps Lock becomes "inverted"--that is, Caps Lock on the Windows XP instance is reversed from what it is on the Mac. So on the Mac, Caps Lock will be off and on the Windows XP instance, Caps Lock will be on. Or, the Mac Caps Lock will be on--and so will be the light on the Caps Lock key--yet the Windows XP instance Caps Lock will be off.

Okay, now that I've established the problem, I'll go ahead and explain the solution, then for those interested, I'll backtrack into the details.

UPDATE: there is, at least in VMWare Fusion 2.0, a simpler solution than I originally detailed in this blog post (that original solution and my explanation of the cause of the problem are still included below): go to the Virtual Machine menu in VMWare Fusion and choose Send Key ==> Caps Lock. You'll note while you're there that there are a number of other keys you can send as well; I discovered this whole capability tonight while looking around to try to find a way to send the Insert key (Insert had gotten toggled on in Internet Explorer and I wanted to toggle it back off) which I didn't know how to do directly because the MacBook Pro keyboard has no Insert key.

UPDATE: as pointed out by Bob in one of the Comments to this entry, another simple solution is to launch the On-screen Keyboard application (generally this can be done by choosing Start ==> All Programs ==> Accessories ==> Accessibility ==> On-screen Keyboard; as noted by DrFooMod2 in a comment below, you can also bring up the On-screen Keyboard by typing "osk" without the quotes in the Windows Run... box) and toggle Caps Lock by clicking on the virtual "lock" button in the application. The On-screen Keyboard application shows--and can change--the state of Caps Lock in the Windows XP instance without any regard to the state of Caps Lock on the Mac itself.

So here is the solution: in the Windows XP instance, open an application that can toggle Caps Lock (didn't know Windows apps could do such a thing? Surprise!) such as Microsoft Word and go into whatever context is required for the app to toggle Caps Lock (in Word, that means typing in a document). Make sure Caps Lock on the Mac is off; this will mean that Caps Lock in the Windows XP instance is on. Start typing normally (that is, as if Caps Lock in the Windows XP instance is off); if you try to type "Hello" what you'll get instead is "hELLO" but as soon as you hit the space bar, the app will "correct" what you typed to "Hello" and toggle the Windows XP instance Caps Lock off--and as a result, Caps Lock will be back in synch between the Mac and the Windows XP instance. :)

Why does this problem happen in the first place? You've probably figured at least part of that out already: when you use an app that can toggle the Windows XP Caps Lock and you have Caps Lock on but type in a way that the app thinks indicates Caps Lock is on unintentionally, it "helps" you by "correcting" what you typed and turning off Caps Lock on the Windows XP instance for you. This isn't necessarily a bad thing--in a standalone Windows XP instance. However, with consideration to the fact that in this case it causes the Windows XP instance to toggle its Caps Lock but doesn't do the same for the Mac such that the Windows XP Caps Lock and the Mac Caps Lock become out of synch, it's not good. And why doesn't the toggling of Caps Lock in the Mac instance cascade up to the Mac anyway? As well as I can tell, Mac applications do not have the ability to toggle Caps Lock on and off (side note: this makes complete sense when you note the difference between what Windows & Mac do when you press the shift key while Caps Lock is on: on Windows, it's sort of a "double negative" type of thing such that the result is a lowercase letter whereas on Mac, the result is still an uppercase letter--so then it wouldn't make sense for the app to toggle Caps Lock) which means that VMWare Fusion can't toggle Caps Lock on the Mac when it is toggled in the Windows instance (now, I'm not even sure that VMWare Fusion can detect Caps Lock being toggled in the Windows instance but if VWWare Fusion can't toggle it on the Mac then really it's a moot point whether or not it can detect it being toggled in the Windows instance).

One note of interest: the behavior here makes it clear that the Mac-VMWare Fusion-Windows XP instance communication isn't along the lines of "Caps Lock on" or "Caps Lock off" but rather "toggle Caps Lock." See, you'll note that I didn't indicate that to fix the problem you just have to hit the Caps Lock key on the Mac and it will get things back in synch--that would work if the communication were "Caps Lock on" or "Caps Lock off" but since it's just "toggle Caps Lock" all that happens is that the Caps Lock gets reversed the other way around!

UPDATE 2012-07-27: this blog post is 2 days shy of being 4 years old and it's still generating comments! One such comment below states "Here is a simple solution (work around) that worked for me for inverted caps lock (same for num lock). When you are on VM or NXClient press 'alt'+'ctl'+'del', then press the caps lock(same for num lock). Then press 'escape'. Hope this works." I haven't tried this but wanted to pull it up here in the blog post in case it's of help to you. Thanks for the tip, Partha.

Comments
Martin's Gravatar Thanks for the explanation but how to toggle back the Caps Lock if I don't have MS Word on my XP instance ?
# Posted By Martin | 9/9/08 8:20 PM
Josh Adams's Gravatar @Martin--as I said, open an application that can toggle Caps Lock and go into whatever context is required for the app to toggle Caps Lock. So what if you don't have Microsoft Word installed in your Windows XP instance? Use a different application that is able to toggle Caps Lock in Windows XP. I tried to find an application that comes with Windows that is able to toggle Caps Lock but I was unable to do so and so I can't give you specific steps to follow for an application I know you will have. All I can tell you is that you certainly have an application that is able to toggle Caps Lock in Windows XP or you wouldn't be able to get Caps Lock inverted to begin with. Let me know what you figure out!
# Posted By Josh Adams | 9/10/08 12:09 AM
Jan vdP's Gravatar Yes, thanks, thanks, many thanks for the solution!
# Posted By Jan vdP | 9/21/08 7:25 AM
Martin's Gravatar Josh, finally I could revert to normal operation with Caps Lock on my XP instance. Still, I can't totally control the behavior of it. I mainly use Fusion to connect with my PC at my office with Windows Remote Desktop. I did switch back the Caps lock with Word on that XP instance. For some reason, I couldn't reproduce the error. Anyway, now that it works, I hope it won't come back any time soon! Thanks again for your help.
# Posted By Martin | 9/22/08 9:43 PM
Josh Adams's Gravatar @Jan vdP--I'm happy that it helped you; thank you for taking the time to let me know!

@Martin--I'm glad you were able to get the issue worked out; thanks for letting me know. Reproducing the issue with Word should be a matter of turning on Caps Lock and proceeding as if it is not on; note that this must be done with a word that would normally have a leading uppercase letter (so something like mICROSOFT). I may not have been as clear as I should have that in order to get Windows to toggle off Caps Lock, you have to type a word that Windws sees as "inverted" (for lack of a better word). So it has to be "jOSH," it can't just be "JOSH."
# Posted By Josh Adams | 9/23/08 1:01 AM
Bob's Gravatar @Martin: The onscreen keyboard under Start->Accessories->Accessability has the ability to toggle capslock (since its an onscreen keyboard) and should be installed by default on any windows XP instance.
# Posted By Bob | 10/9/08 3:26 PM
Josh Adams's Gravatar @Bob--great point! Thanks for the tip; I have updated the post to include that information.
# Posted By Josh Adams | 10/9/08 6:36 PM
Martin's Gravatar @Bob--Thank you for this trick. I still regularly need to revert the Caps Locks so I'm gonna use this one now !
# Posted By Martin | 10/10/08 8:12 PM
Josh Adams's Gravatar @Martin--I updated the entry a couple of weeks back, but I failed to post a comment to alert subscribers to the change, so I suspect you didn't see it. My apologies. Read the entry for the full details (you'll see a section early on that begins with "UPDATE") but in short, I noted that with VMWare Fusion (at least with version 2.0), you can choose Virtual Machine ==> Send Key ==> Caps Lock to send the Caps Lock. I think using this VMWare Fusion method to correct inverted Caps Lock on the Windows XP instance is more convenient than launching the On-screen Keyboard only for the purpose of fixing inverted Caps Lock (but I guess if you were to leave On-screen Keyboard running all the time then maybe using it would be more convenient).
# Posted By Josh Adams | 10/11/08 9:05 AM
Grey Satterfield's Gravatar Thanks a million for the tip! I don't have version 2.0 so I had to correct the inverted caps keys glitch with the Windows virtual keyboard. It worked like a charm. I feel like I have been let out of jail.
# Posted By Grey Satterfield | 11/3/08 1:36 PM
Josh Adams's Gravatar @Grey--sorry for the slow response here, but you're very welcome! I'm glad to hear I was able to help and I appreciate you taking the time to let me know about it. Once again, props to Bob for pointing out On-Screen Keyboard as an means to fixing this issue.
# Posted By Josh Adams | 11/10/08 5:30 PM
Gail's Gravatar Josh, I am having a sort of "backward" instance from the other posts. On a mac book pro running 10.5.5 with Fusion 2.0.1 and Windows XP Professional, the caps lock is switched for the Fusion login screen only-- in order to type an all lowercase password, I need to turn caps lock on. Once logged into the Windows environment, the caps lock key works normally (so I have to turn it back off). Everywhere I have looked, nobody mentions this particular problem. Any suggestions?
# Posted By Gail | 2/24/09 11:21 AM
Josh Adams's Gravatar @Gail--thanks for brining that up. It's a new one on me, but it will be good for other readers to know about it as a possibility of something they can encounter. Just to be sure on this one: if you go into the user name field on the login screen so you actually can see the characters being typed, do you see capital characters whereas if you go into a Mac application and type you see lowercase characters? What if you use VMWare Fusion Virtual Machine menu ==> Send Key ==> Caps Lock; will that take care of the issue? If so, what happens when you get into Windows--are caps still off or are they on at that point?
# Posted By Josh Adams | 2/25/09 2:06 AM
Gail's Gravatar well, now it's tricky, the name is pre-propagated in the user field, and the password types in as dots (or stars), so I actually don't see the characters. But if caps lock is off (types lowercase in Mac apps) the lowercase password will not be accepted, where when I turn caps lock on, the password is accepted. I tried the Send Key-Caps Lock fix, but all that did was switch the caps lock function when typing in a Windows app (upper to lower case, lower to upper case). I'd had to already turn the caps lock on (and then off) to log in. It may be just some weird fluke. Maybe resetting the password might change it? It is my boss's computer so I'd have to have her bring it in to try a new password.
# Posted By Gail | 2/26/09 12:04 PM
Josh Adams's Gravatar @Gail--right, right--you don't HAVE to type in the user name, but what I'm asking is for you to go to that field and type something anyway to see what you get. If you're out of synch there with the Mac's Caps Lock, then try Send Key ==> Caps Lock and see if that gets you back in synch, then once you get into Windows, see if you're again out of synch of if you're still in synch. You should also make sure the password is actually in the case you think it's in by typing it in the user name field then cutting it and pasting it into the password field.
# Posted By Josh Adams | 2/26/09 4:10 PM
Don Bullick's Gravatar thanks for the tip. it works for Parallels, too. I've been using Parallels to emulate xp for several years and this is the first time I encountered this caps lock problem.
# Posted By Don Bullick | 6/1/09 6:22 PM
RomulusNR's Gravatar A+++ would take windows tips from again. This is a very versatile solution because the problem of inverted caps lock can occur with a number of multi-computer scenarios. Your solution fixed my problem that occurred in a Linux-x2vnc-XP setup. Better than having to kill the connection.
# Posted By RomulusNR | 6/8/09 8:09 PM
Jaime Cerda's Gravatar Great solution, thanks man!!!
# Posted By Jaime Cerda | 9/24/09 9:29 PM
Dil Green's Gravatar Not only is the solution useful (I used the 'send key' version) - but it fixed a problem for me - using my Mac's 'shift' key was having no effect - i was stuck in lower case. But after Send Key > caps lock (twice), the shift key works again!

Thanks!
# Posted By Dil Green | 9/29/09 1:42 PM
Josh Adams's Gravatar @Don, @Romulus, @Jamie, @Dil--I'm glad to hear that this information was helpful to you--thanks for taking the time to let me know! This has certainly proven to be one of my more popular blog posts! Thanks also for the additional information about other platforms and scenarios to which the information applies.
# Posted By Josh Adams | 9/29/09 3:36 PM
Geoff Hart's Gravatar Thanks for this solution... 'twas driving me nuts. fwiw, the same problem happened running Windows XP under Parallels 3.x with Word 2003 -- and survived closing and restarting Word -- but wasn't happening in Word 2007 in the same virtual. Typing hELLO and letting autocorrect fix it solved the problem nicely.
# Posted By Geoff Hart | 1/4/10 3:55 PM
Tim's Gravatar Thanks for posting this, saved me a lot of dramas.
# Posted By Tim | 2/2/10 8:06 AM
craig's Gravatar The 'send keys' idea worked. Thanks for the information.
# Posted By craig | 2/23/10 10:13 AM
Rick's Gravatar Thanks for the capps reversal fix. Who would think that the issue is still lingering out there. I never sould have thought it was a vmvare issue. Great find. Thank youl.
# Posted By Rick | 5/13/10 1:07 AM
Cody Evans's Gravatar Thank You! I was experiencing this problem in Ubuntu (not virtualized) and that trick solved the problem using Open Office instead of Word.
# Posted By Cody Evans | 5/27/10 5:06 PM
Rosi's Gravatar THANK YOU FOR SHARING! It worked!
# Posted By Rosi | 5/29/10 2:37 AM
Jocelyn Truitt's Gravatar Thanks so much for the clear and simple solution! I run a dedicated indexing software program within my Windows 7 within my VMWare within my Mac and I was going nuts trying to figure out exactly where the problem was!
# Posted By Jocelyn Truitt | 9/15/10 1:39 AM
DrFooMod2's Gravatar You can bring up the onscreen keyboard by simply typing osk in the Run... box.
# Posted By DrFooMod2 | 9/21/10 11:17 AM
Dick Bush's Gravatar Updated vmware fusion recently, then upgraded to Quicken 2011 from 2010 running under XP on a MacBook Pro. Suddenly new Quicken was giving me a "cap locks on" message. It was causing all the login info to be rejected. Jocelyn Truitt said, "she was going nuts....", I was on my way. "Why is this happening all of a sudden?" Thanks for the post.
# Posted By Dick Bush | 6/13/11 7:12 PM
Josh Adams's Gravatar I haven't commented on this one in quite some time it seems!

@Geoff Hart, @Tim, @craig, @Rick, @Cody Evans, @Rosi, @Jocelyn Truitt, @Dick Bush: you're certainly welcome for the post; thanks so much to all of you for taking the time to let me know the post was helpful to you--it's very gratifying!

@DrFoodMod2: thanks for the helpful tip on bringing up the On-Screen Keyboard application by typing "osk" (without the quotes) in the Run dialog box in Windows.
# Posted By Josh Adams | 6/17/11 2:24 PM
Semperfiona's Gravatar Thanks! This helped me with my Remote Desktop Connection via Mac. I could never figure out how that capslock inversion was occurring; now I know why, and how to fix it.
# Posted By Semperfiona | 9/2/11 12:29 PM
Josh Adams's Gravatar @Semperfiona: thanks for taking the time to let me know that my post was helpful to you. You're the second commenter who has mentioned this helping on Remote Desktop--I'll update the post to reflect that information as well.
# Posted By Josh Adams | 9/2/11 2:23 PM
lowolabi's Gravatar I salute you sir, the on screen keyboard is the only inbuilt app that can be used, I had the same problem on an Amazon ec2 instance.

Thanks again!
# Posted By lowolabi | 5/18/12 8:36 AM
Partha Pratim Sirker's Gravatar Here is a simple solution (work around) that worked for me for inverted caps lock (same for num lock). When you are on VM or NXClient press 'alt'+'ctl'+'del', then press the caps lock(same for num lock). Then press 'escape'. Hope this works.
# Posted By Partha Pratim Sirker | 6/28/12 9:39 AM
George Bullis's Gravatar Thanks for the tip and the explanation!
-George
# Posted By George Bullis | 7/6/12 7:16 PM
Josh Adams's Gravatar @lowolabi: I know we corresponded privately but publicly now allow me to give you thanks for the salutation and taking the time to comment.

@Partha: thanks for contributing to the dialogue! I have added this tip to the blog post itself as an update.

@George: I'm happy I could help! Thank you for taking the time to comment--it's always great to hear that I've helped someone out!
# Posted By Josh Adams | 7/27/12 2:03 PM
John's Gravatar I have had this inverted caps lock problem for years and don't know how I cause it, BUT the solution of typing hELLO in a document in Word and hitting the spacebar solves the problem. Thanks. I am putting a label on the bottom of my Macbook with this solution as a reminder.
# Posted By John | 7/30/12 8:54 AM
David Janes's Gravatar Thanks for this post. This problem has been irritating me since upgrading to the latest version of Fusion. I searched the VM support site which had a post acknowledging the problem but not offering anything as a solution.
# Posted By David Janes | 7/30/12 9:11 AM
Josh Adams's Gravatar @John: thanks for letting me know that the post was helpful to you!

@David: thanks for the comment. That's interesting, and unfortunate, that the VMWare site acknowledges the problem but doesn't tell you how to work around it!
# Posted By Josh Adams | 8/20/12 10:34 AM
Mike James's Gravatar dude, excellent commentary and of course solution to the problem. vmware needs to hire you if they haven't already.
# Posted By Mike James | 9/11/12 10:53 AM
Josh Adams's Gravatar @Mike James: thank you for the kind compliment. Funny you should say that about VMWare: just last week I was speaking with a friend who works for them!
# Posted By Josh Adams | 9/11/12 1:19 PM
kumar's Gravatar Thanks a lot. u saved a hassle
# Posted By kumar | 10/15/12 3:30 AM
Hans HGunter's Gravatar Thanks a lot works perfect. thanks!!!!!!!!!
# Posted By Hans HGunter | 12/9/12 2:15 PM
Joseph's Gravatar Make it five years. Partha's tip worked for me. Thanks!
# Posted By Joseph | 9/3/13 12:48 PM
kerridge's Gravatar YES!!!!!!! Partha's tip worked on Windows 8 and with the latest Vmware player
# Posted By kerridge | 10/13/13 9:50 AM
Vineeth VS's Gravatar Partha's comment solved the issue..
# Posted By Vineeth VS | 11/5/13 8:14 AM
JoeG's Gravatar ctrl atl del and esc works great THX!
# Posted By JoeG | 3/6/14 4:57 PM
Eric Nadler's Gravatar Thanks for the note! This was really frustrating... I don't have a Send Key command in my VMWare Workstation (Win7 host and CentOS client) but the Microsoft Word trick worked. Now THAT was something I never would have thought to try!
# Posted By Eric Nadler | 6/20/14 12:01 PM
Josh Adams's Gravatar Thanks everyone for your comments: although I've been quiet here for 2 years now, I appreciate them. It's great to see that this post I published over 6 years ago is still helping people! And a special tip of the cap to Partha, whose tip helped Joseph, kerridge, Vineeth, and JoeG (and likely many other people who didn't take the time to comment like those folks did; thanks for those comments folks)!

@kumar: you're welcome! I'm glad I could help!
@Eric: excellent! I'm glad my unorthodox solution was able to help you!
# Posted By Josh Adams | 9/15/14 3:35 PM
Dick Salmon's Gravatar I just used the OSK trick in the run window. Running a Horizon View workstation through the HTTP client. Just wanted to add that now it's been 7 years of usefulness. :-)
# Posted By Dick Salmon | 8/12/15 2:13 PM
JoX's Gravatar The same problem persists with Windows Pro 10 (Build 10240) 64-bit on VMware Fusion 8.0.0. 2103067 on Mac OS X 10.10.5 (14F27) Yosemite.
# Posted By JoX | 8/26/15 6:15 PM
Nick Smith's Gravatar Still persists on Windows 7 using Remote Desktop to connect to Windows 2012 R2
# Posted By Nick Smith | 9/11/15 5:00 AM
Chip's Gravatar Aces, Josh. Worked like a charm.
# Posted By Chip | 1/27/16 6:16 PM
BlogCFC was created by Raymond Camden. This blog is running version 5.9.002. Contact Blog Owner