I have a Qt6 app running on the Verdin IMX8M Mini SOM on the Mallow carrier board, with the Toradex-supplied 7" capacitive touchscreen.
We are using the open-source version of Qt6 without their keyboard module, so we implemented our own keyboard. Everything looks great when running on the desktop.
When the app runs on the device, when we enter a dialog that contains our keyboard, a horrible looking virtual keyboard pops up as an overlay, and covers most of our custom keyboard. It captures the touch events so that we can’t touch our keyboard buttons that are hidden behind it. We suspect that this virtual keyboard is from Weston.
I’ve tried modifying the weston.ini file, giving a false path to the input-method path and explicitly disabling the overlay-keyboard, but that doesn’t help.
[keyboard]
vt-switching=false
[input-method]
path=
overlay-keyboard=false
Any ideas where this is coming from, and how to disable it?
I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.
Did you like my answer?
Hello! Thank you for your detailed explanation and for sharing your setup. I can confirm that your hardware combination—the Verdin iMX8M Mini on the Mallow carrier board with the 7" DSI touchscreen—is fully supported by Toradex:
Regarding the unexpected virtual keyboard popping up on your Qt6 application, your analysis is correct: it is likely the Weston compositor’s built-in virtual keyboard (often referred to as “weston-keyboard” or “weston-virtual-keyboard”).
How Weston’s Input-Method/Virtual Keyboard Works:
Weston has the option to launch a virtual keyboard when it detects a text input field, based on configuration in weston.ini under the [input-method] section.
Even if you set overlay-keyboard=false or provide a blank path, Weston may still use a default input method if the configuration is not recognized or there is a misconfiguration.
Recommended Steps to Disable Weston’s Virtual Keyboard:
Check and Edit weston.ini:
The relevant weston.ini section should look like:
[input-method]
path=
overlay-keyboard=false
You did this already, but double-check that you are editing the correct weston.ini file. On TorizonCore/Docker-based deployments, this is usually in /etc/xdg/weston/weston.ini or ~/.config/weston.ini (per user).
Remove the Input Method Service:
If Weston still spawns its keyboard, try completely commenting out or removing the [input-method] section from weston.ini and restart Weston.
Ensure No Input Method Is Launched:
Make sure there is no process running called weston-keyboard or similar.
On some Linux distributions, a symlink or a systemd service could start the virtual keyboard. You may want to check active services if using a systemd-based image.
Restart Weston Entirely:
After making changes, make sure you restart Weston (log out/in or reboot the system).
Alternative: Disable input-method support at runtime (not always required):
If the above does not work, try unsetting the WAYLAND_INPUT_METHOD_MODULE or related environment variables before launching Weston.
If, after these steps, the virtual keyboard still appears, you may want to check if your image has the weston-keyboard package or binary installed and (if possible) remove it.
Let me know if you need instructions specific to your Linux distribution or image layout.
The AI suggestions don’t really help. This is what I’ve found and what I’ve tried:
It is definitely the Weston keyboard.
It’s not trivial to ensure that the Torizon Weston container is actually picking up my custom weston.ini, but I’m virtually certain that the weston.ini changes that I’ve tried are actually being used by the container.
Defining the suggested [input-method] section of the weston.ini file does not fix the issue.
[input-method]
path=
overlay-keyboard=false
I’ve tried removing the [input-method] section entirely, and having each of the parameters defined by itself. No luck.
If I manually enter the container and delete the weston-keyboard executable (/usr/lib/aarch64-linux/weston-keyboard), weston crashes on start up complaining that weston-keyboard is not available.
The weston process (inside the weston container) is definitely starting the weston-keyboard process. I don’t see any command line arguments to the weston executable that would disable it.