mirror of
https://github.com/keycastr/keycastr.git
synced 2026-05-15 14:15:50 -06:00
[PR #344] Add customizable mouse-click effects with new "Mouse" preferences tab #343
Labels
No labels
bug
compatibility
discussion
documentation
enhancement
help wanted
help wanted
investigation needed
pull-request
release
visualizer
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/keycastr#343
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/keycastr/keycastr/pull/344
Author: @prossm
Created: 4/27/2026
Status: 🔄 Open
Base:
main← Head:custom-click📝 Commits (1)
40399ccAdd customizable mouse-click effects with new "Mouse" preferences tab📊 Changes
6 files changed (+648 additions, -85 deletions)
View changed files
📝
keycastr/KCAppController.h(+5 -0)📝
keycastr/KCAppController.m(+13 -0)📝
keycastr/KCMouseEventVisualizer.h(+13 -1)📝
keycastr/KCMouseEventVisualizer.m(+346 -82)📝
keycastr/KCPrefsWindowController.h(+4 -0)📝
keycastr/KCPrefsWindowController.m(+267 -2)📄 Description
Hi! KeyCastr user here, first contribution. I built this for my own use and figured I'd offer it upstream. Feel free to incorporate it, or not as you see fit. Full transparency: I did use a coding agent for the work, but it's fully functional.
What this adds
A new "Mouse" preferences tab with four mouse-click visual effects (Halo, Blur, Halo + Blur, Droplet) and per-effect customization for color, density, diameter, and duration. The original Halo behavior is preserved as the default, just with its color decoupled from the keystroke bezel color.
Demo: https://www.loom.com/share/1a43df69bfbf4ce09d79115e62cc0696
Design notes worth flagging for review
mouse.*keys; the existingdefault.bezelColoris no longer read by the mouse visualizer (its color is nowmouse.effectColor1). I didn't add a migration — fresh installs get the new opaque defaults, existing users keep their bezel color for keystrokes and pick a new mouse color on first visit.MainMenu.nibso the binary nib stays untouched. Easier to review as text; downside is it's not editable in Interface Builder.KCMouseEventVisualizerTestsstill pass.Commit
Full technical breakdown is in the single commit message — file-by-file walkthrough of methods touched, KVO wiring, droplet anchor-point fix, etc. Worth reading before reviewing the diff.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.