libx52/daemon
nirenjan 03d58c62e8 feat: Improve virtual mouse speed calculations
Prior to this change, the mouse speed was controlled by an opaque
numeric value, that controlled both the speed and the delay between
updates. This caused a lot of choppy behavior with lower speeds, and the
really low speeds had as little as 1% speed difference between them in
the practical pixels/second speed, while there was effectively a 50%
jump in the speed between speed settings 11 and 12, due to the
hyperbolic relationship between steps. Post that, it was an even 25%
increase in sensitivity for every step.

This change modifies it so that the old Speed option is deprecated, it
is now replaced by the Sensitivity option, which is a direct percentage
scale from 10% to 500%. In addition, there is a CurveFactor option to
let it have fine control when there is little deflection, and move
faster when further away from the center. This also adds an
IsometricMode option which computes the speed as a function of the
cartesian distance from the center (`sqrt(dx^2 + dy^2)`). The default
behavior uses the existing linear speed which controls the speed of the
X and Y axes independently, but now uses the sensitivity and curve
factors to get better behavior. Also, the mouse events are consistently
reported every 10ms. This should make it a lot smoother.

Finally, this change also adds a Deadzone factor, which allows the user
to ignore small changes near the center of the joystick that can cause
mouse drift. This deadzone uses the total distance, so if just the X or
Y axis has moved, it will still allow suppressing any play in the thumb
stick.

Issue: #44
2026-04-01 22:49:04 -07:00
..
tests Add test case for setting unknown configuration value 2022-09-22 22:14:44 -07:00
Makefile.am feat: Update symbol visibility 2026-03-30 22:35:52 -07:00
daemon.dox Update daemon documentation to include notify socket 2022-09-21 20:08:58 -07:00
meson.build feat: Improve virtual mouse speed calculations 2026-04-01 22:49:04 -07:00
protocol.dox Update daemon protocol documentation 2023-01-04 10:07:20 -08:00
test_daemon_comm.py Use x52ctl to test daemon communication 2022-09-23 10:02:17 -07:00
x52ctl.c refactor(x52ctl): Break out interactive mode 2026-03-16 23:07:39 -07:00
x52d.conf feat: Improve virtual mouse speed calculations 2026-04-01 22:49:04 -07:00
x52d.service.in Revert "Enable verbose logging in systemd service" 2021-10-05 22:38:34 -07:00
x52d_client.c fix: Avoid backward jumps using goto 2026-03-12 08:34:58 -07:00
x52d_client.h Add notify API 2022-09-06 23:19:03 -07:00
x52d_clock.c fix: Address compiler warnings 2026-03-19 00:10:18 -07:00
x52d_clock.h Add clock update functionality 2021-07-23 10:13:18 -07:00
x52d_comm_client.c Add notify API 2022-09-06 23:19:03 -07:00
x52d_comm_internal.c feat: Improve virtual mouse speed calculations 2026-04-01 22:49:04 -07:00
x52d_command.c fix: Address compiler warnings 2026-03-19 00:10:18 -07:00
x52d_command.h Move command processing into separate thread 2022-07-27 12:47:53 -07:00
x52d_config.c Add a callback to apply one configuration item immediately 2022-02-11 13:30:17 -08:00
x52d_config.def feat: Improve virtual mouse speed calculations 2026-04-01 22:49:04 -07:00
x52d_config.h feat: Improve virtual mouse speed calculations 2026-04-01 22:49:04 -07:00
x52d_config_dump.c Cleanup config dump routine 2022-09-22 21:31:49 -07:00
x52d_config_parser.c Update int_parser to reject invalid input 2022-09-01 20:50:36 -07:00
x52d_const.h Add notify API 2022-09-06 23:19:03 -07:00
x52d_device.c fix: Address compiler warnings 2026-03-19 00:10:18 -07:00
x52d_device.h Disable device check routine in daemon 2021-09-14 09:10:52 -07:00
x52d_io.c fix: Address compiler warnings 2026-03-19 00:10:18 -07:00
x52d_io.h Create I/O thread to read and process events 2021-09-14 13:33:36 -07:00
x52d_led.c Integrate pinelog module logging functionality 2021-11-10 09:29:27 -08:00
x52d_main.c feat: Add virtual keyboard/mouse library support 2026-03-30 10:01:50 -07:00
x52d_mouse.c feat: Improve virtual mouse speed calculations 2026-04-01 22:49:04 -07:00
x52d_mouse.h feat: Improve virtual mouse speed calculations 2026-04-01 22:49:04 -07:00
x52d_mouse_handler.c feat: Improve virtual mouse speed calculations 2026-04-01 22:49:04 -07:00
x52d_mouse_test.c feat: Improve virtual mouse speed calculations 2026-04-01 22:49:04 -07:00
x52d_notify.c fix: Address compiler warnings 2026-03-19 00:10:18 -07:00
x52d_notify.h Add notifications when device is connected/disconnected 2022-09-23 15:15:49 -07:00
x52dcomm-internal.h Move common socket code into x52d_comm_internal.c 2023-01-04 08:42:47 -08:00
x52dcomm.h feat: Update symbol visibility 2026-03-30 22:35:52 -07:00