README.md 1.66 KB
Newer Older
1 2
*squeekboard* - a Wayland virtual keyboard
========================================
3

4
*Squeekboard* is a virtual keyboard supporting Wayland, built primarily for the *Librem 5* phone.
5

Dorota Czaplejewicz's avatar
WIP  
Dorota Czaplejewicz committed
6 7
It squeaks because some Rust got inside.

Dorota Czaplejewicz's avatar
Dorota Czaplejewicz committed
8 9 10 11 12 13
Features
--------

### Present

- GTK3
Dorota Czaplejewicz's avatar
WIP  
Dorota Czaplejewicz committed
14
- Custom yaml-defined keyboards
Dorota Czaplejewicz's avatar
Dorota Czaplejewicz committed
15
- DBus interface to show and hide
Dorota Czaplejewicz's avatar
WIP  
Dorota Czaplejewicz committed
16 17
- Use Wayland input method protocol to show and hide
- Use Wayland virtual keyboard protocol
Dorota Czaplejewicz's avatar
Dorota Czaplejewicz committed
18 19 20 21 22 23 24 25 26 27

### Temporarily dropped

- A settings interface

### TODO

- Use Wayland input method protocol
- Pick up DBus interface files from /usr/share

28 29 30 31 32
Building
--------

### Dependencies

33
See `.gitlab-ci.yml` or run `apt-get build-dep .`
34 35 36

### Build from git repo

37
```bash
38 39
$ git clone https://source.puri.sm/Librem5/squeekboard.git
$ cd squeekboard
40 41 42 43
$ mkdir _build
$ meson _build/
$ cd _build
$ ninja
44 45
```

46 47
To run tests use `ninja test`. To install squeekboard run `ninja install`.

48 49 50
Running
-------

51
```bash
52
$ phoc # if no compatible Wayland compositor is running yet
53 54
$ cd ../build/
$ src/squeekboard
Dorota Czaplejewicz's avatar
Dorota Czaplejewicz committed
55 56
```

57 58 59 60 61 62 63 64 65 66 67 68
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 ./tests/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
```

69 70
Developing
----------
71

Andreas Rönnquist's avatar
Andreas Rönnquist committed
72
See [`doc/hacking.md`](doc/hacking.md) for this copy, or the [official documentation](https://developer.puri.sm/projects/squeekboard/) for the current release.