Mechvibes Not Working on Linux: Wayland and the Input Group
On Linux, Mechvibes almost always fails in the same way: the window opens, the tray icon appears, and typing makes no sound. The cause is nearly always permission to read the keyboard. This post explains why, how to fix it, and the few other things that trip people up.
Why Mechvibes needs the input group
Wayland, the default display system on Ubuntu, Fedora and most current distributions, does not let one app see what you type into another. That is good for privacy, but it means a keyboard sound app cannot listen the usual way. Mechvibes 3 reads the keyboard and mouse directly from the devices in /dev/input, which works in every window, on Wayland and X11 alike.
Those devices belong to the input group, so your account needs to be in it:
sudo usermod -a -G input $USER
Then log out and log back in. This step is easy to skip and it matters: programs already running keep your old groups until you start a new session. A reboot works too.
Being in the input group lets any program you run read your keyboard and mouse, not only Mechvibes. That is the trade-off for sounds that work everywhere on Wayland. If you would rather not make it, use an X11 session instead, where Mechvibes works without the group.
Check that it worked
After logging back in:
groups $USER
The list should include input. You can also check the devices:
ls -la /dev/input/event*
They should show crw-rw---- root input. If they do and Mechvibes is still silent, go through the no sound checklist.
Mechvibes does not yet warn you when it cannot read /dev/input (issue #124), so a silent app with no error message is the usual sign of a missing group.
On X11 without the group
On X11, Mechvibes falls back to its older way of listening when it cannot read the devices, so sounds still play. The difference is that a keyboard or mouse you plug in later is not picked up until you restart Mechvibes. Adding the input group removes that limit.
Installing
- Debian, Ubuntu and derivatives: download the
.deband install it withsudo dpkg -ifollowed by the file name. It replaces Mechvibes 2 or MechvibesDX by itself. - Any other distribution: use the AppImage. Make it executable with
chmod +x, then run it. If it does not start, run it with--appimage-extract-and-run. - Library links: run the AppImage once so the Install in Mechvibes buttons in the sound pack library know where to find it.
On Fedora 44, version 3.1.0 of the AppImage fails to start because of a missing libbz2 library (issue #142). If you hit this, adding your details to that issue helps.
Things that are expected
- Touchpad taps and two-finger scrolling make no sound. A mouse wheel does, if the mouse pack defines wheel sounds.
- Middle and extra mouse buttons only make a sound if the pack has one for them.
- "Start at login" is not available on Linux yet. Add Mechvibes to your desktop's startup applications instead.
- Only one copy runs. Opening Mechvibes again brings the existing window forward.
Still not working?
Export logs from Settings > Debug, then open an issue with your distribution, desktop, and whether you use Wayland or X11 (echo $XDG_SESSION_TYPE tells you).