Omahub
← All plugins
K

Night Light

by Kenny Keeton

f.lux-style color temperature: slider, sunrise/sunset schedule, presets, and pause.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
482fe13
Scanned
3 weeks ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
482fe13
Reviewed
3 weeks ago

The plugin is a straightforward night-light color temperature controller that interacts with hyprsunset and reads/writes local settings files. It performs a network geocoding request only when location coordinates are missing, which is a benign and documented behavior. No malicious or obfuscated code was found.

  • The plugin reads and writes user settings in ~/.local/state/omarchy/settings/, which is expected for persistence.
  • It makes an external HTTP request to Open-Meteo for geocoding when coordinates are absent; this is a privacy consideration but not a security risk.
  • It invokes hyprctl and hyprsunset to control display temperature, which is the intended functionality.
How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/key-tone/omarchy-nightlight --enable
Desktop #Hyprland #bar #quickshell

Night Light

f.lux-style screen color temperature for Omarchy on Hyprland.

A moon icon in the bar opens a panel with a Kelvin slider, an automatic sunrise/sunset schedule, warmth presets, and pause controls. The compositor backend is hyprsunset.

Night Light panel with auto schedule, temperature slider, and presets

Enabling this plugin replaces Omarchy’s built-in night-light toggle (4000K / 6500K) with the scheduler and panel.

Install

omarchy plugin add https://github.com/key-tone/omarchy-nightlight.git --enable

The widget lands in the center of the bar. Move it with:

omarchy bar move kenny.nightlight --section right

Hyprland’s hyprsunset must be installed (Omarchy ships it). The plugin starts it if it is not already running.

Update

omarchy plugin update kenny.nightlight

Remove

omarchy plugin remove kenny.nightlight

That restores the built-in night-light service.

Controls

Input Action
Left click moon Open or close the panel
Right click moon Toggle night / day (switches to manual)
Slider Set Kelvin live (1000–6500) and switch to manual
Auto schedule Follow local sunrise and sunset
Day / Evening / Night / Candle Jump to 6500K / 4000K / 3400K / 1900K
Pause 1 hour Hold daylight until then
Until sunrise Hold daylight until morning
j / k Move between panel rows
h / l Nudge the slider or walk presets
a Toggle auto
p Pause one hour
s Pause until sunrise

Location is taken from Omarchy weather (~/.local/state/omarchy/settings/weather.json) and geocoded through Open-Meteo if coordinates are missing. Sunrise and sunset are then computed offline (NOAA algorithm), so the schedule keeps working without the network.

Settings persist in ~/.local/state/omarchy/settings/nightlight.json.

Requirements

  • Omarchy with shell plugins (Quattro)
  • Hyprland + hyprsunset
  • hyprctl, curl, jq (all present on a stock Omarchy install)

CLI

The plugin keeps the existing nightlight IPC target, so Omarchy’s night-light commands still work:

omarchy-shell nightlight status
omarchy-shell nightlight setMode auto
omarchy-shell nightlight setTemperature 3400
omarchy-shell nightlight preset candle
omarchy-shell nightlight pause 3600
omarchy-shell nightlight pause sunrise
omarchy-shell kenny.nightlight toggle    # open the panel

When auto is on, omarchy toggle nightlight is a one-shot; the scheduler reasserts the scheduled temperature on the next tick.

Development

omarchy plugin validate .
node -e '
const M = require("./NightlightModel.js")
const sun = M.sunTimes(31.50239, -89.27895, new Date(2026, 7, 30, 12))
console.log(M.formatMinutes(sun.sunrise), M.formatMinutes(sun.sunset))
'

The shell hot-reloads QML under ~/.config/omarchy/plugins/ on save. The service process is created once per shell lifetime; restart it after Service.qml changes with omarchy restart shell.

License

MIT