github didriksg/Crisp v1.4.1
Crisp v1.4.1

latest releases: v1.6.0, v1.5.0
one month ago

1.4.1 is a small bug-fix and performance release on top of 1.4.0. If you're coming from 1.3.x, see the 1.4.0 notes for Extra Brightness, monitor speaker volume, and macOS 14 (Sonoma) support.

Fixed in 1.4.1

  • Color temperature and image adjustments now stay with the display you set them on. macOS can reassign display IDs across reboots and reconnects, so on dual-external setups a saved tint could land on the wrong monitor after a restart. Crisp now keys these by each display's stable identity, the same one already used for brightness-key selection. (#38)
  • The default refresh rate now reads as 60 Hz instead of "-- Hz". macOS reports 0 for a panel's default timing, and Crisp was showing that literally, which looked broken next to real rates in the resolution slider and refresh-rate list. (#35)
  • Variable refresh rate displays no longer show confusing duplicate Hz rows. On a VRR external, macOS lists a fixed and a variable entry for each rate; Crisp now labels the variable one "Variable (up to N Hz)", hides the redundant twins, and matches System Settings. Non-VRR panels are unchanged. (#41)
  • A disconnected display's brightness, software-dimming, and gamma state is now cleared. Display IDs get reused, so a stale value could silently apply to whatever display inherited the ID next.
  • Localization fixes: several strings weren't picking up their translations because they were built by interpolation (the brightness control-mode label, and the VoiceOver labels for display state and selected modes), and a few Simplified Chinese strings were missing. All now resolve correctly. Corrections from native speakers are always welcome as a PR. (#34)

Performance

  • Lower idle power use. The panel's animation timer no longer runs while the panel is closed (it was firing every screen refresh for the whole session), external-display polling happens only while the panel is open, and blind sleeps during display reconfiguration were replaced with event-driven waits. Connect/disconnect storms now trigger a single brightness-boost reapply instead of one per event. (#50)

Contributors

  • @xiangfeidexiaohuo: localization interpolation fixes and the missing Simplified Chinese strings (#34)
  • @YuriNachos: default refresh rate now renders as 60 Hz (#35), plus display-mode geometry edge-case tests (#36)

Supporting Crisp

Crisp is free and always will be. The nicest thank-you costs nothing: star the repo or tell a friend. If you'd like to help cover the $99/year Apple fee that keeps every build signed and notarized, there's GitHub Sponsors, Ko-fi, or Afdian (爱发电).

Don't miss a new Crisp release

NewReleases is sending notifications on new releases.