Circadian Display

Circadian Display

Adaptive screen warmth and dimming curves for better evening comfort and sleep.

Mohit Tomar System

Screenshots

Screenshot of Circadian Display Screenshot of Circadian Display Screenshot of Circadian Display Screenshot of Circadian Display Screenshot of Circadian Display Screenshot of Circadian Display Screenshot of Circadian Display Screenshot of Circadian Display

Description

Circadian Display continuously adjusts your screen's warmth and brightness throughout the evening based on customizable curves you define. Unlike standard night light solutions with fixed on/off schedules, Circadian Display provides a smooth, gradual transition tailored to your preferences.

Features:
- Dynamic comfort curves with precise warmth and dimming levels over time
- Dual-engine modes: Native (system-level, Android 10+ with ADB setup) and Overlay (software-based, works on all devices)
- Background scheduler for automatic, hands-free operation
- Privacy-first: completely offline, tracker-free, no data collection
- Open source (Apache 2.0)

What’s new (1.0.4)

- Status bar clock, battery and Wi-Fi icons are no longer invisible on devices using the system dark mode
- Removed the dark flash when the app opens on devices using the system dark mode
- The navigation bar now matches the app's background instead of drawing a dark strip across the bottom

Versions

Version Date Size Requires Android Download
1.0.4 current
bd980f4a7e37dfe8…
2026-10-14 3.4 MB API 26
1.0.3
70957b9f2ee1e830…
2026-10-07 3.4 MB API 26
1.0.2
9dfc59a50b697f6b…
2026-09-20 3.4 MB API 26

Permissions

What the app asks the system for. Android only grants sensitive access after you confirm it.

  • Display over other appsDraw content on top of other apps.
  • WRITE_SECURE_SETTINGS
  • Run at startupStart automatically after the device is switched on.
  • REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • PACKAGE_USAGE_STATS
  • Prevent sleepingKeep the device from going to sleep.
  • Foreground serviceKeep running in the background, visible in the status bar.
  • app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

Comments