Skip to content

Add configurable click geometry options#78

Draft
jamesmontemagno wants to merge 1 commit into
aurorascharff:mainfrom
jamesmontemagno:geometry-for-clicks
Draft

Add configurable click geometry options#78
jamesmontemagno wants to merge 1 commit into
aurorascharff:mainfrom
jamesmontemagno:geometry-for-clicks

Conversation

@jamesmontemagno

Copy link
Copy Markdown
Contributor

Summary

Concept for more customization of the click events. Let me know thoughts.

This pull request introduces customizable geometry shapes for mouse click pulses, allowing users to select different shapes for each click type (left, right, middle, and drag) in the ClickLight app. The changes span the settings model, UI, and rendering logic to support and display these new customization options.

Geometry Shape Customization

  • Added new properties to ClickSettings and ClickProfileSettings for the shape of each click type, with sensible defaults for each (e.g., ring for left click, cross for right click, diamond for middle click, dot for drag). [1] [2] [3]
  • Implemented a geometryShape(for:) method in ClickSettings to retrieve the appropriate shape for each click kind, and a resetGeometryToDefaults() method to restore default shapes. [1] [2]

Settings UI Enhancements

  • Extended the settings UI (ClickLightSettingsView) with a new "Geometry" section, allowing users to pick a shape for each click type via a picker, and added a "Reset Geometry" button.
  • Added supporting UI helpers for geometry shape binding and row rendering.

Rendering Logic Updates

  • Updated the overlay rendering (ClickOverlayView) to use the selected geometry shape for each click pulse, replacing hardcoded shape drawing calls with a new drawShape method. [1] [2] [3] [4] [5] [6] [7]
  • Implemented new drawing methods for additional shapes: square, triangle, hexagon, and capsule, expanding the available shape options. [1] [2]

Profile Persistence

  • Ensured that geometry shape selections are saved to and restored from profiles by updating the relevant encode/decode and copy logic in ClickProfileSettings. [1] [2]

These changes collectively provide users with flexible visual customization for click feedback, improving both accessibility and personalization.

Test Plan

  • Built locally with ./build-app.sh
  • Manually tested the changed behavior

Checklist

  • I updated documentation if user-visible behavior changed
  • I included a screenshot or recording for visible UI changes, if relevant
  • I did not include credentials, private keys, generated app bundles, or local system files
TinyClips.2026-06-09.at.23.36.32.mp4

@vercel

vercel Bot commented Jun 10, 2026

Copy link
Copy Markdown

@jamesmontemagno is attempting to deploy a commit to the Aurora Scharff's projects Team on Vercel.

A member of the Team first needs to authorize it.

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.

1 participant