Bug 1129449
Summary: | Layout switching shortcuts are broken | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Stas Sergeev <stsp2> | ||||||||||
Component: | gnome-settings-daemon | Assignee: | Bastien Nocera <bnocera> | ||||||||||
Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||
Severity: | unspecified | Docs Contact: | |||||||||||
Priority: | unspecified | ||||||||||||
Version: | 19 | CC: | bnocera, fmuellner, i18n-bugs, kalevlember, mfabian, mkasik, ofourdan, pnemade, rmatos, rstrode, shawn.p.huang, stsp2, tfujiwar, tiagomatos | ||||||||||
Target Milestone: | --- | Keywords: | Reopened | ||||||||||
Target Release: | --- | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
Whiteboard: | |||||||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||||||
Doc Text: | Story Points: | --- | |||||||||||
Clone Of: | Environment: | ||||||||||||
Last Closed: | 2014-12-24 07:33:44 UTC | Type: | Bug | ||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||
Documentation: | --- | CRM: | |||||||||||
Verified Versions: | Category: | --- | |||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||
Embargoed: | |||||||||||||
Attachments: |
|
Description
Stas Sergeev
2014-08-12 19:28:41 UTC
(In reply to Stas Sergeev from comment #0) > I've found the config entry "Клавиша-модификатор переключ..." I don't understand which UI you indicate. Can you attach the screenshot on the bugzilla? % gnome-screenshot -i Can you attach the following result? % ibus read-config The read-config sub-command is available in ibus 1.5.7-6. > 1. It switches not to the layout I added in the switching > applet. I have rusle there, but it switches to something > else, likely a usual Russian layout. I don't understand to which ibus engine you tried to switch. But probably I can know it with 'ibus read-config'. > 2. When it switches, the keyboard indicator is not reflecting > the change, still showing EN. Is it an ibus indicator? Note: KDE also has another indicator. It would be good to attach screenshot too. > I've found another config entry, "Переключиться на следующий ист..." > It works slightly better: switches to the proper layout > and the indicator is updated. But here it is not possible > to select most combinations. For example, Ctrl-Shift > cannot be selected for that field, as well as all the > other most generic key combos. Which field you cannot select? Created attachment 926291 [details]
screen
This is the UI I mean.
(In reply to fujiwara from comment #1) > (In reply to Stas Sergeev from comment #0) > > I've found the config entry "Клавиша-модификатор переключ..." > I don't understand which UI you indicate. > Can you attach the screenshot on the bugzilla? Done. > Can you attach the following result? > % ibus read-config > The read-config sub-command is available in ibus 1.5.7-6. Not in fedora-19. Will it be there? > > I've found another config entry, "Переключиться на следующий ист..." > > It works slightly better: switches to the proper layout > > and the indicator is updated. But here it is not possible > > to select most combinations. For example, Ctrl-Shift > > cannot be selected for that field, as well as all the > > other most generic key combos. > Which field you cannot select? On the already attached screenshot the top-most field. It is 2 fields above the field I marked. Created attachment 926292 [details]
layout switcher applet
Another requested screenshot
(In reply to Stas Sergeev from comment #0) > Is it possible to make the window resizeable? I reported a similar bug about gnome-tweak-tool not beeing resizable long ago and it has been fixed for gnome-tweak-tool. https://bugzilla.redhat.com/show_bug.cgi?id=850680 https://bugzilla.gnome.org/show_bug.cgi?id=69994 So I think another bug should be reported against gnome-control-center to make it resizeable. Created attachment 926332 [details]
gnome-control-center-keyboard-comparison.png
Your screenshot from f19 compared with English and Russian screenshots
from f20.
The window still cannot be resized manually, but apparently it grows
automatically until the text fits, in Russian that window
is wider than in English on f20.
(In reply to Stas Sergeev from comment #0) > Description of problem: > In the keyboard configurator it is not possible > to properly set up the layout switching combination. > I've found the config entry "Клавиша-модификатор переключ..." > Firstly, the line doesn't fit and the window is not > resizeable, so I don't know what it actually says. Looking at my comparison screenshot, "Клавиша-модификатор переключ..." seems to be "Modifiers-only switch to next source". > Anyway, after I set the combination here, it works > in a very strange way. It indeed switches the layout, > but with 2 bugs: > 1. It switches not to the layout I added in the switching > applet. I have rusle there, but it switches to something > else, likely a usual Russian layout. You have *only* rusle there, nothing else? There can be any number of input sources. For example, I have currently configured these input sources: $ dconf read /org/gnome/desktop/input-sources/sources [('xkb', 'us'), ('xkb', 'mike'), ('ibus', 'typing-booster:en_GB'), ('ibus', 'm17n:t:latn-post'), ('ibus', 'typing-booster:de_DE'), ('ibus', 'ipa-x-sampa'), ('ibus', 'kkc'), ('ibus', 'typing-booster:mr_IN'), ('ibus', 'gucharmap'), ('ibus', 'libpinyin'), ('ibus', 'table:wubi-haifeng86'), ('ibus', 'table:ipa-x-sampa'), ('ibus', 'table:wubi-jidian86'), ('ibus', 'table:latex'), ('ibus', 'table:cangjie5'), ('ibus', 'typing-booster:ru_RU'), ('ibus', 'table:rusle')] Pressing the “Modifiers-only switch to next input source” key goes to the next item in that list. If the last item in the list is reached, it starts from the beginning of the list again. Contrary to the “Modifiers-only switch to next input source” keybinding, the “Switch to next input source” key binding toggles between the last two input sources used. I.e. if I have currently selected "rusle" and the last input source I used before was "latex", typing Super+Space one switches to "latex", typing it again switches back to "rusle". It also shows an on-screen-display while switching the input source. If you type Super+Space, then release the Space key but keep the Super key pressed, the on-screen-display stays there and you can cycle through the input sources by pressing Space again and again. Or use the arrow keys to cycle through the input sources. > 2. When it switches, the keyboard indicator is not reflecting > the change, still showing EN. This works fine for me. Note that I tested on f20 though, not f19. Maybe it was broken in f19? > I've found another config entry, "Переключиться на следующий ист..." > It works slightly better: switches to the proper layout > and the indicator is updated. But here it is not possible > to select most combinations. For example, Ctrl-Shift > cannot be selected for that field, as well as all the > other most generic key combos. Ctrl-Shift is a "Modifier only" key combination. Ctrl and Shift are both modifiers. Therefore, it can only be set as the "Modifiers-only switch to next source" shortcut. The other keyboard shortcut, "Switch to next input source", needs to contain a non-modifier key. I.e. "Super+Space" or "Ctrl-a" is possible there, but not "Ctrl-Shift", for that you have to use the "Modifiers-only switch to next source" shortcut. I would recommend using the "Switch to next input source" shortcut because this shows the nice on-screen-display which is very useful. (In reply to Mike FABIAN from comment #7) > You have *only* rusle there, nothing else? And "us" of course. > number of input sources. For example, I have currently configured > these input sources: > $ dconf read /org/gnome/desktop/input-sources/sources [('xkb', 'us'), ('ibus', 'table:rusle')] > Pressing the “Modifiers-only switch to next input source” key goes > to the next item in that list. If the last item in the list is > reached, it starts from the beginning of the list again. > > Contrary to the “Modifiers-only switch to next input source” keybinding, > the “Switch to next input source” key binding toggles between the last > two input sources used. Thanks for explaining. But this really is very counter-intuitive. Not everyone will go to this bugzilla for an in-depth explanations. :) Though what I see doesn't even match the above. And I still don't understand why one switch needs only modifiers and another wants a functional key. > I.e. if I have currently selected "rusle" and the last input source > I used before was "latex", typing Super+Space one switches to "latex", > typing it again switches back to "rusle". Well, maybe I had "russian" in the past, but now it is deleted. Yet it still sets it back? And this is what “Modifiers-only switch to next input source” switch does for me, not the other one. Which doesn't seem to match your explanation. > > 2. When it switches, the keyboard indicator is not reflecting > > the change, still showing EN. > This works fine for me. > Note that I tested on f20 though, not f19. > Maybe it was broken in f19? Well, given that it sets the layout that is not even in the list, I would not be surprised that the indicator is not updated properly. Anything I can do to diagnose the problem? > I would recommend using the "Switch to next input source" shortcut > because this shows the nice on-screen-display which is very useful. That's what I do now. But I want to bind it to modifiers-only keycombo! Why can't I do that? I can do it in fedora-14. (In reply to Stas Sergeev from comment #8) > > $ dconf read /org/gnome/desktop/input-sources/sources > [('xkb', 'us'), ('ibus', 'table:rusle')] Looks good. > > Pressing the “Modifiers-only switch to next input source” key goes > > to the next item in that list. If the last item in the list is > > reached, it starts from the beginning of the list again. > > > > Contrary to the “Modifiers-only switch to next input source” keybinding, > > the “Switch to next input source” key binding toggles between the last > > two input sources used. > Thanks for explaining. > But this really is very counter-intuitive. > Not everyone will go to this bugzilla for an > in-depth explanations. :) > Though what I see doesn't even match the above. I just installed f19 again in qemu and for me it works like that. I have 3 input sources (US keyboard, Japanese keyboard, and a Japanese input method). I used the right windows key as the “Modifiers-only switch to next input source” and it does cycle through my 3 input sources in a predictable way. I have set Control+Space as “Switch to next input source” (On f19, it does not let me use Super+Space for that, when I try that, I get an error message that this would prevent me from using space, this problem is fixed in f20). Now Control+Space behaves as I described, it toogles between the last two input sources and by repeating Space while holding Control pressed I can cycle through the list or use the arrow keys to cycle through the list. So this seems to work the same way on f19 and f20. > And I still don't understand why one switch needs > only modifiers and another wants a functional key. I don’t know either, maybe it has to do with the way you enter the key sequence in the control center, you can enter any key sequence you like for “Switch to next input source”, so after typing Ctrl+Shift it still waits for a final key. How should this know that you want to stop at Ctrl+Shift and not type another key? The setting “Modifiers-only switch to next input source” has a combobox with a fixed list. I am just guessing, but that might be the reason. I am not sure whether this can be improved, if one could enter the key binding Ctrl+Shift (not followed by anything) for “Switch to next input source”, then “Modifiers-only switch to next input source” would not be needed. If this is possible to improve, it is a Gnome3 problem. > > I.e. if I have currently selected "rusle" and the last input source > > I used before was "latex", typing Super+Space one switches to "latex", > > typing it again switches back to "rusle". > Well, maybe I had "russian" in the past, but > now it is deleted. Yet it still sets it back? I could not reproduce such a problem. Are you sure it switches back to a regular Russian keyboard? Because rusle also displays “ru” in the gnome panel. I.e. you notice the difference only by typing or by opening the panel menu and checking whether the menu entries from ibus-table/rusle are there. > And this is what “Modifiers-only switch to next input source” > switch does for me, not the other one. Which > doesn't seem to match your explanation. > > > > 2. When it switches, the keyboard indicator is not reflecting > > > the change, still showing EN. > > This works fine for me. > > Note that I tested on f20 though, not f19. > > Maybe it was broken in f19? I tried on f19 now and it works for me. > Well, given that it sets the layout that is not > even in the list, I would not be surprised that the > indicator is not updated properly. Anything I can > do to diagnose the problem? I have no idea, I could not reproduce that. > > I would recommend using the "Switch to next input source" shortcut > > because this shows the nice on-screen-display which is very useful. > That's what I do now. > But I want to bind it to modifiers-only keycombo! > Why can't I do that? I can do it in fedora-14. f14 had Gnome2 and that was very different. This stuff was completely reimplemented in Gnome3, some features were lost in the process. I think it would be nice if the “Modifiers-only switch to next input source” key sequence could also show the on-screen-display. I don’t know whether this is possible. Maybe report a bug agains Gnome3 for that? (In reply to Mike FABIAN from comment #9) > I don’t know either, maybe it has to do with the way you enter the > key sequence in the control center, you can enter any key sequence > you like for “Switch to next input source”, so after typing > Ctrl+Shift it still waits for a final key. How should this > know that you want to stop at Ctrl+Shift and not type another key? By detecting the key release. Any released key means that the keycombo is finished. Or, alternatively, it should allow me selecting from the list. > The setting “Modifiers-only switch to next input source” has > a combobox with a fixed list. > I am just guessing, but that might be the reason. This is not a reason, this is just a strange implementation that enforces the aforementioned limitation. :) > > Well, maybe I had "russian" in the past, but > > now it is deleted. Yet it still sets it back? > I could not reproduce such a problem. Are you sure it switches back > to a regular Russian keyboard? There cannot be any mistake. Shift-7 gives '?' instead of '.' of rusle. So it is not rusle. Likewise, Shift-6 gives ':' instead of ',' > Because rusle also displays “ru” in > the gnome panel. It does. But when I switch using “Modifiers-only switch to next input source”, then there is still "en" in the gnome panel, despite the Russian layout, which is not rusle. Any way I can check what exactly layout is that and where does it come from? > I tried on f19 now and it works for me. I can give you an ssh to my machine. :) > I think it would be nice if the “Modifiers-only switch to next input source” > key sequence could also show the on-screen-display. > I don’t know whether this is possible. Maybe report a bug agains Gnome3 > for that? It would be nice if you can do that, of course. :) (In reply to Stas Sergeev from comment #3) > > Can you attach the following result? > > % ibus read-config > > The read-config sub-command is available in ibus 1.5.7-6. > Not in fedora-19. > Will it be there? Yes, you can get the latest with 'yum install --enablerepo=updates-testing ibus'. But you use GNOME and the result of 'ibus read-config' is not needed. (In reply to Stas Sergeev from comment #8) > > $ dconf read /org/gnome/desktop/input-sources/sources > [('xkb', 'us'), ('ibus', 'table:rusle')] This would be enough. > But this really is very counter-intuitive. > Not everyone will go to this bugzilla for an > in-depth explanations. :) > Though what I see doesn't even match the above. > And I still don't understand why one switch needs > only modifiers and another wants a functional key. Now modifiers key uses to bind the input source selection window. and non-modifiers key to be used to select one of the input sources. The both ctrl and shift is modifiers and it can rotate the next input source only. If you'd like to use shift as non-modifiers, you'd need to modify XKB table directly and GNOME also needs to support the custom XKB. Non-GNOME desktops can use the custom XKB since the desktop uses ibus UI. I suppose the string length problem is fixed in f20. I cannot reproduce that switcher shortcut does not work. Are you able to reproduce your problem with a new user account instead of the current user account? The shortcut problem is not ibus. Created attachment 926889 [details]
inconsistent ibus settings
On this screenshot, one GUI shows Russian Legacy,
and another one - just Russian. In fact, I can
select any set of input methods in either GUI -
they seem to have no connection at all.
Is this normal?
(In reply to fujiwara from comment #11) > I cannot reproduce that switcher shortcut does not work. > Are you able to reproduce your problem with a new user account instead of > the current user account? No, seems not. But I've found that one GUI was still listing Russian for me, instead of Legacy. But, even after changing that, the problem did not disappear for the current user. I can try to compare/replace files from new and old accounts to localize the problem. Any suggestions about that? (In reply to Stas Sergeev from comment #12) > Created attachment 926889 [details] > inconsistent ibus settings > > On this screenshot, one GUI shows Russian Legacy, > and another one - just Russian. In fact, I can > select any set of input methods in either GUI - > they seem to have no connection at all. > Is this normal? 'gnome-control-center region' is used for GNOME desktop. 'ibus-setup' is used for non-GNOME desktops. They are not connected. 'ibus-setup' is not shown on GNOME desktop menu. (In reply to Stas Sergeev from comment #13) > (In reply to fujiwara from comment #11) > > I cannot reproduce that switcher shortcut does not work. > > Are you able to reproduce your problem with a new user account instead of > > the current user account? > No, seems not. > But I've found that one GUI was still listing Russian > for me, instead of Legacy. But, even after changing > that, the problem did not disappear for the current > user. > > I can try to compare/replace files from new and old > accounts to localize the problem. Any suggestions > about that? I don't understand which is the Russian legacy. It would be good to run the command with LANG=en_US.UTF-8. I guess you try to explain a problem on gnome-control-center. The initial settings would depend on the login locale and you can modify the input sources on gnome-control-center. Also you may check the system settings with 'localectl status' and 'localectl set-x11-keymap us'. (In reply to fujiwara from comment #14) > > I can try to compare/replace files from new and old > > accounts to localize the problem. Any suggestions > > about that? > I don't understand which is the Russian legacy. What I mean is that, since with the new user the problem doesn't seem to happen, it may be a good idea to compare the config files from the current and new account to find out the difference that triggers a bug. What files would you suggest me to compare? > Also you may check the system settings with 'localectl status' and > 'localectl set-x11-keymap us'. $ localectl System Locale: LANG=ru_RU.UTF-8 VC Keymap: ru X11 Layout: n/a This looks right. The problem is that the modifiers-only switch switches me to the layout that is not in the list, but that doesn't seem to happen with the new user. (In reply to Stas Sergeev from comment #15) > What files would you suggest me to compare? % gsettings list-recursively org.gnome.desktop.input-sources % gsettings reset-recursively org.gnome.desktop.input-sources % ibus read-config % ibus reset-config % ibus restart The read-config sub-command is available in ibus 1.5.7-6. $ gsettings list-recursively org.gnome.desktop.input-sources org.gnome.desktop.input-sources current uint32 0 org.gnome.desktop.input-sources per-window true org.gnome.desktop.input-sources show-all-sources true org.gnome.desktop.input-sources sources [('xkb', 'us'), ('ibus', 'table:rusle')] org.gnome.desktop.input-sources xkb-options ['grp:shift_toggle', 'terminate:ctrl_alt_bksp'] $ ibus read-config SCHEMA: org.freedesktop.ibus.general dconf-preserve-name-prefixes: ['/desktop/ibus/engine/pinyin', '/desktop/ibus/engine/bopomofo', '/desktop/ibus/engine/hangul'] embed-preedit-text: true enable-by-default: false engines-order: ['xkb:us::eng', 'xkb:us:altgr-intl:eng', 'xkb:ru::rus', 'rusle'] load-xkb-layouts: ['us', 'us(chr)', 'us(dvorak)', 'ad', 'al', 'am', 'ara', 'az', 'ba', 'bd', 'be', 'bg', 'br', 'bt', 'by', 'de', 'dk', 'ca', 'ch', 'cn(tib)', 'cz', 'ee', 'epo', 'es', 'et', 'fi', 'fo', 'fr', 'gb', 'ge', 'ge(dsb)', 'ge(ru)', 'ge(os)', 'gh', 'gh(akan)', 'gh(ewe)', 'gh(fula)', 'gh(ga)', 'gh(hausa)', 'gn', 'gr', 'hu', 'hr', 'ie', 'ie(CloGaelach)', 'il', 'in', 'in(tel)', 'in(bolnagri)', 'iq', 'iq(ku)', 'ir', 'ir(ku)', 'is', 'it', 'jp', 'kg', 'kh', 'kz', 'la', 'latam', 'lk', 'lk(tam_unicode)', 'lt', 'lv', 'ma', 'ma(tifinagh)', 'mal', 'mao', 'me', 'mk', 'mm', 'mt', 'mv', 'ng', 'ng(hausa)', 'ng', 'ng(igbo)', 'ng(yoruba)', 'nl', 'no', 'no(smi)', 'np', 'pk', 'pl', 'pl(csb)', 'pt', 'ro', 'rs', 'ru', 'ru(cv)', 'ru(kom)', 'ru(sah)', 'ru(tt)', 'ru(xal)', 'se', 'si', 'sk', 'sy', 'sy(ku)', 'th', 'tj', 'tr', 'ua', 'uz', 'vn'] preload-engine-mode: 0 preload-engines: ['xkb:us::eng', 'table:rusle', 'xkb:ru::rus'] preload-engines-inited: true switcher-delay-time: 400 use-global-engine: true use-system-keyboard-layout: true use-xmodmap: true version: '1.5.7' xkb-latin-layouts: ['ara', 'bg', 'cz', 'dev', 'gr', 'gur', 'in', 'jp(kana)', 'mal', 'mkd', 'ru', 'ua'] SCHEMA: org.freedesktop.ibus.general.hotkey disable-unconditional: @as [] enable-unconditional: @as [] next-engine: ['Alt+Shift_L'] next-engine-in-menu: ['Alt+Shift_L'] prev-engine: @as [] previous-engine: @as [] trigger: ['Control+space', 'Zenkaku_Hankaku', 'Alt+Kanji', 'Alt+grave', 'Hangul', 'Alt+Release+Alt_R'] triggers: ['<Super>space'] triggers-no-modifiers: @as [] SCHEMA: org.freedesktop.ibus.panel auto-hide-timeout: 10000 custom-font: 'Sans 10' follow-input-cursor-when-always-shown: false lookup-table-orientation: 1 show: 0 show-icon-on-systray: true show-im-name: false use-custom-font: false x: -1 xkb-icon-rgba: '#415099' y: -1 Does this show any problem? If you won't see your problem after you run 'gsettings reset-recursively ...' and 'ibus reset-config' and 'ibus restart', some of the those settings would cause a problem. (In reply to fujiwara from comment #19) > If you won't see your problem after you run 'gsettings reset-recursively > ...' and 'ibus reset-config' and 'ibus restart', some of the those settings > would cause a problem. Thanks. The problem appeared to be here: --- org.gnome.desktop.input-sources xkb-options ['grp:shift_toggle', 'terminate:ctrl_alt_bksp'] --- If "grp" is changed to rctrl_rshift_toggle the bug no longer happens. With shift_toggle it is broken. Strange. But easy to reproduce. :) (In reply to Stas Sergeev from comment #20) > --- > org.gnome.desktop.input-sources xkb-options ['grp:shift_toggle', > 'terminate:ctrl_alt_bksp'] > --- > > If "grp" is changed to rctrl_rshift_toggle the bug no longer > happens. With shift_toggle it is broken. Strange. But easy > to reproduce. :) I think you meant grp:shifts_toggle but not grp:shift_toggle . It meas to press both left and right Shift key to switch input sources. grp:rctrl_rshift_toggle means Right Ctrl + Shift. I don't know how you add grp:shifts_toggle since 'gnome-control-center keyboard' limits the shortcut keys. 'gnome-tweak-tool' command can provide more shortcut keys. Please, let me clarify. Firstly, I was copy/pasting, so the typo is not possible. shift_toggle is what I had. How have I got it is another question, but I did a few fedora upgrades instead of re-installing, so it could get there from the older configurator. Secondly, it has nothing to do with the control center. No matter what I set in control center, that particular setting is unaffected. So if I set in control center "Ctrl-Shift", this grp still has what it had before. So: if I have "grp:rctrl_rshift_toggle", then ANY combination I set in control center, works correctly. If I have "grp:shift_toggle", then NEITHER combination I set in control center, works correctly. It still works, but in a very strange way described above. May I ask you to please check that yourself and see what I mean, before closing this? The explanations are not as good as just to check it and see. I think you won't see your problem once you clear the value of "xkb-options" (In reply to fujiwara from comment #23) > I think you won't see your problem once you clear the value of "xkb-options" Please, how am I supposed to do so? Do you really expect users to run gconf-editor and fix up the configs in an untrivial way? (In reply to Stas Sergeev from comment #24) > (In reply to fujiwara from comment #23) > > I think you won't see your problem once you clear the value of "xkb-options" > Please, how am I supposed to do so? > Do you really expect users to run gconf-editor > and fix up the configs in an untrivial way? We cannot reproduce to insert the undefined value. (In reply to fujiwara from comment #25) > We cannot reproduce to insert the undefined value. This was a result of an upgrade. Some people upgrade, others do re-install. You should support both. If currently such a value is invalid but was valid in the past, you should still at least make sure the software doesn't go into an undefined state because of that. |