mojira.dev
MC-630

Keyboard binding bug; doesn't work correctly on layouts not derived from US-Qwerty.

The keyboard binding in Minecraft tries to do some futile attempts at mapping characters not A-Z or 0-9 to keys on US-Qwerty for an unknown reason. This plan fails with layouts where A-Z aren't in the same places as on US-Qwerty. For instance, hitting keys like ',.; on Dvorak layouts result in Qwerty's QWERZ accordingly, conflicting with keys that are A-Z and return the same characters.

This bug has appeared since Beta. It worked correctly in Alpha, possibly because no attempts at mapping like that were done.

Possible solution: Map keys based on keycode, not character code, which seems what the key binding settings does anyway, before the rest of Minecraft adds a layer of WTF.

This bug makes minecraft practically unplayable on non-qwerty keyboards, including Dvorak. It has been reported many times on the wiki, I sincerely hope it gets some attention on your issue tracker now that you finally got one.

If you don't know how the key codes are arranged on a dvorak keyboard layout, it looks like this: http://upload.wikimedia.org/wikipedia/commons/2/25/KB_United_States_Dvorak.svg

To even further clarify, the US-QWERTY keyboard is like:
1234567890-=
QWERTYIOP[]\ ASDFGHJKL;'
ZXCVBNM,./

The Dvorak keyboard is like:
1234567890[]
',.PYFGCRL/=\ AOEUIDHTNS-
;QJKXBMWVZ

However, Minecraft handles it like:
1234567890-=
QWEPYFGCRL[]\ AOEUIDHTNS'
ZQJKXBMWVZ

Related issues

Comments

migrated

Based on assumptions of this vs MC-62, this happens on all platforms with all keyboards not having A-Z and 0-9 keys at exactly the same places as US-QWERTY.

migrated

I'm using the NEO-Layout and I can't use Shift correctly on Linux (but it works on windows) and if I press Shift once, the shift-key is kind off stuck (but only for Inventory management) until I press F11. So this might be related.

migrated

I think this should be upgraded to major bug.

migrated

Yes, I agree. This is a major bug and renders the game practically unplayable on "nonstandard" keyboard layouts.

migrated

One solution I found was to set up a keyboard shortcut (in my case, ctrl-command-space) to switch between DVORAK and US-QWERTY layouts.

The main drawback is that since "A" is on the same key in both layouts, and the "," key maps to "W" as detailed above, I may not even notice it's on DVORAK until I need to strafe right, or back up. In a combat or lava situation, this can be deadly.

EDIT: I can confirm this bug exists on a 2010 MacBook Pro using OSX 10.6.8.

migrated

Changing keyboard layout doesn't help in Linux... I was still unable to use the hotbar.

migrated

Changing keyboard layouts aren't fixes in the first place, especially if you are playing networked games and need to type into the game chat or typing anything really.

migrated

It is funny how this tracker caused bugfixes of small bugs and this major one is still here.

migrated

Yeah, it seems like they don't care about fixing the bugs and rather about pretty statistics. For instance MC-483 -> "Closed", because WTF? -> "Clone", because it still happens -> MC-2181 -> "Closed", because duplicate.
WTF, Mojang?

migrated

The keyboard sticking, related or not to this one, is just as major because it'll get the player killed helpless at random occasions.

migrated

Mind your manners. Most of the time major bugs aren't fixed because they're harder to fix, that's why they get the major label. If they had easy workarounds they would be minor bugs. They were wrong to mark both as resolved, but that doesn't give you an excuse to start swearing.

migrated

Martin: since when are acronyms swearing? WTF is interchangeable with Worse Than Failure amongst other things, meaning practically the same thing and doesn't count as swearing.

migrated

The meaning behind it doesn't really change in context, but we're driving away from the main issue here.

Back on topic, I myself have a QWERTY keyboard, so I can't really test it out. (or is there a way to simulate the keyboards?) Other than during chat, would Minecraft be unplayable on a different layout keyboard? As in, during PvP or normal gameplay. How does Minecraft react other than swapping the key layout?

