• 1 Post
  • 3 Comments
Joined 11 months ago
cake
Cake day: December 20th, 2023

help-circle
  • Success! This is certainly a niche issue, but since it’s taken a pretty lengthy amount of research to resolve, I thought I’d add some resources here in case it’s helpful to anyone else.

    After exploring others’ recommendations, I’ve saved hardware solutions for tinkering in the future and was also not able to find a way to temporarily disable mouse movement through gnome. I finally landed on python-evdev as my solution. With this, you can read input from one or more devices simultaneously, create a virtual input device to write events to on-demand, and (maybe most importantly) retain exclusive access to the original hardware devices to absorb their input. I’ll also shout out evsieve which lead me to python-evdev. The python-evdev documentation is quite thorough, and it’s quite a custom solution based on your own needs, so I’m not going to go into great detail on my python script - but it’s only 27 lines long, nothing major.

    Be aware that you may need to write some udev rules to allow access to the physical devices and to allow the virtual device to be created. This was the easiest part for me to find help with, so I’ll leave some abridged copy/paste details below:

    Find your device Vendor and Product IDs cat /proc/bus/input/devices | more

    Write a udev rule (I used priority 71) to allow access to the device: SUBSYSTEMS=="usb", ATTRS{idVendor}=="", ATTRS{idProduct}=="", TAG+="uaccess"

    Add a very poor udev rule to allow a virtual device to be created by python-evdev (there’s probably a much better way to do this): KERNEL=="uinput", SUBSYSTEM=="misc", OPTIONS+="static_node=uinput", TAG+="uaccess", MODE="0660"


  • 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.


  • 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.