2021-12-03 18:58:12 +01:00
2021-05-15 12:46:42 +00:00
2021-08-19 12:22:12 +00:00
2021-12-03 18:58:12 +01:00
2021-08-13 08:36:33 -07:00
2021-12-03 18:58:12 +01:00
2021-11-23 18:16:36 +01:00
2010-06-04 12:09:08 +09:00
2019-07-17 19:39:33 +02:00
2019-10-10 16:13:30 +00:00
2010-06-04 12:09:08 +09:00
2021-12-03 18:58:12 +01:00
2020-02-23 10:42:07 +00:00

squeekboard - a Wayland virtual keyboard

Squeekboard is a virtual keyboard supporting Wayland, built primarily for the Librem 5 phone.

It squeaks because some Rust got inside.

Features

Present

  • GTK3
  • Custom yaml-defined keyboards
  • DBus interface to show and hide
  • Use Wayland input method protocol to show and hide
  • Use Wayland virtual keyboard protocol

Temporarily dropped

  • A settings interface

TODO

  • Use Wayland input method protocol
  • Pick up DBus interface files from /usr/share

Creating layouts

If you want to work on layouts, check out the guide.

Building

Dependencies

See .gitlab-ci.yml or run apt-get build-dep .

Build from git repo

$ git clone https://source.puri.sm/Librem5/squeekboard.git
$ cd squeekboard
$ mkdir _build
$ meson _build/
$ cd _build
$ ninja

To run tests use ninja test. To install squeekboard run ninja install.

Running

$ phoc # if no compatible Wayland compositor is running yet
$ cd ../build/
$ src/squeekboard

Squeekboard honors the gnome "screen-keyboard-enabled" setting. Either enable this through gnome-settings under accessibility or run:

$ gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true

To make the keyboard show you can use either an application that does so automatically, like a text editor or python3 ./tools/entry.py, or you can manually trigger it with:

busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true

Environment Variables

Besides the environment variables supported by GTK and GLib applications squeekboard honors the SQUEEKBOARD_DEBUG environment variable which can contain a comma separated list of:

  • force-show : Show squeekboard on startup independent of any gsettings or compositor requests
  • gtk-inspector: Spawn gtk-inspector

What the compositor has to support

A compatible compositor has to support the protocols:

  • layer-shell
  • virtual-keyboard-v1

It's strongly recommended to support:

  • input-method-v2

Developing

See doc/hacking.md for this copy, or the official documentation for the current release.

Description
An on-screen-keyboard input method for Wayland
Readme 4.4 MiB
Languages
Rust 68.3%
C 25.7%
Meson 2.7%
Python 1.9%
CSS 1.1%
Other 0.3%