migrated

Martin: You can test it. Just change the keyboard layout of your qwerty, it's a software setting and how to set it depends on your operating system.

migrated

As I already stated in the older bug report, which is duplicating this, it might block hotbar keys. It even happens on QWERTZ (Czech) keyboard, which is quite close to QWERTY. However, for me, it only happens on Linux, not on Windows.

migrated

It's unplayable, because some keys are unbindable and some are duplicates. Unable to bind at the home position means typing is going to suck and getting back is going to suck even more. Keyboard layouts that bind 0-9 to some other keys than qwerty means no hotbar for people in countries with such keyboard layouts as standard. People with keyboard layouts that don't have the qwerty letter keys in the same place as us-qwerty are going to have just as bad a time. Read the description of this issue; it's explained there.

migrated

To change keyboard layouts on windows, do this: http://support.microsoft.com/kb/258824
To change keyboard layouts on (Mac) OS X, do this: http://www.ehow.com/how_2065339_change-keyboard-language-mac-osx.html
To change keyboard layouts on Ubuntu, do this: http://www.wikihow.com/Change-Keyboard-Layout-in-Ubuntu

migrated

And still, the bug and how to fix it in minecraft's code (as described in the issue description) is this:
1) Don't assume everyone has a QWERTY layout or that every QWERTY variant has all the characters in the same place.
2) Don't bind character codes (translated by the layout map) as the controls for the game.
3) Use the keycodes instead of character codes for binding. You might fix many other control-related bugs with this (for instance stuck keys and controls becoming nonresponsive). Binding character codes is amongst the first mistakes newbie developers do for controls, whether it's games or GUI's; it baffles me Minecraft still does this.
4) At least don't try to map non-numeric/non-alpha key-characters back to US-QWERTY, which just causes duplicate keys in cases like this.
5) What the "Controls..." options read in the binding button is lesser priority than what gets handled.

migrated

Oh, and what makes this even more irritating is that keys were handled somewhat correctly in Alpha (still playable), but for some strange reason they were deliberately broken in one of the early Betas and the issue has been ignored by Mojang since then.

migrated

I understand this is frustrating for you for you, but there's no need for this unnecceary hostility towards Mojang. You have done the right thing by reporting it here - but continuing to complain about it in comments isn't going to do anything. I have up voted this issue (I understand Mojang use that facility a lot) even though I don't use a non qwerty keyboard myself as I can imagine what it would be like in your circumstances - so hopefully this will get looked into soon.

If you want a bug fixed, up vote it!

migrated

Cloudy: It's not about hostility, it's just explaining the bug in more detail and how to reproduce it, as it seems it wasn't clear to everyone by the submission itself. "WTF" per se isn't hostile, it's just the most compact way to describe "something has been implemented in ways countering logic at a level words can't explain why it has been done". Also related to the code reviewing metric of WTFs/minute.

migrated

My claim of hostility wasn't relating to you using the word WTF - even though I think it is unnecceary in all of the potential meanings. The hostility I was referring to was you stating that this was "deliberately" broken, and then ignored by Mojang. This is not the case. The wiki was a disorganized place for bugs - the bug tracker is not so. As the latest bug fix releases have shown, having a big tracker greatly improves the visibility of bugs.

I was also referring to your claim of Mojang only caring about stats - again that is unnecceary and plainly false. However, I did explain this in more detail on another one of your posts.

migrated

Well, are there other reasons issues here are closed without resolving them?
Deliberately broken means it's broken by a ***-feature addition (a change in the way controls are defined), which acts like a bug in these circumstances. Not fixing a known issue is ignoring the issue no matter how you look at it; it's been dozens of reports and two years since.

migrated

It has been dozens of reports in an unorganized wiki. You cannot compare reports there to a report on the JITA. Lots of bugs are reported - it is only natural in a system like the wiki that bugs get ignored over and over again. This JIRA has methods for users to up vote bugs - meaning they get prioritized if more people vote.

