Files

1.9 KiB

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

  • Responsive design sizes
  • CLI flags
  • Man page
  • Documentation
  • In-depth testing
  • Easier customization & custom layouts

Credits