Hello everyone,
while LBToolkit's existing components, such as LBLogger, LBmicroWebServer and LBWebPyBridge, have focused on backend functionality, I've introduced a new addition that brings LBToolkit into the realm of user interfaces: LBVirtualKeyboard.
This virtual keyboard was born out of real-world needs and stays true to LBToolkit’s philosophy: **modularity, flexibility, and adaptability**. I've used it successfully in various touchscreen scenarios, including embedded devices and industrial control panels.
### 🧩 Key Features
- **Advanced customization**
The entire keyboard layout — number of keys, pages, and their arrangement — is defined via XML. This allows you to tailor the keyboard to show only the characters needed for a specific context.
- **Input flexibility & appearance**
Each key can be rendered using custom bitmaps or styled dynamically. The keyboard adapts to any screen size and input method.
- **Portable architecture**
Thanks to a low-level abstraction layer for input handling, the core component is OS-agnostic. Native support is already available for **Windows** and **Linux/X11**, with potential for further platform extensions.
### 🎨 Theme System (Experimental)
A first version of a **theme system** is also included. It allows you to define the visual style of the keyboard — colors, fonts, borders, shadows, and even animations — using JSON files. This opens the door to future enhancements like PNG-based rendering, plugin-based styles, and visual editors.