# wvkbd - On-screen keyboard for wlroots that sucks less 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 submodule 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.