I'm using Debian 12 from a fresh install (with Wayland). The mouse I'm using is an Azeron Cyro keypad. Azeron does not offer configuration software for Linux, but the device has onboard memory and can be configured via Windows or windows emulator. Importantly, what I'm trying to achieve here is not possible on Windows using Azeron's software.
My goal is to use one of the 16 keypad buttons on the mouse to disable mouse movement while pressed, resuming mouse movement when released. This is how I currently use the mouse in Windows so that I do not have to lift the mouse to reposition it. I'm able to achieve using reWASD on Windows, but they also do not offer a Linux version of their software.
I've tried a few different solutions, but I haven't been able to find something that fits this need, so I'm hoping someone might be able to guide me in a better direction:
AntiMicroX - I've tried using the Flatpak, AppImage, and .deb packages. The software works as expected on other devices (for example, an xbox controller), and while my mouse shows up as a device, the button remapping does not work, the thumb stick is not available for calibration, and there seems to be no access to the mouse sensor.
Input-Remapper - Very similar results to AntiMicroX, and also, I don't see a way to use Input-Remapper to disable mouse input anyway.
Mouseless - While I can generate mouse movement commands through Mouseless, I haven't been able to disable mouse movement from my physical mouse.
evdevremapkeys - This has been my most successful tool. With the debugger, I'm able to see my key presses (unless I have the key unmapped on the mouse) and I'm able to remap existing keys with a yaml configuration, but I've still not found a way to disable the mouse input.
I found something that seemed close to what I need in a two year old reddit post which mentions that it's possible with Sway (via man sway-input). I don't understand the proposed solution though and I'm not very familiar with compositors, how to interact with them or how installing one would affect my OS environment...
Does anyone know of a way I might be able to achieve this?
I’m going to preface this and say that I don’t use Debian or Sway but I think I can help explain the reddit post a bit. On mobile, please excuse the formatting.
Wayland is a protocol that isn’t responsible for drawing anything to your screen by itself. This job is done by a Wayland compositor. (They’re similar to window managers on an X11 system if that means anything to you)
Sway is one such compositor that Debian supports, but it also supports GNOME and KDE Plasma which have their own compositors and the wiki mentions Weston as well.
It looks like Debian defaults to GNOME, so the sway commands aren’t going to be much help. Wayland uses libinput to handle peripherals so none of the xinput commands are going to be usable.
It’s a little in depth and probably not the best way to do things, but I think I have a solution that might work. Hopefully this can at least get you started, let me know if you have any questions!
Reddit implies that in settings -> keyboard -> shortcuts you can create a shortcut to execute arbitrary commands. You should be able to bind a key to “gsettings set org.gnome.desktop.peripherals.mouse speed 0.0” which will keep your cursor from moving and another with the “0.0” at the end changed to something like “0.5” to set the cursor speed back to something reasonable. This could be done as a shell script to toggle back and forth with one key.
Thanks very much for explaining a bit about Sway and compositors in general - that makes more sense now!
I did find the keyboard shortcuts exactly as you described, that's something I didn't know about before! Unfortunately, I don't think the mouse speed setting is exactly as it sounds:
Pointer speed for mice. Accepted values are in the [-1..1] range (from “unaccelerated” to “fast”). A value of 0 is the system default.
It looks like it's related to the acceleration, not the base movement speed. When I tested, even a value of -1 only slows the mouse instead of stopping it completely. There may be something else that will work, knowing that a custom shortcut exists that can execute a command does open up options I haven't looked at yet.