From 48df8934fd9ed36545dd422c4786cb289f5da3b7 Mon Sep 17 00:00:00 2001 From: Nicolas James Date: Wed, 26 Mar 2025 21:17:59 +1100 Subject: Update README.md --- README.md | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'README.md') diff --git a/README.md b/README.md index 9c5ff41..7d5c066 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,46 @@ # fastmouse -Fastmouse is a kernel patch which provides the ability to rotate and slow your mouse. +Fastmouse is a kernel patch (and collection of tiny bash scripts) which provide the +ability to rotate and slow your mouse. Inspired by [the leetmouse kernel module](https://github.com/systemofapwne/leetmouse), +Fastmouse aims provides a more robust means of modifying your mouse inputs through +direct modification of the HID driver provided by the Linux kernel. As we only operate +in integer space, we provide higher precision and minimise information loss. + +# Usage + +Fastmouse currently exposes three parameters in the `/sys/module/hid/parameters` directory. + +- `division`: A positive integer representing the amount of inputs to buffer before emitting an event. +Useful for reducing mouse sensitivity - essentially the same as dividing DPI. '1' does nothing, +'2' omits one event for every two, and so on. +- `rise`: An integer describing the vertical component of the triangle used to calculate mouse rotation. +- `run`: An integer describing the horizontal component of the triangle used to calculate mouse rotation. + +##### fastmouse +Wraps the arguments specified after `--` with a Fastmouse division - also computes and sets +a KDE-specific calculation for keeping the mouse moving at the same speed on the desktop. +Effectively, this seamlessly drops the DPI of the mouse, and then restores the original configuration +once the program exits. With `fastmouse` in your path, usage would look like this: + +```console + fastmouse 10 -- my_program_which_doesn't_work_with_high_dpi_mice_or_doesn't_allow_me_to_lower_sens +``` + +##### set_rotation +Set_rotation computes and sets optimal values for the exposed rise and run parameters for any +desired mouse rotation angle. Usage is simply: +```console + set_rotation my_angle_in_degrees +``` + +# Installation + +Installation of Fastmouse is dependent on your OS configuration - it requires you to build +the Linux kernel with the patch `fastmouse.patch` applied. Installation has succeeded when +the following command prints `1`. +```console + $ cat /sys/module/hid/parameters/division +``` # Building from Source -- cgit v1.2.3