rime / ibus-rime

【中州韻】Rime for Linux/IBus
https://rime.im
GNU General Public License v3.0
734 stars 105 forks source link

How to save different input state for different window? #30

Open hsxfjames opened 7 years ago

hsxfjames commented 7 years ago

For example, there are some windows own by chrome process(or process tree), and other windows own by firefox process. When I stay in one of chrome window I may want a luna-pinyin schema, then if I switch to one of firefox window I want it to be the default or previous settled schema, like cangjie etc. Or just be a same schema but different ascii_mode.

I found how to apply different ascii_mode for some specific processes, but not found how to apply different input state for different window. That is, any change of schema selecting or ascii_mode switching is a global change.

Could any body explain how to achieve it, or if it is not implemented yet, I would appreciate it if you add it as a feature, thx.

lotem commented 7 years ago

I don't think ibus-rime supports application-specific settings currently.

State including the selected schema is stored in a Rime session https://github.com/rime/ibus-rime/blob/master/rime_engine.c#L17 In current code, Rime session is 1:1 to IBus engine. That's why state is global. Please share your knowledge of how to identify different processes from an IBus engine, if you've got some progress.

kevinhwang91 commented 2 years ago

gnome有一个Switch input individually for each window可以在应用层面上分离,目前ibus-rime无法在切换回窗口返回第二模式也就是ascii模式。 建议可以参考 https://github.com/phuang/ibus-anthy 用sub prop做切换,gnome会记住选项的。