99 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.4 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
 | 
						|
 | 
						|
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://source.puri.sm/Librem5/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.
 |