suggestion picker: a persistent layer to complement virtual keyboards like wvkbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# wvkbd - On-screen keyboard for wlroots that sucks less

<img src="https://raw.githubusercontent.com/jjsullivan5196/wvkbd/master/contrib/grab.png" width=350 />

This project aims to deliver a minimum implementation of a wlroots on-screen
keyboard in legible C. This will **only** be a keyboard, not a feedback buzzer,
led blinker, or anything that requires more than what's needed to input text
quickly. The end product should be a static codebase that can be patched to add
new features.

At the moment work still needs to be done to make the keyboard fully functional
and determine a minimum feature set. As of now, the following works:

## Features

 - Typing, modifier locking, layout switching
 - Positive visual feedback on key presses
 - Custom layouts
 - Custom color schemes

There are some relatively critical areas that still need work:

 - Proper drawing of font glyphs/fontconfig alternatives (unknown glyphs for the
   configured font are not drawn)
 - Make sure the virtual input method in wayland is working as best as it can
 - Customize keyboard window docking
 - Nicer layout drawing/padding
 - Determine if some dependencies are really needed (fontconfig is VERY
   annoying, and wld may not be strictly necessary)

And some nice to haves:

 - Daemon mode (hide/show keyboard on signals)
 - Support for input method protocol in wayland, ability to respond to text
   fields
 - Alt input modes for things like emojis
 - Typical international layouts in the repository

Of course there's probably some more I'm forgetting, everything here is very
much early WIP so things will change very quickly.

## Install

You'll need the following developer packages

 - fontconfig
 - wayland-client
 - xkbcommon
 - pixman

After cloning this repo, run `git submodules update --init --recursive`

Make any customizations you would like in `config.h` and run `make`, then `./wvkbd`

## Contribute

Any contributions are welcome, please tell me what I did wrong in issues or
PRs. I could also use some nice branding if that tickles your fancy.

For code contributions, all I ask for now is you run `make format` (requires
`clang-format`) before opening a PR and include as much relevant detail as
possible.