Input methods

From postmarketOS Wiki

Introduction

There are, in theory, several ways to input text on pmOS already. These are:

  • Matchbox-keyboard - a lightweight on-screen keyboard for X11.
  • QT virtual keyboard, used in Plasma Mobile.
  • Onboard - an on-screen keyboard for touch screen or for mobility impaired users.
  • Hardware keyboards, e.g. on devices such as the Nokia N900 or the Droid 4.
  • Bluetooth and other wireless keyboards (if support exists for Bluetooth devices).

This page intends to track these as well as other, novel, input methods.

Conventional on-screen keyboards

Onboard

Ubuntu used to come with Onboard, which is actually designed not for tablets, but as an assistive technology in conjunction with an external pointing device.

Settings

Notable options in the settings:

  • General
    • check "Auto-show when editing text" (and confirm Gnome Accessibility enabling)
    • check "Show floating icon when Onboard is hidden" (and move the floating icon to a location it doesn't disturb, rather central)
    • uncheck "Show tooltips"
    • uncheck "Show status icon"
  • Window
    • check "Dock to screen edge"
  • Layout
    • Small: For small sized devices
    • Compact: For medium sized devices
    • Phone: Works well for login screen and unlocking screen
  • Theme
    • e.g. Nightshade

Command line options

For LightDM and xfce4-screensaver, command onboard -e -l Phone can be used. Option -e embeds the keyboard. Option -l defines the layout to be used. For LightDM configuration see Display_manager#LightDM. For xfce4-screensaver, the keyboard command can be set in the screensaver settings.

matchbox-keyboard

For usage in xfce4-screensaver, use command matchbox-keyboard --xid for embedding.

Maliit

Maliit is a cross-platform text-input system based on client-server model. Input methods are supported by plugins, which means it is quite extensible.

Other

Other options might include:

  • corekeyboard
  • caribou
  • GOK (The Gnome on-screen keyboard), which apparently has won awards.
  • Florence, a virtual keyboard for X11.
  • xvkbd, a virtual keyboard for X11, with word completion and a few other features.
  • wvkbd sxmo's official wayland keyboard.
  • modified wvkbd onefinger keyboard.
  • Squeekboard, Phosh's official keyboard.
  • OSK Stub, next gen Phosh keyboard.
  • Unfettered Keyboard, fork of androids unexpected keyboard with swipe support.

CJK (Chinese Korean Japanese) IME

Hime

A CJK Ime that only support xorg

Hardware keyboards

It is often possible to connect a USB keyboard or mouse via the USB port of the device or using an OTG adopter. Hardware support for peripherals depends on the device, so consult the corresponding device page for further details.

Braille

The Orbit Writer is an economical, portable, Bluetooth-enabled, Perkins-style keyboard. It is optimized for 6-dot braille and has a number of additional buttons.

Chorded

GKOS is an implementation of a chorded keyboard that is semi-open. A chord for a musician is a combination of three or more notes that create a new note; the chorded keyboard is analogous to this in that key presses are created by combinations of a few key presses, albeit the GKOS method only uses single button presses or a combination of two presses.

Unfortunately, GKOS's apps are not open-source. However, the standard itself is straightforward to implement either in hardware or software, and is entirely suitable for handhelds and PDAs.

According to its website, GKOS has been superseded by ComboKey. The ComboKey seems to apply some of the ideas behind the GKOS system to a user using the device single-handedly in a tight area.

Folding

Jelly Comb

The Jelly Comb Foldable Bluetooth Keyboard B003 is an economical, portable, folding keyboard with a built-in touchpad. It supports both Bluetooth and USB.

DIY / Cyberdeck keyboard dock

With enough effort, you can build a cyberdeck keyboard dock for your phone (for example : this )

Handwriting/pointer-based systems

Graffiti and Quikwriting

Graffiti was the single-stroke handwriting system for Palm OS. It was the subject of a lawsuit from Xerox, which Palm lost.

Quikwriting was a research project that produced an alternative to the Graffiti method of text input. There is an open-source implementation called QWO. It is a little awkward to use, but it does work rather well, once one learns. See https://mrl.nyu.edu/~perlin/demos/quikwriting.html.

Other relevant links regarding Graffitti:

Cellwriter

Similarly to Quikwriting, Cellwriter is the product of a research project. It is an accomplished handwriting system:

Dasher

Dasher is a keyboard designed for when one only has a single pointing device and one wants to work quickly. To that extent it may be especially convenient for devices with styluses. It is free software and is designed also for accessibility to the impaired.

Touchscreen

Simulate secondary click

There are different options available to generate a right mouse button click:

  • Virtual keyboard onboard offers a button for right click. For availability and installation of onboard, see Input_methods#Onboard.
  • Secondary click by a long touch can be achieved by package mousetweaks. It's not available on Alpine Linux or postmarketOS, needs to be compiled. When installed, the parameters can be tested in the terminal, e.g.: mousetweaks --ssc --ssc-time=0.5 --threshold=30 --daemonize. If the options are fine, the command can be added to the startup applications (how to do this depends on the user interface).
  • Install package xdotool. In your user interface, go to the Keyboard Shortcut settings and assign command xdotool click 3 to one of the hardware buttons of your device. The hardware button now issues a right mouse button click at the current position of the pointer.

Simulate touchpad mouse

  • TouchpadEmulator uses the touchscreen to emulate a laptop-style touchpad for cursor control with two finger right click, two finger scrolling, and tap and hold to drag. Uses volume keys to switch between touchpad and touchscreen modes. Very limited device support at the moment as device events are hard coded. Must be installed from source as it's not packaged for Alpine/postmarketOS.

Miscellaneous