meta data for this page

Customize on-screen keyboard

Mobian ships the Squeekboard on-screen keyboard by default.

Squeekboard's layouts are easily customizable by adding keyboard description files to

  • ~/.local/share/squeekboard/keyboards/(us|de|…).yaml (for apps using localized keyboard)
  • Terminal :
    • ~/.local/share/squeekboard/keyboards/terminal.yaml (up to version 1.12)
    • ~/.local/share/squeekboard/keyboards/terminal/(us|de|…).yaml (from version 1.13)
  • Emoji :
    • ~/.local/share/squeekboard/keyboards/emoji.yaml (up to version 1.12)
    • ~/.local/share/squeekboard/keyboards/emoji/(us|de|…).yaml (from version 1.13)

When on the pinetab or on the pinephone with a scaling factor of 100%, squeekboard will seek for an additional layout named (us|de|…)_wide.yaml (and terminal_wide.yaml, emoji_wide.yaml for version below 1.12).


The squeekboard keyboard description file format is not well documented as of 2021-Apr, but customizing is not difficult. Simply take an existing layout and start tweaking it. Then give it the correct name and put it in the user's squeekboard keyboard directory.

(1) Ready to use layout files can be found:

(2) Edit the plain-text file with your customizations. The files are human readable and not very difficult puzzles, but there is a developers' description of logic behind squeekboard keyboard views.

(3) A customized keyboard description file should be named by the two-character language code, followed by the '.yaml' file extension. To customize for landscape view, add '_wide' after the language code. For example; us.yaml, or us_wide.yaml.

(4) Place the .yaml file in the user's local directory named '.local/share/squeekboard/keyboards/'. Beginning with version 1.13 a customized keyboard description file for a terminal or emoji layout is named in this same way, but is placed in a different subdirectory named 'terminal' or 'emoji'. For examples; a customized US-English layout would be: '.local/share/squeekboard/keyboards/us.yaml' . And a file can describe a terminal keyboard if placed in '/.local/share/squeekboard/keyboards/terminal/us.yaml'

A tutorial on how to contribute to squeekboard can be found here. A long forum thread with the developer of squeekboard with useful background information is here.

Accessibility and compatibility with the Orca screenreader need some work.