ch11ng / exim

Emacs X Input Method
GNU General Public License v3.0
14 stars 4 forks source link

Qt5 support #6

Closed asavonic closed 5 years ago

asavonic commented 6 years ago

Hi,

It seems that EXIM does not work with Qt5: all programs that I've tried (nomacs, telegram) completely ignore setting a non-default language. After searching for this problem, I found that XIM is not supported by Qt5: https://bugreports.qt.io/browse/QTBUG-49612?focusedCommentId=334078&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-334078

Is this a configuration issue, or EXIM doesn't support Qt5?

ch11ng commented 6 years ago

If Qt5 dropped the support for XIM then EXIM won't work with it. Admittedly XIM is obsolete nowadays. If someone can share some insights on how to implement a modern IME with pure X protocols I'm glad to make a new one.

asavonic commented 6 years ago

After looking into a Qt5 documentation here and a source code, it seems the only way to provide a custom input method is to write a Qt plugin in C++. Protocol of communication b/w a plugin and an actual input method can be arbitrary, for example IBus plugin (shipped as part of Qt5) uses DBus for comunication.

Anyway, I'll try to implement a plugin for EXIM and get back to you.

asavonic commented 6 years ago

Update: WIP on Qt5 plugin: https://github.com/asavonic/exim/tree/master/qt5

So far, the plugin is able to recieve a DBus message with text input and feed it to Qt program. I'm still trying to figure out how to make Emacs emit DBus messages when I type.

ch11ng commented 6 years ago

@asavonic That sounds really promising.

I'm still trying to figure out how to make Emacs emit DBus messages when I type.

Not sure but shouldn't the events get captured in the plugin side and forwarded to Emacs for processing? If you are searching for a way for Emacs to report back to the plugin then there's a builtin info page for that: (info "dbus").

ch11ng commented 5 years ago

Hi, I've merged this project into EXWM. If you are still working on this, please migrate the issue & code there.

asavonic commented 5 years ago

Hi @ch11ng, I'm not actively working on this, but it is still in my todo list.