Night light does not survive re-login on BOS: persisted via a hyprlang source line in hyprland.conf, but BOS loads hyprland.lua #29

Closed
opened 2026-10-01 22:20:42 +08:00 by Breadway · 0 comments
Owner

How I found it

Nested session, Displays > Night light toggled on. The app wrote hypr/nightlight.conf containing exec-once = hyprsunset and appended source = ~/.config/hypr/nightlight.conf to hypr/hyprland.conf (src/src/commands/nightlight.rs write_autostart, util::ensure_hypr_source).

Confidence

High. Observed the written files; BOS's session config is hyprland.lua (its header says hyprlang is deprecated) and it never sources hyprland.conf.

Explanation

On login hyprsunset is not started, so night light is off even though nightlight.toml says enabled. Even if it were started, the fragment launches bare hyprsunset with no temperature, so the saved warmth would not be restored. get_nightlight reports enabled = persist.enabled && running, so the toggle shows off after login and the user's setting appears to have been forgotten.

Expected: persist through the Lua autostart path (autostart.json or a Lua hook) with the saved temperature, e.g. hyprsunset -t 3500.

Related UX (same page): no schedule (sunset/sunrise or custom hours) although the copy says "after dark". The Warmth slider is filed separately.

## How I found it Nested session, Displays > Night light toggled on. The app wrote `hypr/nightlight.conf` containing `exec-once = hyprsunset` and appended `source = ~/.config/hypr/nightlight.conf` to `hypr/hyprland.conf` (`src/src/commands/nightlight.rs` `write_autostart`, `util::ensure_hypr_source`). ## Confidence High. Observed the written files; BOS's session config is `hyprland.lua` (its header says hyprlang is deprecated) and it never sources `hyprland.conf`. ## Explanation On login hyprsunset is not started, so night light is off even though `nightlight.toml` says enabled. Even if it were started, the fragment launches bare `hyprsunset` with no temperature, so the saved warmth would not be restored. `get_nightlight` reports `enabled = persist.enabled && running`, so the toggle shows off after login and the user's setting appears to have been forgotten. Expected: persist through the Lua autostart path (`autostart.json` or a Lua hook) with the saved temperature, e.g. `hyprsunset -t 3500`. Related UX (same page): no schedule (sunset/sunrise or custom hours) although the copy says "after dark". The Warmth slider is filed separately.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/bos-settings#29
No description provided.