whatisgithub

What is sunreactor?

arcanorca/sunreactor — explained in plain English

Analysis updated 2026-05-18

17RustAudience · developerComplexity · 3/5Setup · moderate

In one sentence

A Rust background tool that auto-adjusts monitor brightness to match the sun's position in the sky.

Mindmap

mindmap
  root((SunReactor))
    What it does
      Sun based brightness
      Multi monitor curves
      Weather adjustment
    Tech stack
      Rust
      Ratatui TUI
      systemd user service
    Use cases
      Auto dim at sunset
      Per monitor tuning
      Idle screen dimming
    Audience
      Linux users
      Terminal users
      Multi monitor setups

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Automatically dim and brighten your monitors as sunrise and sunset shift with the seasons.

USE CASE 2

Set different brightness curves for a laptop screen versus an external monitor.

USE CASE 3

Slightly dim your displays on cloudy days using live weather data.

USE CASE 4

Replace manual brightness adjustments with a hands off background daemon on Linux.

What is it built with?

RustRatatuisystemdddcutilbrightnessctl

How does it compare?

arcanorca/sunreactoracoyfellow/t2tatelico/gdstyle
Stars171717
LanguageRustRustRust
Last pushed2026-07-17
MaintenanceActive
Setup difficultymoderatemoderateeasy
Complexity3/53/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires ddcutil and/or brightnessctl installed and a systemd user service to be enabled.

The README does not state license terms.

So what is it?

SunReactor is a small background program, written in Rust, that automatically adjusts your monitor brightness throughout the day. Instead of using a fixed schedule like dimming the screen at 8 PM every night, it calculates the sun's position in the sky based on your city's location and the current date. As the sun rises and sets, your screen brightness smoothly follows along, so it stays in sync even as daylight hours shift with the seasons. If you connect more than one monitor, SunReactor treats each one separately. A laptop screen and an external monitor do not look the same at the same brightness percentage, so you can set different minimum, maximum, and curve settings for each display. You can also give it a free OpenWeather API key, and it will slightly dim your screens on cloudy days using real weather data, on top of the base sun calculation. Under the hood, SunReactor runs as a simple background service on Linux, controlling your screen through existing tools like ddcutil for external monitors and brightnessctl for laptop panels. It does not need administrator or root access, and it runs quietly without an internet connection except for the optional weather feature. It also has its own screen dimming for when your computer sits idle, so you can turn off your desktop's built in power management to avoid conflicts. You interact with SunReactor through a terminal based interface (a TUI), not a graphical app. From there you can pick your city, tune the brightness curve for each monitor, and check current weather conditions. Setup uses an installer script that downloads a pre built version for Linux, checks it before installing, and can be reversed with an uninstall command. You can also build it yourself from source if you have Rust installed. This tool is aimed at Linux users who want their screen brightness to feel more natural across the day without manually adjusting it, particularly people who already use a terminal regularly.

Copy-paste prompts

Prompt 1
Help me install ddcutil and brightnessctl so SunReactor can control my monitor brightness.
Prompt 2
Walk me through setting up SunReactor's systemd user service on my Linux distro.
Prompt 3
Explain how SunReactor's gamma curve setting changes how brightness ramps up and down.
Prompt 4
Show me how to configure separate brightness limits for two different monitors in SunReactor.

Frequently asked questions

What is sunreactor?

A Rust background tool that auto-adjusts monitor brightness to match the sun's position in the sky.

What language is sunreactor written in?

Mainly Rust. The stack also includes Rust, Ratatui, systemd.

What license does sunreactor use?

The README does not state license terms.

How hard is sunreactor to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is sunreactor for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.