FreeTubeApp / FreeTubeApp/FreeTube

[Feature Request]: Enable hotkeys to work with non latin keyboard layouts

Open
#4,150 3 comments 0 reactions 0 assignees View on GitHub
E: improvement existing feature
Dominant language
Vue
Stars
21.9k
Forks
1.5k
Avg merge
1d 14h
Merged PRs (30d)
62

Description

### Guidelines

- [X] I have searched the issue tracker for [open](https://github.com/FreeTubeApp/FreeTube/issues?q=is%3Aopen+is%3Aissue) and [closed](https://github.com/FreeTubeApp/FreeTube/issues?q=is%3Aissue+is%3Aclosed) issues that are similar to the feature request I want to file, without success.
- [X] I have searched the [documentation](https://docs.freetubeapp.io/) for information that matches the description of the feature request I want to file, without success.
- [X] This issue contains only one feature request.

### Problem Description

FreeTube doesn't support non-latin layouts, this is not a regression, we just haven't added support for them yet. Why doesn't it just work?
The keyboard shortcuts and hotkeys don't rely on the physical position of the keys, instead they rely on the values they return. That means to rewind by 10 seconds, FreeTube needs to receive a key event that has the value of J it doesn't matter where that key is on the physical keyboard, but that means for keyboard layouts that don't have a J key, like cyrillic ones, you can't currently trigger that hotkey.

### Proposed Solution

The solution will have to be some hacky mess that tries to detect whether the active keyboard layout is a latin one (not sure how we are going to detect that, considering that there are no APIs to do that) in which case it needs no special handling and otherwise it will likely have to act as if the user has an English QWERTY layout. Ideally we want to keep the behaviour of not caring about the physical locations of keys when we can, otherwise we'll have to get rid of the docs page with the hotkeys because they will be completely different for every layout.

### Alternatives Considered

None.

### Issue Labels

improvement to existing feature

### Additional Information

Original issue was opened by @EvilGremlin as a bug report in https://github.com/FreeTubeApp/FreeTube/issues/3615 but as this isn't a bug this is now converted to a feature request

Description and possible solution are copied from https://github.com/FreeTubeApp/FreeTube/issues/3615#issuecomment-1615936356

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.