Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default key bindings don't work properly with non-QWERTY layouts #11143

Open
abateur opened this issue Dec 10, 2020 · 9 comments · May be fixed by ppy/osu-framework#5790
Open

Default key bindings don't work properly with non-QWERTY layouts #11143

abateur opened this issue Dec 10, 2020 · 9 comments · May be fixed by ppy/osu-framework#5790
Assignees
Labels
osu!framework issue Can't resolve this without changes to osu!framework. priority:1 Very important. Feels bad without fix. Affects the majority of users. type:input

Comments

@abateur
Copy link

abateur commented Dec 10, 2020

Describe the bug:

Osu uses the right keyboard layout for typing, but uses a default QWERTY layout for hotkeys and setting keybinds

Screenshots or videos showing encountered issue:

Made a small video to demonstrate : https://www.youtube.com/watch?v=lPZQtZqMFE4&feature=youtu.be

osu!lazer version: Lastest (2020.1204.0)

Logs:

database.log
network.log
performance.log
runtime.log

@KoleckOLP
Copy link

KoleckOLP commented Dec 10, 2020

Same as now closed issue #2871 but that was on Windows, but on Windows it now works. Seems that the issues still exists on Linux maybe mac too(I can't test on mac). I got the same issue on Debian Testing.

@bdach
Copy link
Collaborator

bdach commented Dec 10, 2020

To clarify: you're saying that the display of the key bindings is wrong (e.g. top left letter key is shown as Q on both QWERTY and AZERTY), or are the actual keys themselves wrong? The first one is expected I'm pretty sure - framework probably needs a way to unmap key codes into user-facing letters.

Edit: actually the two issues will be one and the same, most likely.

@bdach bdach added osu!framework issue Can't resolve this without changes to osu!framework. type:input missing details Can't move forward without more details from the reporter and removed missing details Can't move forward without more details from the reporter labels Dec 10, 2020
@abateur
Copy link
Author

abateur commented Dec 10, 2020

To clarify: you're saying that the display of the key bindings is wrong (e.g. top left letter key is shown as Q on both QWERTY and AZERTY), or are the actual keys themselves wrong? The first one is expected I'm pretty sure - framework probably needs a way to unmap key codes into user-facing letters.

The actual keys are wrong it seems. Say if I bind S and D (which should be U and I with my layout) and play like that, it works even if I'm actually pressing U and I during gameplay. Or gameplay gets it wrong too I guess.

@bdach
Copy link
Collaborator

bdach commented Dec 10, 2020

Once you set the binding, the underlying physical keys should match, but the display won't. This is because we're using scan codes raw, which correspond to physical location assuming QWERTY layout.

The solution is probably to map QWERTY->user when displaying to user, but also maybe unmap user->QWERTY when comparing against default bindings, most likely. Or map both and then compare.

@bdach bdach changed the title Inconsistent keyboard layout on Linux Inconsistent key binding text on non-QWERTY keyboards May 13, 2021
@bdach bdach changed the title Inconsistent key binding text on non-QWERTY keyboards Default key bindings don't work properly with non-QWERTY layouts Jul 22, 2021
@Biokax

This comment has been minimized.

@Susko3
Copy link
Member

Susko3 commented Jan 5, 2022

With ppy/osu-framework#4834 this issue is semi-resolved, key names are properly displayed in keybind settings.
But default US QWERTY is still used for hotkeys.

@bdach
Copy link
Collaborator

bdach commented Jan 5, 2022

For that you would have to dynamically unmap the default bindings from key codes to scan codes using the keymap on every keymap change. This can probably be supported by the framework but unsure if that should always be on.

@MatthieuHernandez
Copy link

I also have this problem on AZERTY keyboard the normally undo shortcut Ctrl + Z is map on Ctrl + W instead.
The problem is for now there is no way to change this shortcut in key configuration.
This shortcut should be added to the key configuration.
Or will there be a way to change this depending on the keyboard or what is configured in the OS?

@peppy
Copy link
Member

peppy commented Nov 1, 2023

Bumping priority of this, feels like something we should try and fix out of usability concerns. (There's already a proposal open, just needs thorough review)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
osu!framework issue Can't resolve this without changes to osu!framework. priority:1 Very important. Feels bad without fix. Affects the majority of users. type:input
Projects
Status: In Review
Development

Successfully merging a pull request may close this issue.

7 participants