*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 ```