2024-04-14 17:49:06 +02:00
2024-10-22 17:41:10 +00:00
2024-11-01 14:28:14 +01:00
2024-03-11 17:45:57 +01:00
2010-06-04 12:09:08 +09:00
2024-08-17 13:08:58 +00:00
2019-10-10 16:13:30 +00:00
2024-09-30 11:14:45 +02:00

squeekboard - a Wayland on-screen keyboard

Squeekboard is the on-screen-keyboard input-method for Phosh. It is primarily designed for smartphones, tablet-PCs, and other devices with touchscreens.

It squeaks because some Rust got inside.

Features

Present

  • GTK3
  • Custom keyboard layouts defined in yaml
  • Input purpose dependent keyboard layouts
  • DBus interface to show and hide
  • Use Wayland input method protocol to submit text
  • Use Wayland virtual keyboard protocol

TODO

Creating layouts

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

Nightly builds

For testing the latest commits of the main-branch, one can install the nightly builds of Squeekboard. For more information about the nightly builds, read the "Phosh Nightly Package Builds"-blog-post.

Building

Dependencies

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

Build from git repo

$ git clone https://gitlab.gnome.org/World/Phosh/squeekboard.git
$ cd squeekboard
$ mkdir _build
$ meson setup _build/
$ cd _build
$ ninja

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

Running

$ cd ../build/
$ src/squeekboard

If no compatible Wayland compositor is running yet, you can use Phoc (after installing it):

$ phoc --exec 'src/squeekboard'

Squeekboard's panel will appear whenever a compatible application requests an input method. Click a text field in any GTK application, like python3 ./tools/entry.py.

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

Alternatively, force panel visibility manually with:

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

or by using the environment-variable SQUEEKBOARD_DEBUG=force_show.

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

Settings

You can change the height of the panel for the keyboard with:

$ gsettings set sm.puri.Squeekboard scale-in-horizontal-screen-orientation 1.0
$ gsettings set sm.puri.Squeekboard scale-in-vertical-screen-orientation 1.0

Note: If the keyboard is open when the settings for the panel-height are changed, the height of the keyboard will not change until it is opened again, or the layout is changed. While using Phosh, you can long-click/long-tap the home-bar at the bottom, to open and close the keyboard.

To reset the settings to the default, you can use:

$ gsettings reset-recursively sm.puri.Squeekboard

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%