MoonlightWave-12 84341b88cd Improve shape-selection with a workaround
This workaround makes Squeekboard use the wide shape on more devices.

On many devices with wide screens, which should use the wide shape
for layouts while in horizontal orientation, the compact shape was
used instead.
In particular, 5" large displays with an aspect-ratio of 16:9,
which are relatively common, were using the compact shape.

This workaround has the side-effect of allowing for more empty space
above and below the wide shape, to fit the layout into the available area.
The buttons on displays where this would be noticeable,
should still be larger than before.

To find an appropriate point for switching between the shapes without
having the relevant displays to test with,
one can create an image sized according to the device's display-resolution
and pixel-density, place a line representing the height of Squeekboard
(based on the scaling-tests), paste images of compact and wide
layout-shapes into the area and scale them appropriately,
set the image-viewer to show the image according to physical size,
and then compare which one fits better.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/639>
2024-05-03 10:41:14 +00:00
2024-05-03 09:28:55 +00:00
2023-02-16 12:59:23 +00:00
2024-04-14 17:49:06 +02:00
2024-04-21 14:51:55 +00:00
2023-02-04 18:03:54 +00:00
2024-05-03 09:28:55 +00:00
2024-03-11 17:45:57 +01:00
2010-06-04 12:09:08 +09:00
2024-04-13 12:22:23 +02:00
2019-10-10 16:13:30 +00:00
2024-03-23 17:00:55 +01:00
2024-03-22 11:53:35 +01:00
2024-03-23 18:53:08 +01:00
2024-03-23 18:53:08 +01:00
2024-04-18 09:49:43 +02:00

squeekboard - a Wayland on-screen keyboard

Squeekboard is the on-screen keyboard 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.

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 _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'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

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%