New button-styles: - `change-view`: Highlighted like `special`, but with a border at the bottom. - `character-group`: Like `change-view`, but with less highlighting. - `placeholder`: Less contrast to the background and does not visually change when pressed. - `subtle-highlight`: For highlighting commonly used characters in accent-views, for example. New layouts: - Portuguese - Slovenian - Turkish (F-layout) - Turkish (Q-layout) Remade layout: - Portuguese (Brazil): A view for accents has been added. Changes: - The new button-styles are used in the available layouts, where appropriate. - The top rows of the terminal-layouts are a little taller. - Squeekboard will choose the wide shape of layouts, for more displays in horizontal orientation. - Highlighted buttons now show visual feedback too, when pressed. - Many layouts have been adjusted, so that those change their form less when switching views. - Various small issues have been fixed, to make layouts more consistent. Development: - Scaling-tests for many display-types have been added. Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/655>
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
- Port to GTK4 / GTK4-Layer-Shell
- Text prediction/correction
- Use preedit
- Submit actions like "next field" using a future Wayland 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://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.