Claiming an issue as being "ignored" implies they have seen it and decided to do nothing about it.

Reports are marked as "Resolced" for a few reasons. Invalid, dupilicate, Works As Intended, Fixed. Invalid generally means there's not enough information, the rest should be self explanatory.

migrated

This bug is still here, after all these years.

migrated

I don't get why this is still a minor issue. I am pretty much sure this should be considered as a major one.

migrated

Yeah, it's the #1 reason I rarely play minecraft anymore. Sometimes, several versions have passed and it's always the same result: "meh, still unplayable, the bastards ignored the issue yet again". I'll probably have to abandon hope and start playing something else instead.
Too bad I missed most of the minecraft hype, because the game never worked properly.

migrated

@Juha-Jarmo Heinonen: They most likely didn't ignore the issue, but they had a lot of stuff to do and because they're probably using "normal" layouts they didn't realised themselves.

Also, I think it's better to play a game without a hype, because it fuels high expectations that the game often cannot answer, leaving the player slightly disappointed.

migrated

Josh Miller: first, there's no "normal" as far as keyboard layouts go. Second, how do you describe not fixing something like this over some silly graphics glitches that don't do much harm to the over-all playability. Third, I'm not arguing that games should be played because of hype, but it's hard to see what's so great about a game that doesn't even handle its fundamental controls properly.

migrated

Is it still present in the new snapshot?

migrated

Why should it be fixed? If Mojang fixed it, they would have marked this report as fixed. If not, the community would realise that the bug has been fixed and probably comment on this bug report.

It makes no sense to ask the same question on every bug report for every new snapshot. It's not our task to keep track of the bug reports, but Mojang.

migrated

Josh: It's just that there's little confidence left in those amateurs ever fixing something "boring", yet critical like this and more likely doing "fun", yet useless stuff like MC-4248.

migrated

Eh, complaining repeatedly isn't exactly encouraging the developers to fix the bugs. Get more people to vote on it, instead.

migrated

I have the Dvorak keyboard layout and this issue affects me too. FWIW, Mac OS X 10.8.2, Java 7, MC 1.4.5.

It's frustrating and reduces my desire to keep playing to know that every time I have to switch my keyboard layout since keybinding wasn't made flexible enough to accommodate non QWERTY keyboards. I've automated the keyboard layout switching but it's still something I have to initiate before play.

Erik Broes

You know, my input maps perfectly when using Dvorak on Win7. When I type I get the proper characters, when I make keybindings they are named properly. IIRC on OSX the Q-key location on the Querty keyboard would always be called the Q-key even though the character-code attached is ';'. This would only give a display problem in the keybinding screen, the bindings would just work like normal. This is a LWJGL limitation, the hardware keycode is still Keyboard.KEY_Q but because of the Dvorak mapping it would map to ';' as character code. There is no way to ask LWJGL about this mapping, so the display in the keybindings will be wrong, but it should be working.

3) Use the keycodes instead of character codes for binding. You might fix many other control-related bugs with this (for instance stuck keys and controls becoming nonresponsive). Binding character codes is amongst the first mistakes newbie developers do for controls, whether it's games or GUI's; it baffles me Minecraft still does this.

We do indeed bind to the keycodes, we bind to the thing we get back from LWJGL, LWJGL just 'gets it wrong' depending on the OS. Also stuck keys is also LWJGL but we cannot update right now (as it would horribly break all osx).

migrated

Resolving since LWJGL issue.

migrated

Even if this is a LWJGL issue, it's not the problem/fault of the users. It's the problem of Mojang for choosing a sucky library to depend on. Your attitude sucks, and you closed this ticket without it being resolved. On OS X, the problem still (1.4.7) persists and just like described. Read the description and again and understand it.

migrated

Also I disagree with the manner of Juha-Jarmo Heinonen, I agree that the ticket should not be closed till the problem is resolved.

Why not update LWJGL for the linux download of Minecraft / write an email to the LWJGL-Team / solve the LWJGL problem yourself / wait till the problem is solved?

