*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](doc/tutorial.md). Building -------- ### Dependencies See `.gitlab-ci.yml` or run `apt-get build-dep .` ### Build from git repo ```bash $ 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 ------- ```bash $ 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: ```bash $ 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: ```bash 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](https://docs.gtk.org/glib/running.html) 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](https://wiki.gnome.org/Projects/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`](doc/hacking.md) for this copy, or the [official documentation](https://developer.puri.sm/projects/squeekboard/) for the current release.