(Dvorak user here.) I've played many Flash games in which the keys were WASD, but they actually worked the same even if I didn't switch the layout back to Qwerty. And then I've played games in which it did matter which layout I used. I suspect there's one set of functions that receives keypresses, and another that looks at more raw device input. Perhaps there is a way to do the same thing here?
That wouldn't work with a physical Dvorak keyboard, though (as opposed to my Qwerty keyboard, with the input layout on my operating system set to Dvorak). Do you have one, out of curiosity? (And, hmm, you could make WASD--or X and C here--work as desired on a real Dvorak keyboard by making it handle keypresses rather than device input and then setting the layout to Qwerty.)
If you use keyCode instead of charCode I think you'll get the same result on every keyboard layout, but of course if you tell people to use C, it means the key where C is on a US keyboard, not really the key where a C is printed. I believe Dvorak users are conscious enough to understand that though.
I would have made space shoot, too, incidentally (arrows + space should be the same for just about every keyboard out there), but configuration itself is a great idea.
I also wish that the length of time you held down the jump key controlled the height of your jump rather (up to a maximum, obviously), rather than one-size-fits-all jumps, but that's minor.
Play an old NES game that used that system like Super Mario Bros. (any of them) then play your game to see how much more in control you feel.