I'm using a french keyboard (azerty layout). Now that the hotbar can finally be used thanks to the new keybinding menu, I changed controls to fit my keyboard. But some keys are displayed as "NONE" in the menu and do not work correctly in game.
&, é,", (, è, ç are reported as "NONE"
', -, _ work fine
When pressing one of the NONE key, the game switch to the last slot (bound to ç). I guess the game consider all these keys to be the same and use the last action bound to this key.
Some other keys have the same issue but I cannot be exhaustive :
), $, *, ^, ù, !, <
^ is a dead key and must be typed twice.
Linked issues
relates to 3
Comments 17
This seems related with this issue from LWJGL : http://lwjgl.org/forum/index.php?topic=3950.0
Is this still a concern in the current Minecraft version 1.7.2 / Launcher version 1.3.4 or later? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.
I can confirm this problem using Minecraft 1.7.4 / Launcher version 1.3.7 but not with the french/belgian keyboard, instead I've got this problem on a german keyboard with the keys:
ö, ä, ü, #, +, ß, ', ^ and <.
I tested this manually, for these keys LWJGL doesn't output any KeyCode, and I even investigated LWJGL's java source:
The problem is neither in Minecraft nor in the Java-part of LWJGL, instead it has to be anywhere between the Kernel and LWJGL's C parts.
This is IMHO a bug in minecraft that also affects the windows version.
The lwjgl bugtracker tells why: https://github.com/LWJGL/lwjgl/issues/59
Edit: Bug still present in Minecraft 1.7.4 with launcher 1.3.7.
14w34c looks good here on Linux with german umlauts. It is now possible to bind those keys and the displayed name is correct.
Thanks! (Fun fact: there is another minecraft linux bug where LWJGL has been blamed initially: MC-55045)
14w34c fixes it for my french keyboard. Key names are correct (it is better than Windows on that point, now).
There is still a problem with the dead key ^: I have to press it twice, both in the option menu and in game.
I have no idea what you mean with 'dead key ^:'.
Right now if there was no eventKey given by LWJGL we use the character code generated. These are absolutely not unique (in other words, they might change when you hold modifier keys) but it's about the best that can be done.
A dead key is a key that does not write a character, but it modifies the next character. For example typing ^, then e, writes ê.
I don't really know lwjgl works, but I think it should be handled with a key code rather than a character code. Like the modifier keys (ctrl, alt, shift, ...) do not have associated characters but work fine.
Also, while in game, pressing ^ change the behaviour of the next non-modifier key :
– for actions that last for the time the key is pressed (like moving), the action starts with a delay (waiting for a repeat event ?).
– for other actions (quick slot, inventory, ...), the action is completely ignored.
It may come from a limitation of lwjgl as I have seen a lot of software having issues with this key.
It looks like a lwjgl bug. I wrote a short test program :
import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
public class KeyboardTest {
public static void main (String[] args) {
try {
Display.setDisplayMode (new DisplayMode (800, 600));
Display.create ();
}
catch (LWJGLException e) {
e.printStackTrace ();
System.exit (0);
}
while (!Display.isCloseRequested ()) {
while (Keyboard.next ()) {
String state;
if (Keyboard.getEventKeyState ())
state = "pressed";
else
state = "released";
int key = Keyboard.getEventKey ();
System.out.println (Keyboard.getKeyName (key) + " (" + key + ") " + state);
}
Display.update ();
}
Display.destroy ();
}
}
Pressing ^ twice, gives the output:
CIRCUMFLEX (144) released
NONE (0) pressed
CIRCUMFLEX (144) released
Edit: This method outputs NONE key for the key I reported in the first message. Now, I understand what you mean by "no eventKey given by LWJGL".
Edit2: I posted a bug report on the LWJGL forum : http://lwjgl.org/forum/index.php/topic,5477.msg28937.html
I have the same problem with a Belgian (azerty) keyboard on Linux Ubuntu (not tested on Windows).
When we use the number keys above the letters, by default, symbols are printed instead of numbers (it's a normal behaviour for azerty keyboards).
To actually print a number, we have to press SHIFT (it works in Minecraft, but also triggers the action assigned to SHIFT).
The symbols for these keys on a Belgian keyboard are (from 1 to 0) : &, é, ", ', (, §, è, !, ç, à
Except for the apostrophe, trying to use these keys in the configuration menu returns "NONE".
Except for the §, all these keys work in the chat.