A virtual keyboard for Linux with Wayland support and extensive customization options.
vboard is a lightweight, customizable virtual keyboard designed for Linux systems with Wayland support. It provides an on-screen keyboard solution that's especially useful for:
- Touchscreen devices without physical keyboards
- Systems with malfunctioning physical keyboards
- Accessibility needs
- Kiosk applications
The keyboard supports customizable colors, opacity settings, and can be easily modified to support different layouts.
- Customizable appearance: Change background color, text color, and opacity
- Persistent settings: Configuration is saved between sessions
- Modifier key support: Use Shift, Ctrl, Alt and Super keys
- Compact interface: Headerbar with minimal controls to save screen space
- Always-on-top: Stays above other windows for easy access
Install python-uinput steam-devices
packages using your package manager:
For Debian/Ubuntu-based distributions:
sudo apt install python3-uinput steam-devices
For Fedora-based distributions:
sudo dnf install python3-uinput steam-devices
For arch-based distributions:
yay -Syu python-uinput steam-devices
Retrieve the latest version of vboard.py
using wget
:
wget https://github.com/mdev588/vboard/releases/download/v1.15/vboard.py
python3 vboard.py
When launched, vboard presents a compact keyboard with a minimal interface. The keyboard includes:
- Standard QWERTY layout keys
- Arrow keys
- Modifier keys (Shift, Ctrl, Alt, Super)
- ☰ (menu) - Toggle visibility of other interface controls
-
-
- Increase opacity
-
-
-
- Decrease opacity
-
- Background dropdown - Change the keyboard background color
vboard saves its settings to ~/.config/vboard/settings.conf. This configuration file stores:
- Background color
- Opacity level
- Text color You can manually edit this file or use the built-in interface controls to customize the appearance.
The keyboard layout is defined in the rows list in the source code. To modify the layout:
- Download the source code
- Locate the rows definition (around line 175)
- Modify the key arrangement as needed
- The format follows a nested list structure where each inner list represents a row of keys
Make sure uinput kernel module is loded with
sudo modprobe uinput
to make sure it auto load on boot create file with
echo 'uinput' | sudo tee /etc/modules-load.d/module-uinput.conf
Reload udev rules with
sudo udevadm control --reload-rules && sudo udevadm trigger
Make sure the RPM Fusion repository is enabled. You can follow the guide here: https://rpmfusion.org/Configuration
Contributions to vboard are welcome! Here are some ways you can help:
- Add support for more keyboard layouts
- Improve the UI
- Fix bugs or implement new features
- Improve documentation
Please make sure to test your changes before submitting a pull request.
vboard is licensed under the GNU Lesser General Public License v2.1. See LICENSE.md for the full license text.
Currently, only the QWERTY US layout is supported, so other layouts may cause some keys to produce different keystrokes. BUT this could easily be fixed by modifying the row list arrangement