Skip to content

Greatly Reduce Azoteq Hold Time for dragging/scrolling motions, added extra DPI & MouseKeys Auto timeout choices#6

Merged
ilc merged 3 commits into
ilc:merge-2025-06-21from
ziasquinn:azo-touches-9-2025
Sep 10, 2025
Merged

Greatly Reduce Azoteq Hold Time for dragging/scrolling motions, added extra DPI & MouseKeys Auto timeout choices#6
ilc merged 3 commits into
ilc:merge-2025-06-21from
ziasquinn:azo-touches-9-2025

Conversation

@ziasquinn
Copy link
Copy Markdown

Hello! Per our small discussion in the svalboard discord, I have created a new branch and implemented some super minor tweaks in my branch azo-touches-9-2025

  1. I added #define AZOTEQ_IQS5XX_HOLD_TIME 20 to keyboards/svalboard/azoteq/config.h to alter the default (and until this moment, undefined/undeclared, functionality of Hold-Tap action on the Azoteq touchpad. The default 300 ms hold time forces any azoteq user to wait 'a beat' whenever they wish to interact with a window resizing handle, or window moving frame. It also affects the ability to select text or drag and drop files. Lowering it to 20 ms greatly increases comfort. You can see this documented simply, here: https://docs.qmk.fm/features/pointing_device#gesture-settings

  2. I increased the defined array, extern const int16_t mh_timer_choices[6]; in keyboards/svalboard/svalboard.h from the previous 4 options. This will come into play in...

  3. keyboards/svalboard/svalboard.c where I have matched the array number from 2. and used the extra array options to provide 200 ms, and 400 ms timeouts for mousekeys. const int16_t mh_timer_choices[6] = { 200, 300, 400, 500, 800, -1 }; // -1 is infinite.

  4. Farther down in the same file, I had added 600 as a dpi choice in that options array: const uint16_t dpi_choices[] = { 200, 400, 600, 800, 1200, 1600, 2400 }; // If we need more, add them.

4-A. There is a final tweak I made, that is not included in this PR, since the way I handled it was clunky, and we believe there is a cleaner way to handle letting the sval-sides communicate their status and appropriately handle a toggle for it, but to sum it it up:

If you use a left-sided azoteq as a dedicated scrolling device (SCROLL_LOCKED), you may find that the single-finger 'scroll' and the two-finger scroll act inverted to each other.

If you navigate to keyboards/svalboard/keymaps/keymap_support.c and find the function if ((global_saved_values.left_scroll != scroll_hold) != scroll_toggle) ... simply adjust the converted output of reportMouse1.v = add_to_axis(&l_y -reportMouse1.y); to reportMouse1.v = add_to_axis(&l_y, reportMouse1.y);

Next steps, to better implement the axis lock and hopefully toggle swap, is:

  • Determine best way for boards to establish which side is the Leader-Host side.
  • Possibly interact with the ((weak)) function within svalboard.c to see if it is do-able down that route.
  • Otherwise brainstorm cleaner method for fixing this mismatch in expected behavior without negatively affecting the more 'normie' trackball users... :)

Happy to discuss more.

Increased mh_timer_choices array from 4 to 6.
Increased mh_timer_choices array to allow 6 options, and included 200, and 400, as timeout options in the array.

Added 600 to the dpi array as a choice when looping through it.
defining this parameter decreases the required 'wait' time to activate dragging/selecting on a touchpad touch from the default 300ms to 20ms. Big QoL.
@ilc ilc merged commit 3a98fb1 into ilc:merge-2025-06-21 Sep 10, 2025
12 checks passed
@ilc
Copy link
Copy Markdown
Owner

ilc commented Sep 10, 2025

4a: It is not in scope for this PR, so it isn't considered in the review.

LGTM.

@ziasquinn ziasquinn deleted the azo-touches-9-2025 branch September 22, 2025 03:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants