this post was submitted on 05 Jul 2024
24 points (96.2% liked)

Linux

48182 readers
1702 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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?

you are viewing a single comment's thread
view the rest of the comments
[–] Rivalarrival@lemmy.today 3 points 4 months ago* (last edited 4 months ago) (1 children)

My first thought (which probably isn't the best method, but I've done similar before) is an Arduino between the mouse and the system. The Arduino normally just passes the mouse commands to the system, but it listens for the button and blocks movement if it sees the button press.

Because it's all done in hardware, this method would be system-agnostic. You could plug it into anything.

I used a Teensy 3.6 for a similar project.

[–] Overdraft@lemmy.ml 1 points 4 months ago

This is an interesting idea, thanks for the suggestion! I'm much less experienced working with hardware solutions like this, but this might be a good chance to learn something different. Anecdotally, it seems like there may be some issues with anti cheat software that blocks Arduino input, but that may not end up being a problem for me.

I've read through a few different projects and it certainly seems like this would work. Are there any specific projects you would recommend that might help get me on the right path? I'm going to try to work with a custom command plus key bind as a primary solution, but it would be nice to try a couple different approaches.