8e014aaaf83cab8cf1919189da40150a0e5e3e77
- use G_DECLARE_ and G_DEFINE_ macros - move all data into ClassNamePrivate - use _get_instance_private() This should not introduce any functional changes or breakage. Skipped two classes (EekKeyboard and EekboardContextService) for now in order not to break the build. These two classes are used in some very funky WIP code that tries to circumvent encapsulation. (Funky code is in eekboard/key-emitter.c and eekboard/eekboard-context-service.c)
squeekboard - a Wayland virtual keyboard
Squeekboard is a virtual keyboard supporting Wayland, built primarily for the Librem 5 phone.
Features
Present
- GTK3
- Custom xml-defined keyboards
- DBus interface to show and hide
Temporarily dropped
- A settings interface
TODO
- Use Wayland virtual keyboard protocol
- Use Wayland text input protocol
- 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/eekboard.git
$ cd eekboard
$ mkdir ../build
$ meson ../build/
$ cd ../build
$ ninja install
For development, alter the meson call:
$ meson ../build/ --prefix=../install
and don't skip ninja install before running. The last step is necessary in order to find the keyboard definition files.
Running
$ rootston
$ cd ../build/
$ src/squeekboard
Testing
$ 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
$ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'ua')]"
$ gsettings set org.gnome.desktop.input-sources current 1
Description
Languages
Rust
68.3%
C
25.7%
Meson
2.7%
Python
1.9%
CSS
1.1%
Other
0.3%