Skip to content

KeyboardMappings

Adam Boardman edited this page Apr 4, 2018 · 5 revisions

For navigation the following keys are important

  • The left / right / up / down arrow keys -> usual navigation function
  • Enter -> open selected
  • Escape -> close dialog
  • Ctrl+[letter] -> access a feature directly
  • Alt/Planet+[letter] -> access a menu option directly
  • Alt-Tab -> usual linux application switching

The Gemini has various feature buttons printed on the keyboard Volume/Brightness/Flight mode etc we should aim to support these.

Some useful defines: https://cgit.freedesktop.org/xorg/proto/x11proto/tree/XF86keysym.h

We need a key to launch the app launcher, under Android this will be the Planet key but as this doubles as the Alt key on linux and we wish to support the normal usage of full range of desktop linux applications we cannot borrow that key. Currently thinking Fn+Ctrl will be used to launch the app launcher, then arrow keys then enter to select.

We also need F1-F12 for some legacy apps, though no Gemian apps will use them. Given that we want the usual functions of Ctrl-Alt-Shift keys, and the Fn+Ctrl is used for the more frequently performed Super/Windows/AppLauncher function, and Fn+Alt has things printed on it (hangup etc) the only remaining combination of modifier keys is Fn+Ctrl+Shift these are all in the same corner so should be 2 or 3 finger mash-able with one hand with the other selecting the 1-0 keys to give us f1-f10, f11/f12 could flow down to P+~?

Looks like we are going the xkb way: https://github.com/gemian/xkeyboard-config/blob/stretch/symbols/planet_vndr/gemini

Could also have a long press pop over accent selection, this should apply to all keyboard variants. The XKB way is to have 'dead keys' that emit no character themselves but cause the next key to have the accent applied. Even if you don't usually have any need for a specific accented character in your language you might be referring to a friend who's name has an accent, uncertain how this would be achieved, xkb offers 'groups' that let you switch from for example the vertically slices of letters printed on the keyboards. These groups are used for layouts where the keyboard has two sets of letters printed on it, pressing both shift keys at the same times changes the group.

Clone this wiki locally