86 lines
1.6 KiB
Markdown
86 lines
1.6 KiB
Markdown
*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
|
|
|
|
Building
|
|
--------
|
|
|
|
### Dependencies
|
|
|
|
See `.gitlab-ci.yml`.
|
|
|
|
### Build from git repo
|
|
|
|
```
|
|
$ git clone https://source.puri.sm/Librem5/squeekboard.git
|
|
$ cd squeekboard
|
|
$ mkdir ../build
|
|
$ meson ../build/
|
|
$ cd ../build
|
|
$ ninja test
|
|
$ ninja install
|
|
```
|
|
|
|
Running
|
|
-------
|
|
|
|
```
|
|
$ phoc # if no compatible Wayland compositor is running yet
|
|
$ cd ../build/
|
|
$ src/squeekboard
|
|
```
|
|
|
|
### Maintenance
|
|
|
|
Use the `cargo.sh` script for maintaining the Cargo part of the build. The script takes the usual Cargo commands, after the first 2 positionsl arguments: source directory, and output artifact. So, `cargo test` becomes:
|
|
|
|
```
|
|
cd build_dir
|
|
/source_path/cargo.sh /source_path '' test
|
|
```
|
|
|
|
### Testing
|
|
|
|
Testing with an application:
|
|
|
|
```
|
|
python3 tests/entry.py
|
|
```
|
|
|
|
Testing visibility:
|
|
|
|
```
|
|
$ busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true
|
|
$ busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b false
|
|
```
|
|
|
|
Testing layouts:
|
|
|
|
```
|
|
$ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'ua')]"
|
|
$ gsettings set org.gnome.desktop.input-sources current 1
|
|
```
|