GNOME Bugzilla – Bug 653136
Ctrl + Alt functionality in Caribou
Last modified: 2021-05-25 17:46:08 UTC
I'm working on creating the patch for Ctrl/Alt/Shift functionality, as stated in the summary. So far, I have been having trouble with the signal passing, since the single key must alert the keyboard to store the "latch" until a non-mod key is pressed. Here's what I have so far.
Created attachment 190401 [details] [review] Fix compilation issue
Created attachment 190523 [details] [review] Ctrl/Alt key This is my hefty fix to the Ctrl/Alt key functionality. Eitan and Dan have told me to take a look again to see if I can use any existing methods to simplify the code. Will do that, but for now this works :)
Created attachment 191044 [details] [review] Add Ctrl/Alt key functionality Patch that GNOME Onscreen keyboard is currently using for Ctrl/Alt functions.
I need to look at this more, but two things that jump out are: 1. This should be rebased onto caribou master. We are now using an XML format that is more flexible. 2. The names "Alt", and "Control" should be changed to X key names like Control_L and Alt_L for consistency with the rest of the format. Look at keysymdef.h.
Created attachment 191928 [details] [review] Modifier key rework.
(In reply to comment #5) > Created an attachment (id=191928) [details] [review] > Modifier key rework. Patch should be applied to your HEAD modifiers branch in github[1], it is here for illustrative purposes only, and ultimately will be squashed and cleaned up with Nohemi's other patches. The main thing I did here was keep most of the modifier logic encapsulated in the KeyModel, and left it open for other interaction modes, for example long press for lock (as opposed to latch), and visual feedback for hardware modifier key presses (ie. if you press ctrl on your real keyboard, you should see the key become depressed in caribou). For this purpose I got rid of most of the "latch" language. 1. https://github.com/danwinship/caribou/tree/modifiers
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new enhancement request ticket at https://gitlab.gnome.org/GNOME/caribou/-/issues/ Thank you for your understanding and your help.