| Crates.io | redland |
| lib.rs | redland |
| version | 0.1.0 |
| created_at | 2025-09-29 23:46:43.704175+00 |
| updated_at | 2025-09-29 23:46:43.704175+00 |
| description | Wayland screen color temperature adjuster with automatic day/night cycle support |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1860401 |
| size | 111,113 |
A Wayland screen color temperature adjuster with automatic day/night cycle support, written in Rust. Similar to wlsunset and Redshift, but with a modern Rust implementation and optional QML-based system tray UI.
wlr-gamma-control-unstable-v1 support (e.g., Sway, Hyprland, river)# Using cargo directly
cargo build --release
# Or with devenv (if using Nix)
devenv shell -- cargo build --release
The binary will be available at target/release/redland.
Run with automatic location detection (via GeoClue2):
redland
Specify latitude and longitude to skip GeoClue:
redland --lat 45.0 --lon 15.0
Use manual times (HH:MM format) instead of calculated sunrise/sunset:
redland --sunrise 06:30 --sunset 18:00
Adjust the temperature range (default: 4000K night, 6500K day):
redland --low 3000 --high 6500
Set transition duration around sunrise/sunset (default: 1800 seconds):
redland --duration 3600
redland --mode day # Force day mode
redland --mode night # Force night mode
redland --mode auto # Automatic (default)
The included QML-based system tray provides visual mode control:
quickshell -c redland-ui.qml
Features:
Note: Edit redland-ui.qml and update the daemon path to match your installation.
Redland uses a JSON-line protocol over stdin/stdout for UI integration. The daemon is typically spawned by the UI (e.g., redland-ui.qml) and controlled by writing JSONL commands to its stdin and reading responses from stdout.
Get Status:
{"type":"get_status"}
Set Mode:
{"type":"set_mode","mode":"night"}
Valid modes: auto, day, night, sunset
Set Temperature Range:
{"type":"set_temperature","low":3000,"high":6500}
{
"type": "status",
"requested_mode": "auto",
"current_mode": "day",
"automatic_mode": "day",
"current_temp": 6500,
"low_temp": 4000,
"high_temp": 6500,
"location": [45.0, 15.0],
"sun_times": ["06:30", "18:00"]
}
Options:
-o, --output <OUTPUT> Name/description of outputs to target (can repeat)
-t, --low <LOW_TEMP> Low color temperature at night (K) [default: 4000]
-T, --high <HIGH_TEMP> High color temperature at day (K) [default: 6500]
-l, --lat <LATITUDE> Latitude (degrees)
-L, --lon <LONGITUDE> Longitude (degrees)
-S, --sunrise <SUNRISE> Manual sunrise time HH:MM (local)
-s, --sunset <SUNSET> Manual sunset time HH:MM (local)
-d, --duration <DURATION> Transition duration in seconds [default: 1800]
--mode <MODE> Operating mode [default: auto] [possible values: auto, day, night, sunset]
-h, --help Print help
-V, --version Print version
See the source code for license information.