The Status of International Input Method in Librem 5


#1

Many language cannot be type from a English keyboard. Especially for Asian language like Chinese, Japanese and Korean, they require input method to map 26 English alphabet keyboard to larger set alphabet or glyph. I am a Japanese and Chinese user, so I would definitely need to use those input method in a phone.

Librem 5 decided to go full wayland with no x server. Currently, there are no existing wayland input method. I am currently using fcitx as input method in my Linux machine. I have tested fcitx with Gnome Wayland. Normally, there is a dialog for displaying selections of text, like the following

In wayland, it fail to draw the dialog. But the input itself works. That means I have to blind guess what I type. Since I have the muscle memory, it is still kind of usable but not really optimal.


Now, in a phone, there are only virtual keyboard. In Android and iPhone, the input method is coupled with the virtual keyboard like this.


There are a custom type of keyboard to have better typing experience like the following.


In best case scenario, there are Android or iPhone like virtual keyboard for typing Asian language. That would be awesome.

However, I don’t expect much, and I am not sure if this is in high priority for Purism. It seems Wayland required each desktop environment to implement their input method API. Is it possible to have fcitx or other input method installed and at least let me blind type some character? Then it would be barely usable and I can wait for the development. Since most input method system relied on X dependence, I am not not sure it would even run on a pure wayland device.


#2


Found this project, a virtual keyboard supporting both X11 and Wayland, with many languages supported. Used by some Nokia phone back in the day of Smbian. Seems usable in Ubuntu Touch device, but I fail to install it on my Ubuntu desktop.

I think Purism team can explore the option to include this in Librem 5 phone.


#3

Hi uau7j7woi7,

we do care about properly supporting input methods on the Librem 5. In fact, I made a post a couple of months ago explaining some challenges I had implementing the necessary protocols on Wayland:

https://puri.sm/posts/librem5-progress-report-13/

In fact, I’m currently making steps to add our changes to wlroots.
It’s true that X input methods will need to get adjusted before porting to Wayland, so I don’t think fcitx will work out of the box.

At launch, we’re only going to ship a traditional virtual keyboard, but we’re happy to accept contributions adding CJK languages.

Maliit could be one choice, but because it doesn’t support the new Wayland protocols we’re using (old were… bad), it needs some adjustments first.


#4

Thank you for your reply.

Though I am not a C programmer, I don’t mind get my feet wet to port some CJK input methods into the new system. However, I am still unsure how Wayland works. Basically, Wayland itself does not support screen overlay and relied on desktop environment to support. I am not sure if there are some universal API or library to add input method to different desktop environment.

Alternatively, maybe if I have the code of virtual keyboard, I can see if I can add support to that particular virtual keyboard software to make it work for the phone.


#5

Well, Wayland “in itself” is really basic and doesn’t even include windows, so “wayland supports” is pretty much the same as “the compositor” supports, since I think that’s what you meant.

If you want to get your feet wet, I started an experimental keyboard

which works with a yet-incomplete branch of wlroots I’m trying to upstream

and GTK 3.24. It doesn’t yet support overlays, but it will give you a chance to understand the whole system. It’s recommended to read the instructions at the top, and come to #sway-devel channel on freenode.