Files
oskeyboard/README.md
T

54 lines
1.9 KiB
Markdown

# A Simple On-Screen Keyboard
`osk` is an On-Screen Keyboard written in C, using GTK bindings, and is meant for use on Linux / Wayland / Hyprland setups and the Spaces ecosystem, more to come soon on that.
Currently, the default (and only) option is to toggle `osk` when `osk` is ran again. This keeps the keyboard in memory, keeping the launch nice and responsive.
## Setup
There are a few steps necessary in order to have this OSK work.
First, check that you have the `uinput` kernel module loaded:
```
lsmod | grep uinput
# If there is no output, try this:
sudo modprobe uinput
```
Second, open `/etc/udev/rules.d/99-uinput.rules` in your text editor of choice and add this line to the file:
```
KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"
```
Then run the following command:
```
sudo usermod -aG input username
```
Log out and back in, and you'll be all set.
Alternatively, change the group to `uinput` in the `/etc/udev/rules.d/99-uinput.rules` file and in the `usermod` command, as the `input` group has access to other input devices, not just virtual input devices.
## Build from source
Run the following commands:
```
git clone https://github.com/weave-space/oskeyboard
cd oskeyboard
meson compile -C build
./build/osk
```
## Customization
There is now only one way to customize `oskeyboard`: editing `keymap.h`. Currently there is a limitation of custom layouts, as the number of rows and the number of keys per row are hardcoded in `main.c`. That will be remedied in the near future.
Any changes to `keymap.h` require you to recompile, simply run `meson compile -C build` to do so.
## TODO
- [x] Responsive design sizes
- [ ] CLI flags
- [ ] Man page
- [ ] Documentation
- [ ] In-depth testing
- [ ] Easier customization & custom layouts
## Credits
- Google Gemini 3 (Explanation of docs and concepts.)
- https://docs.gtk.org/gtk4/index.html