Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently each toolkit (Gtk, Qt, etc.) implements its strategy to deal with keyboard shortcuts on non-Latin layouts. See e.g.:
xkeyboard-config)Tweak keyboard shortcuts by adding the option to switch to a different group when some modifiers are active (typically
Control,AltorSuper). The target group can be set for each group, although the most common use case would probably be the same target for all layouts.It works by specifying:
Control,AltandSuper.Then whenever the active modifiers contain some of the modifiers of the mask
defined hereinabove, the active layout is switched to the target layout defined
in the mapping, if any, otherwise it is left unchanged.
This can be alternatively activated (for now) with the environment variables
XKB_UNSTABLE_EXPERIMENTAL_SHORTCUT_MASKandXKB_UNSTABLE_EXPERIMENTAL_SHORTCUT_TARGET_LAYOUTS. This enables to use the new feature even if the DE does not implement a UI to configure it. While the names suggests that this setting method is temporary, I am unsure we should ship it: I do not want to see this setting method broadly used so that we cannot change/remove it later. It is more a mean forearly adoptershackers to test the feature by installing their own local version of libxkbcommon.Fixes #753
Closes #739
TODO:
This is a refactor of #739, which uses an obsolete approach with Wayland issues.