Adam Boardman edited this page Dec 1, 2018 · 86 revisions

Welcome to the Gemian (Gemini-Keyboard-Apps) - wiki

The wiki is for those who want to get involved in the project and help out, for people who are interested in keeping up-to date with the Debian image updates see DebianTP or if just want to try out the apps you should check the main project site: Gemian - Gemini Keyboard Apps

Debian Linux

This project is focused on improving the Linux user experience for all the available input methods Keyboard+Touch+Mouse. So that we can remain within the Linux side all the time. Switching OS's would result in for example broken text message conversations with messages stored in a different place based upon which OS was booted at the time of message reception.

The Gemini device is shipping without Linux, but with an installer to let us install it later. Currently only the Debian/Lineage images are publicly available, with Sailfish/UBPorts/PostMarketOS images circulating by private beta for those that are interested in trying them out.

This project is focused on Debian 9 (stretch) and working towards also supporting Debian 10 (buster) as we like the idea of having full desktop apps available when mouse and screen are available, but also having a set of nice small screen keyboard friendly apps when on the move.

Debian Technology Preview

Planet have released the a new dual boot image with updated Android and the same first Debian image, see Gemini_Firmware.

Please add any useful info here: Debian TP


The project is aiming to be delivered via an additional apt repository (Debian's package format) that contains our packages.

Discussions on components in progress

We have started work on some applications, you can see screenshots and installation instructions for installing on a Debian 9 install on the Gemian page. The github organisation 'gemian' contains all our branched components.

The full list of applications in the works:

  • Calendar - Fresh QML app using underlying QtPim API's and talking to EDS.
  • Contacts - Fresh QML app using underlying QtPim API's and talking to EDS.
  • Data - Fresh EFL app using sqlite as the data store.
  • Phone - Port of Ubuntu-Touch dialer-app (QML) (partially usable, still needs work on audio routing, and ability to notice incoming calls)
  • Messaging - Port of Ubuntu-Touch messaging-app (QML) (now testable)

QML is the basis of the MeeGo/Sailfish/UbuntuTouch projects.
EFL is the basis of the Tizen project.

Discussions on future components

  • WindowManager with per screen scale factor so that text can auto-scale to sensible sizes between internal and external screens.
  • Lock screen - with emergency contact details available
  • ability to turn on/off WiFi, Bluetooth, Cellular Data
  • KeyCommander - shell with recent files list
  • sheet
  • Word
  • Email
  • Browser
  • terminal
  • Maps
  • Watch - pebble and other watch integration would be useful
  • Firewall - It could be useful to be able to block internet access to some applications based upon the connectivity available, eg when your paying for it.
  • Migration - wiki pages/instructions on how to move data from/to other devices from the contacts/messages back ends of other devices
  • Anbox - Android in a box - using lxc containers
  • Radio - Apparently the radio hardware in the device should work, so we need some way to tune in
  • a set of design guidelines for developing keyboard oriented apps

We could port applications from a variety of sources (see Resources)

Build server

BuildServer - Setup notes on build server.

App rules

An app is only considered complete if all the following criteria are met:-

  1. every and all functions can be activated with the keyboard. At no time should it be necessary to touch the screen to perform a function.
    Touch functions may be offered as an alternative, for example selecting a cell in a spreadsheet. But always, it should also be possible to perform that function with the keys.
  2. the app is full screen on the internal screen. Keyboard Apps do not use overlapping windows.
  3. the app makes use of the DPI of the screen to scale text to readable without putting your nose next to the screen.

These restrictions should only apply when the app is running on the internal screen, when plugged into an external monitor with a mouse also attached they should revert to overlapping window mode. I can also see the utility of being able to run two applications in split screen mode where the use of Planet+Tab to switch focus between the apps comes into play.

Working with Upstreams

We should aim to get any branched applications changes pushed upstream so that with the next release of Debian there are less packages that need to be branched.


  • Currently - Working on keyboard layouts, device driver integration (hybris). Will get back to the apps later.



Keyboard mappings

Keyboard Mappings

Power management

Likely to be a hot issue, will need to find and use monitoring tools to identify badly behaved apps/drivers and raise upstream bugs etc. Hopefully the supplied drivers will all be modern ones using interrupts rather than polling etc.

Wear levelling

We need to make our flash media last as long as possible:

We can also stop linux from doing more writes than we need ReducingWrites.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.