migrated

I completely agree with Josh. This shouldn't be closed until this is fixed.

migrated

Hello, re-open this bug. It's not resolved.
As for your manner/attitude apologists: Minecraft isn't open source nor free. Remember we are paying customers and should be able to play the game we paid for on the system it's supposed to run on.
If you blame LWJGL on the issue, then please either fix it with them or write your own replacement, but YOU DON'T CLOSE AN ISSUE BEFORE A MINECRAFT VERSION WITH THE BUG FIXED IS RELEASED AND CONFIRMED FIXED.

migrated

So, paying for software suddenly entitles us to call the developers "F*cking incompetent bastards"? Why should they respect your bug report when you do not respect them? In fact, go make your own bug fix, oh competent one. Since the developers are oh-so-incompetent you must have the skills to fix this yourself, no?
You should be thankful that there is a bug report site at all.

migrated

Martin: What else do you call this behaviour? Should I be thankful for a game that doesn't work and be thankful for developers resolving an issue that's not resolved? It's just the ABC of issue trackers, so yes, I'm entitled to express my opinion.

migrated

This is not fault of the developers. I think that this is fault of mods who closed it prematurely. I have to admit that developers should care about their customers, but I really wouldn't insult them. This issue should be reopened and closed once it is fixed either by LWJGL or Minecraft Devs. It isn't invalid at all.

migrated

Sejsel: I'm just assuming mods are developers, so in this case the moderators are the incompetent bastards. If the moderators aren't developers, WTF are they doing here messing around wasting everyone's time and making Minecraft a worse product than it would otherwise be?

migrated

Developers have [Mojang] prefix, mods have [Mod] prefix. This is clearly Tails' failure. Grum hasn't stated that this should be locked.

migrated

@Juha-Jarmo: Since you are the original reporter of the issue, can you please check whether you have an action available that lets you reopen the issue? I know this is possible for the reporter in other bug trackers, so it's likely this might be the case here as well.

I'd rather see this discussion return to a factual tone and focus on the issue itself, since otherwise I don't have much hope that this issue will ever get the treatment it deserves.

Regards,
Niels Böhm

migrated

Niels: No, I don't. That's what's so messed up about this issue tracker; unrelated random "mods" can come and close issues and the only way to re-open it is to scream for attention in the comments for a small chance of "someone in power" noticing it and re-opening it. Thus, let's just do that.

migrated

Another option is cloning the issue, but that's fairly retarded too. I've had to do that for a few other prematurely closed issues.

migrated

Ok, cloned here: MC-7255
Upvote it to get a slim chance of getting something done about this again.

migrated

There's a bug report on the LWJGL tracker:
https://github.com/LWJGL/lwjgl/issues/1

I think this is related to the issue here. So if I understand correctly, the problem isn't with Mojang it's with LWJGL.

For those of you who are frustrated, be thankful that there are so many people working very hard to try and solve difficult, complex, and messy things. This stuff ain't easy, and sometimes things get worse before they get better.

migrated

The maintainer of LWJGL asked me to open a new issue for this, which I've done here:
https://github.com/LWJGL/lwjgl/issues/13

Hopefully those of us affected can help those with the power to fix this problem, especially since they are likely neither Mac users or Dvorak typists! When you take a step back, it's really amazing this stuff works as well as it does 🙂

Miles

migrated

Why was this ticket marked resolved? Although I'm still trying the LWJGL route, the problem still exists for Minecraft Dvorak typist on Macs. Sure, we're an obscure, small minority but I'd like to see this ticket remain open until the underlying cause is fixed.

Miles

Erik Broes

See: MC-7255

migrated

(Unassigned)

Unconfirmed

binding, controls, dvorak, keyboard

Minecraft 1.4.1, Minecraft 1.4.2, Minecraft 1.4.3, Minecraft 1.4.4, Minecraft 1.4.5, Minecraft 1.4.6, Minecraft 1.4.7

Retrieved