I completely agree. On a German keyboard CTRL+Z is the default keybinding for the undo function in virtually all applications you will encounter, and the one time it was actually bound to CTRL+Y it was very surprising to me and I mistakenly pressed CTRL+Z several times trying to use the undo function (which, incidentally, was mapped to redo instead).Cutemine wrote:There is no well defined "Right Thing" in this case. For example CRTL-Z is still widely used on german Keyboards, but you hit the actual Z key and not the y Key where it would be on US Layouts. Users got used to it over the years I guess. Basically any program I know of uses the KeyCode for this. Sometimes there is some magic going on in the background where it displays it as "HIT CONTROL Y" or the likes but works with your actual Z key.BlueTemplar wrote:At the risk of repeating what I said on Discord, IMHO you should do the right thing™,
and set "Undo" to the scan-code for "whatever is the bottom left letter key"
(Z for QWERTY, Y for QWERTZ, W for AZERTY, Я for JCUKEN...)
In fact, this is so widespread that some keyboards actually have keys that display their alternative functions, and on your average German keyboard it might look like this: The Strg (Control) key has a diamond on it, and several other letters (S, F, Z, X, C, V, B, P) have indicators to show what happens when you press the CTRL key at the same time as that letter, in this case Z being Rückg (Rückgängig / Undo).
I like that the devs decided that it should always be CTRL+Z, however I also understand that this is an easy decision to make for people who use a German keyboard, but vastly harder to make for someone using AZERTY instead. I think Factorio should follow how other major applications handle this issue and use the same keybindings as they do.