Skip to content

⚡ Cache system keybinds when processing keypresses#930

Merged
mrkai77 merged 5 commits into
developfrom
925-huge-mouse-input-latency-spikes-when-keyboard-keys-are-pressed
Dec 22, 2025
Merged

⚡ Cache system keybinds when processing keypresses#930
mrkai77 merged 5 commits into
developfrom
925-huge-mouse-input-latency-spikes-when-keyboard-keys-are-pressed

Conversation

@mrkai77
Copy link
Copy Markdown
Owner

@mrkai77 mrkai77 commented Dec 22, 2025

Significantly improves performance by treating system keybind fetching as a cached operation rather than repeated lookups. System keybinds are now returned as a Set for O(1) lookup time when checking if pressed keys match a system keybind.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR optimizes the performance of keypress processing by caching system keybinds and changing the lookup from O(n) to O(1). The implementation changes the return type of systemKeybinds from an array to a set of sets for constant-time lookups, and introduces a cache that's populated once at startup rather than queried repeatedly.

Key Changes:

  • Changed systemKeybinds return type from [Set<CGKeyCode>] to Set<Set<CGKeyCode>> for O(1) lookups
  • Added caching of system keybinds in KeybindTrigger to avoid repeated system API calls
  • Minor optimization to compute isLoopOpen once per event instead of multiple times

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
Loop/Extensions/CGKeyCode+Extensions.swift Modified systemKeybinds to return a Set instead of Array for O(1) lookup performance
Loop/Core/Observers/KeybindTrigger.swift Added caching mechanism for system keybinds and optimized isLoopOpen computation to reduce redundant function calls

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Loop/Core/Observers/KeybindTrigger.swift Outdated
@mrkai77 mrkai77 force-pushed the 925-huge-mouse-input-latency-spikes-when-keyboard-keys-are-pressed branch from 33af218 to 910879d Compare December 22, 2025 21:52
@mrkai77 mrkai77 merged commit 100b8b5 into develop Dec 22, 2025
1 check passed
@mrkai77 mrkai77 deleted the 925-huge-mouse-input-latency-spikes-when-keyboard-keys-are-pressed branch December 22, 2025 22:00
@mrkai77 mrkai77 linked an issue Dec 27, 2025 that may be closed by this pull request
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🐞 Huge mouse input latency spikes when keyboard keys are pressed!

2 participants