Bug 1031269 - Next input method action skips third input method
Summary: Next input method action skips third input method
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: ibus
Version: 19
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: fujiwara
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-11-16 09:52 UTC by Maros Zatko
Modified: 2013-11-28 02:46 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-11-28 02:46:12 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Maros Zatko 2013-11-16 09:52:33 UTC
Description of problem:
I'm using IBus for entering chinese into Anki and for this purpose I've added three input methods: Chinese - Intelligent Pinyin, English - English (US) and Slovak - Slovak (this one is for entering pinyin with diacritic). Next I've set Next input method action to C-Space, however when I press this shortcut IBus doesn't cycle through next IM, instead it switches back to IM before: if I was using chinese IM and pressed C-Space I got slovak IM and when I press it again I get chinese IM back - i.e. I cannot switch to english IM using kbd shortcut.

I've observed that it selects "next" IM indeed, but not as one would like to.
In the IM list (when you click on ibus icon in tray) there's current IM on top. After pressing the shortcut the second IM in the list swaps with the first. When you press it repeatedly the very same thing happens again - first swaps with second and never reaching the third one.

Version-Release number of selected component (if applicable):
1.5.4-1.fc19

How reproducible:
always

Steps to Reproduce:
1. add three input methods to IBus
2. press shortcut for next input method twice
3. observe that you have original input method back instead of third one

Actual results:
original input method after pressing C-Space twice

Expected results:
third input method after pressing C-Space twice

Additional info:
Please note that I'm not using desktop environment such as GNOME or KDE but XMonad.

Comment 1 Jens Petersen 2013-11-21 03:51:46 UTC
Hmm I tried now with the default Super+Space binding and that works for me.
I could cycle between 3 input sources in xmonad-mate desktop.

How are you running ibus in your session - is it just pure xmonad?

Comment 2 Jens Petersen 2013-11-21 03:55:39 UTC
Control-Space seems to work too.

Comment 3 Maros Zatko 2013-11-25 13:18:12 UTC
I'm running two instances of dzen, one with haskell wrapper, stalonetray, nm-applet, xscreensaver and polkit-gnome-authentication-agent-1. All my window manager keybindings use Super as access modifier. I'm using LXDM with GTK greeter.
Otherwise say it's pure xmonad I'd say.

I start IBUS only when I need it by running ibus-daemon.

Comment 4 Jens Petersen 2013-11-26 02:10:39 UTC
I see thanks.  I dunno then perhaps you are hitting some peculiar corner-case.

A) I recommend starting ibus with im-chooser or imsettings in new desktop session.

I tried with im-chooser on F19 pure xmonad and switching seems to be working okay for me.

You can stop ibus again using im-chooser/imsettings when you don't want it to run.

I think imsettings used to provide an applet to allow changing this state,
but you could bind imsettings commands in xmonad.hs if you want to be
able to switch ibus on/off quickly.  (ibus should not have
that much overhead though.:)

B) Otherwise can you try something like this:

1) create a new user a/c
2) login from lxdm to a xmonad session for the new user
3) run im-chooser and select ibus, and Close im-choooser.
3a) setup some ibus engines and shortcut for next engine
4) run gedit or other gtk app
5) use Super-Space or other hotkey binding to rotate ibus engines

?

If that works then maybe something about your own desktop
setup is affecting the shortcut.

Comment 5 fujiwara 2013-11-26 07:14:30 UTC
(In reply to Maros Zatko from comment #3)
> All my
> window manager keybindings use Super as access modifier. I'm using LXDM with
> GTK greeter.

I can use Super+space for ibus on LXDM.
ibus default shortcut key is Super+space.

Which do you mean only Control+space does not work for ibus or any keybindings do not work for ibus?

Are you able to switch any input method engines when you choose them by mouse on the activate menu on ibus panel icon?

Comment 6 Maros Zatko 2013-11-26 12:17:44 UTC
(In reply to fujiwara from comment #5)
> (In reply to Maros Zatko from comment #3)
> > All my
> > window manager keybindings use Super as access modifier. I'm using LXDM with
> > GTK greeter.
> 
> I can use Super+space for ibus on LXDM.
> ibus default shortcut key is Super+space.
It's nice that Super+Space is default, but I'm using that to change window
layouts in XMonad already, so I had to choose some other.

> Which do you mean only Control+space does not work for ibus or any
> keybindings do not work for ibus?
I've tried Shift-Alt-Control-Space too, had the same issue.
Also, I'm using plain Shift alone to rapidly change layout (to english) when using Chinese - Intelligent Pinyin input method.

> Are you able to switch any input method engines when you choose them by
> mouse on the activate menu on ibus panel icon?
Yes, clicking works, in fact it was the way get "third" item in the list to top.

Comment 7 Maros Zatko 2013-11-26 12:42:15 UTC
(In reply to Jens Petersen from comment #4)
> I see thanks.  I dunno then perhaps you are hitting some peculiar
> corner-case.
> 
> A) I recommend starting ibus with im-chooser or imsettings in new desktop
> session.
> 
> I tried with im-chooser on F19 pure xmonad and switching seems to be working
> okay for me.
> 
> You can stop ibus again using im-chooser/imsettings when you don't want it
> to run.
> 
> I think imsettings used to provide an applet to allow changing this state,
> but you could bind imsettings commands in xmonad.hs if you want to be
> able to switch ibus on/off quickly.  (ibus should not have
> that much overhead though.:)

Thanks for advice.

 
> B) Otherwise can you try something like this:
> 
> 1) create a new user a/c
> 2) login from lxdm to a xmonad session for the new user
> 3) run im-chooser and select ibus, and Close im-choooser.
> 3a) setup some ibus engines and shortcut for next engine
> 4) run gedit or other gtk app
> 5) use Super-Space or other hotkey binding to rotate ibus engines
> 
> ?
> 
> If that works then maybe something about your own desktop
> setup is affecting the shortcut.

So, I've tried it, it behaves the very same way. BUT, there's the other thing I've observed. When I press my Ctrl-Space and release Space only while still holding Control - the "menu" with layouts suddenly appears in the middle of the screen(!, haven't seen it before), and now when I press Space again I CAN get to the third and next layout.

So it seems that a fast-(and obvious)-shortcut-press-and-release produces MRU layout switch, instead of cycling through all layouts. Doesn't seem very friendly for fast editing (in Anki for example it could pose a special pain to editor), on the other hand it seems it could be very handy for some use cases.

Maybe some configurability could be nice there... Suggestions?

Comment 8 fujiwara 2013-11-27 01:27:23 UTC
(In reply to Maros Zatko from comment #7)
> When I press my Ctrl-Space and release Space only while
> still holding Control - the "menu" with layouts suddenly appears in the
> middle of the screen(!, haven't seen it before), and now when I press Space
> again I CAN get to the third and next layout.

It's a feature in ibus 1.5.
In case your order of the engines is [IME1, IME2, IME3]:
Ctrl+space swaps IME1 and IME2 and the order is [IME2, IME1, IME3]
Ctrl+ space x space chooses IME3 and the order is [IME3, IME1, IME2]

It works with or without showing the IME menu on the screen.
So you can type it quickly.

When you use Ctrl+space only, the first two IMEs are swapped.

Probably I will close this bug.


Note You need to log in before you can comment on or make changes to this bug.