Subject: Kivy Development on Fedora Silverblue – Multiple Issues with MTDev, HID, Clipboard, and Libraries

Hello Fedora Community,

I’m developing a Kivy app on Fedora Silverblue 43 using Python 3.13.12 and Kivy 2.3.1 inside a Toolbox container. I’ve encountered several issues and need guidance on the best practices for programming on Silverblue:

1. MTDev / libmtdev.so.1 errors

  • Kivy logs:
MTDev is not supported by your version of linux
OSError: libmtdev.so.1: cannot open shared object file: No such file or directory

  • I installed mtdev in the Toolbox, but Kivy still cannot find the library.

2. HID / Input permission errors

  • When running the app:
PermissionError: [Errno 13] Permission denied: '/dev/input/event5'

  • Kivy tries to access raw input devices. I’m not sure how to grant access safely in Silverblue.

3. Clipboard provider errors

  • Kivy reports missing clipboard providers:
xclip - FileNotFoundError
xsel - FileNotFoundError

  • What’s the recommended way to install these for Kivy in Silverblue?

4. SDL2 / Mesa / Graphics libraries

  • I had to install SDL2, SDL2_image, SDL2_ttf, SDL2_mixer, mesa-libGL, and mesa-libEGL. Some were already provided, causing rpm-ostree warnings.

5. Kivy app crashes / input fallback

  • Kivy falls back on hidinput but still logs exceptions and does not fully launch in some cases.

6. Toolbox vs Flatpak / System Environment

  • I’m unsure if Toolbox is the correct environment for Kivy development or if Flatpak apps would be better.

My questions:

  • What is the recommended approach to develop Kivy apps on Fedora Silverblue? Toolbox, Flatpak, or another method?

  • How can I resolve MTDev, HID permissions, clipboard, and library issues safely?

  • Are there configuration tips to avoid Kivy app crashes and errors on Silverblue?

Thank you for your guidance — I want to continue developing apps on Fedora Silverblue without constant environment conflicts.

1 Like

Hey there, Did you just create the container with toolbox or did you use a Container/Dockerfile ?

I created the container using Toolbox only (default Fedora Toolbox container).
I did not use a custom Containerfile or Dockerfile.
I installed Python, Kivy, and dependencies manually inside the Toolbox environment.

I’m using the default Toolbox container on Fedora Silverblue 43.
Kivy was installed using pip inside the container, and system libraries (SDL2, mesa, etc.) were installed via rpm-ostree on the host.

1 Like

This ione is a little tricky because you have to pass a couple of permissions to the container. While toolbox grabs the basic I think there’s an issue with 2 specifically here.

  1. HID / Input permission errors (/dev/input/eventX) You might need to pass this to the container.
export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH

2. python -c “import ctypes; print(ctypes.CDLL(‘libmtdev.so.1’))” to see if kivy picks it up.

Honestly, I would have built the image with all needed, but since you did it this way you will need to pass through some things to the container. Try this and give us feedback. Also, as an aside, the most common container gotcha is /dev/input/event* devices are 660 root:input on the host. Toolbox mounts /dev but runs in a user namespace, so group membership must be inherited properly. that could be the issue. . . :thinking: