Created attachment 283857 [details]
I am including the patch by Ilya Murav'jov, to enable support for multiple keyboard layouts using switching on "hotkey" release. This has been tested with xorg-server-1.10.3 and has been verified as working by I and other users (freenode users: youagree godmachine-x6). Would like for other people to test this, and for developers to consider this as a default patch. *Buntu includes this patch by default, and most new users who need the feature for keyboard layout switching on hotkey release may have trouble finding the right solution to this.
Attached is the edited ebuild for xorg-server-1.10.3 along with the patch. The only part edited in the ebuild is line #115 adding the line:
to the patches section.
So users should be able to add the included patch to x11-base/xorg-server/files/
and add the above snippet of code to their preferred xorg-server-X.X.X.ebuild under the PATCHES section.
* Sorry for duplicate of previous bug #379825, had some errors in the original bug posting that I corrected in this one, please close 379825.
Created attachment 283859 [details, diff]
Link to original bug on freedesktop.org : https://bugs.freedesktop.org/show_bug.cgi?id=865
*** This bug has been marked as a duplicate of bug 379825 ***
Created attachment 283999 [details]
The oldest bug remains open, the others will be duplicates of it. If something is wrong in comment 0, make another comment which corrects the statement.
*** This bug has been marked as a duplicate of bug 379825 ***
(In reply to comment #5)
i marked the old bug as obsolete, why can't it just be closed, this bug is more accurate, would you please stop changing the status of it, it is pointless, if anything close bug 379825, not this one!
(In reply to comment #6)
Ends up this bug has irrelevant comments to the actual issue it intended to address, I guess both 37927 and the 37925(initial bug with errors in description) can be closed if this guy is going to keep making a big deal out of nothing and wanting people to refer to a bad bug report.. If this is not common practice to close an old bug due to a mistakes in the description, then why does Bugzilla have "clone this bug" option? Here i was trying to help people with this feature, but every time I try to use Bugzilla some bug assignee want's to jump to marking them "closed/duplicate/won't fix" this is why I let several bug's i notice go unreported.. I personally can't believe that Gentoo Bugzilla doesn't allow the original creator of a bug to edit the description instead of forcing them to create a new comment. That's not very productive, I didn't like creating this new bug at all, but adding a new comment wouldn't have made the error's I had in the description be viewed as accurate, and the description is the first and sadly only place a lot of people look on Bugzilla.. That's my reason to creating the new bug.. I guess if I can't post a bug report to be helpful, without someone wanting to mark it resolved/duplicate etc, then there isn't any point in trying.
I am very pleased that Lance has looked into this in detail, and helped everyone using Gentoo or derivatives get a working solution for the problems related to Xorg keyboard group switch behavior to be used conveniently.
Without this patch, xorg server's all possible and available groupswitch hotkeys that activate group switching ("keyboard layout" toggling) do it as soon as the specified hotkeys are *PRESSED DOWN*, making all other hotkey bindings that involve groupswitch modifier keys unusable.
Currently, xorg behavior adheres to a deficient standard specification, that does not respect distinction of modifiers' (Alt, Shift, SuperL, SuperR, CapsLock etc) press down from their release, thus making all other bindings that involve these modifiers (for example Alt+Shift+Tab and Ctrl+Shift+arrow keys are very common) unusable together with layout switching bound to the same modifier keys (examples Alt+Shift, Ctrl+Shift, respectively).
By introduction of the code provided by Ilya Murav'jov, Xorg can now behave just as all other major desktop operating systems, where the de facto standard of keyboard layout switching is launched at *RELEASE* of the modifiers. Therefore any shortcut combo using the modifiers plus a third or fourth keypress are allowed WITHOUT interfering with the layout switching (not activated as soon as the modifiers are pressed down, but only activated when there's nothing else pressed as a third key, and they are released).
With this patch included, now using Linux on the desktop is just as convenient for multilanguage users as Windows or OSX.
Many thanks to Lance for providing the Gentoo solution, and of course to Ilya, the father of the patch itself.
Original description of the issue, relevant arguments and reasons can be found here:
It is all down to Xorg server though (xkb/xkbActions.c).
For more convenient inclusion of this code, it would be great to have an online overlay that provides the modified ebuild file for all recent versions of xorg-server...
Finally, I can use Alt-Shift as toggling my keyboard layout from US to Hungarian without making my Alt-Shift-Tab hotkey unusable, and I can not experience any regression in any other functionality.
Dup of bug#304375
(In reply to comment #9)
of course it is a dup, did you look at the original bug creator on the other one and see that I made them both? I cloned that bug for the purpose of corrections in the bug description.
(In reply to comment #9)
sorry for the comment, i guess i didn't notice that you wasn't referring to my old bug, i didn't notice the # under the strike out. Thought you was someone else trying to say it was a dup of the one I created initially.. Why does your bug say Resolved Upstream? It definitely isn't in upstream. Sorry again Alon Bar-lev
Thanks for setting this up!
Any reason not to use the usual gentoo naming scheme? I think that gives
xorg-server-1.10.3-p1.ebuild, or maybe something more descriptive is legit, like
(In reply to comment #12)
> Hi Lance,
> Thanks for setting this up!
> Any reason not to use the usual gentoo naming scheme? I think that gives
> xorg-server-1.10.3-p1.ebuild, or maybe something more descriptive is legit,
I didn't figure people would want a different name for the package since it is a full replacement of the ebuild provided in portage, adding a new version to the end shouldn't be necessary unless it is just a simple r1 type. You can rename the file anything you wish though, I just put the patched ebuild up so people could use it in a local overlay. If this change gets pushed to the official tree I'm sure the maintainer will give it the appropriate name they desire. Thanks for the question and glad you found this useful.
Works ok with 1.11.2-r2. Patch updated for 1.12 available at original place (https://bugs.freedesktop.org/show_bug.cgi?id=865). According to https://bugs.freedesktop.org/show_bug.cgi?id=865#c97 chances are it will be accepted by upstream in 1.13.
Created attachment 439654 [details, diff]
I've applied this patch on current version (1.17.4) and it had been successfully applied, compiled and run. The problem is fixed.
Created attachment 439658 [details, diff]
This patch is supposed to fix this bug in upstream for 1.18.3, it has been verified upstream.
I've finally managed to switch my wife's notebook from Ubuntu to Gentoo flavor (Calculate) and the one thing that was very disappointing is this bug. Patches for this bug are applied in Ubuntu packages but not in Gentoo, so her layout switch combination (Ctrl-Shift) was conflicting with combinations she's used to to copy and past in terminal (Ctrl-Shift-C, Ctrl-Shift-V).
I've grabbed a patch for it from upstream bug (the 1.12.2 one) and added it to PATCHES in local overlay. It went well, it emerged successfully and combinations work now. From what it looks like, the 1.18.3 patch is verified upstream and should work for 1.18.3 version.
I know that upstream Xorg people are hesitant to apply these patches because they break some standard (that they invented for themselves), but inability to use familiar combinations is a real PITA and can become a blocker in switching to Gentoo (my wife told me: Why can't we just switch back to Ubuntu? Patching here and there seems too complex).
BTW, status can be changes to CONFIRMED already, it's really-really confirmed (like 10 years confirmed).
x11 project is not inclined to maintain patches that were not accepted upstream. Given the history of the upstream bug, it appears that the patch had to be updated several times, so it is an extra maintenance burden on us.
Note that you don't need to create an ebuild in an overlay for a single patch, you can instead place it in /etc/portage/patches/x11-base/xorg-server/ as per https://wiki.gentoo.org/wiki//etc/portage/patches
Thanks for swift reply!
(In reply to Chí-Thanh Christopher Nguyễn from comment #18)
> x11 project is not inclined to maintain patches that were not accepted
> upstream. Given the history of the upstream bug, it appears that the patch
> had to be updated several times, so it is an extra maintenance burden on us.
From the looks of it, it had been under development in early days, but patch for 1.12.2 works fine ever since. Only for 1.18.3 they did change smth. So I don't see how that would require a lot of maintenance. Ubuntu has this change in their xorg package and it works, so it can be considered battle-tested and stable.
> Note that you don't need to create an ebuild in an overlay for a single
> patch, you can instead place it in
> /etc/portage/patches/x11-base/xorg-server/ as per
Didn't know about that. I should see how it plays with different versions and binary packages. Thanks for the pointer!
Created attachment 467432 [details, diff]
This is a patch from official bug tracker. I've tested it with xorg-server-1.19.2 and it works ok!
They've mentioned possible issue when switching key is single Ctrl https://bugs.freedesktop.org/show_bug.cgi?id=865#c146, but there was no response yet and I've compared this patch with previous one - it's exactly the same (only whitespace changes plus one API changed to use pointer to value instead of value), so I suppose even if it have some issue with single Ctrl then this isn't new issue.