I've been using it for almost two years now, and I'm not going back.
It's based on a spare Blackberry Q10 keyboard and a custom Arduino-compatible board that reads the keyboard matrix and outputs it as USB HID to the phone. From the viewpoint of the phone, it's just a regular USB keyboard, so no special software is needed.
But I do use a custom virtual keyboard to have just two rows of symbols that are not natively on the keyboard, as I didn't want to add another layer of rarely used symbols that I'd have to memorize.
(On the image you can see Ubuntu with XFCE4 running on it. I chose Ubuntu because it's what was easiest to get running in a chroot jail on the phone. I'm using VNC to display the GUI. I even managed to get FEX (x86/x64 emulator) and Wine running, so it runs x86/x64 Linux and Windows apps.)
The shaped keys of the Blackberry Q10 keyboard help a lot. But picking up a physical keyboard after years of touch-only typing does take a few days to get used to it. But once you are used to it, there is no going back.
I have the direct comparison, since I have to take off the keyboard for charging, and if I want to use it while charging I need to use the virtual keyboard. It's a pain, compared to the physical one.