No description
  • Swift 87.5%
  • C 9.8%
  • JavaScript 1.6%
  • Objective-C 0.6%
  • Shell 0.3%
  • Other 0.2%
Find a file
Erik Hardesty d00572bdd4
Some checks are pending
Build / build (push) Waiting to run
Allow Logitech gesture buttons to preserve click fallback (#1211)
## Summary

Allow Logitech gesture-button controls to behave like regular mouse
buttons when no gesture is detected.

Previously, Logitech virtual/gesture controls were treated as fully
handled as soon as the gesture transformer saw them. That prevented the
Logitech fallback synthetic click from being posted, so a configured
gesture button could trigger gestures but would not preserve normal
click behavior.

This changes Logitech control handling from a boolean
handled/not-handled result to a small enum so handlers can distinguish
between:

- controls that are fully handled internally
- controls that are not handled
- gesture controls that are handled for gesture tracking but should
still allow synthetic fallback click events

With this, a Logitech gesture button can:

- fall through as a click when released without crossing the gesture
threshold
- trigger the configured gesture when dragged past the threshold
- suppress the click action after a gesture fires

## Testing

- `xcodebuild test -project LinearMouse.xcodeproj -scheme LinearMouse`
- `swiftformat --lint` on changed Swift files
- `swiftlint --strict` on changed non-legacy Swift files
2026-05-30 12:07:50 +08:00
.github Make Logitech receiver monitoring event-driven and fix UInt32 crash (#1133) 2026-03-25 22:51:55 +08:00
.vscode Support per-device settings (#149) 2022-06-28 15:25:09 +08:00
Documentation Add F13-F20 function key support to keyboard shortcuts (#1201) 2026-05-18 21:29:23 +08:00
LinearMouse Allow Logitech gesture buttons to preserve click fallback (#1211) 2026-05-30 12:07:50 +08:00
LinearMouse.xcodeproj Update translations (#986) 2025-09-01 22:37:52 +08:00
LinearMouseUnitTests Allow Logitech gesture buttons to preserve click fallback (#1211) 2026-05-30 12:07:50 +08:00
Modules Add F13-F20 function key support to keyboard shortcuts (#1201) 2026-05-18 21:29:23 +08:00
Scripts Add xcstrings LLM translation workflow (#1123) 2026-03-22 18:24:08 +08:00
.gitignore Check if LinearMouse is launched from the Applications folder (#448) 2023-04-23 01:56:41 +08:00
.swift-version Chore: Integrate with SwiftFormat and SwiftLint (#148) 2022-06-15 20:04:23 +08:00
.swiftformat Fix lint (#930) 2025-05-25 13:23:21 +08:00
.swiftlint.yml Fix lint (#930) 2025-05-25 13:23:21 +08:00
ACCESSIBILITY.md Update ACCESSIBILITY.md 2023-07-03 09:32:49 +08:00
CLAUDE.md Add numpad key support in button mapping actions (#957) 2025-07-15 23:21:20 +08:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md 2022-02-18 20:31:31 +08:00
Config.xcconfig Separate bundle identifier for development (#326) 2023-01-28 18:24:15 +08:00
CONTRIBUTING-cn.md Update readme and contributing guide 2023-02-09 12:30:24 +08:00
CONTRIBUTING.md Fix typo 2025-07-01 21:14:13 +08:00
crowdin.yml Update Crowdin configuration file 2025-09-01 21:42:17 +08:00
ExportOptions.plist Switch to a trusted code signing certificate (#140) 2022-06-10 20:02:38 +08:00
LICENSE Happy new year! (#673) 2024-01-03 23:00:31 +08:00
logo.svg Add some shadows on logo 2022-01-29 23:40:08 +08:00
Makefile Skip signing for pull request builds (#1106) 2026-03-20 20:28:11 +08:00
package-lock.json Add xcstrings LLM translation workflow (#1123) 2026-03-22 18:24:08 +08:00
package.json Add xcstrings LLM translation workflow (#1123) 2026-03-22 18:24:08 +08:00
README-cn.md Update readme and contributing guide 2023-02-09 12:30:24 +08:00
README.md Update readme and contributing guide 2023-02-09 12:30:24 +08:00
Signing.xcconfig.tpl Update code signing certificate to a trusted one (#134) 2022-06-08 20:57:56 +08:00


LinearMouse

GitHub release (latest SemVer) Downloads MIT License Crowdin

The mouse and trackpad utility for Mac.

Get started

Please visit https://linearmouse.app.

Contribute

Please read the contributing guide before making a pull request.

Help translate

Please sign up for Crowdin and join our Crowdin project to translate LinearMouse into supported languages. It is recommended to sign in Crowdin using GitHub, so that I can add you as a co-author when I merge the pull request.

If you want to add a new language, please create a new issue and I will be happy to enable that language for you to translate.

I'm not a native English speaker, so if you find any English localization issues, feel free to correct me by creating a pull request.

Sponsors

Please visit https://go.linearmouse.app/donate.

Credits

  • Mac Mouse Fix - The way to modify the pointer speed (sensitivity) is inspired by Mac Mouse Fix.