As a Vim user, I often use Vim to write some text and then copy & paste it into another text field of GUI apps (e.g. browsers, chat apps, etc.),
because almost all of these text fields provide only very basic editing functions.
A while ago, I came up with an idea: what if we could use Vim as an IME?
Ordinary IMEs are used to input some non-English characters, but the essential functions of IME are
1) receiving a keyboard sequence
2) process the key sequence and outputting a text
These functions are the same as text editor's.
So I thought implementing an IME that can be used with Vim keybindings could be a good solution for the above problem.
After that I learned mechanisms of IME for Linux desktop and tried to develop an experimental IME.