Same treatment as Stay Awake: the indicator polled the toggle CLI over a Process with a timer to paper over the race after clicking, and the CLI ended by asking the shell to refresh every indicator over IPC. A new omarchy.nightlight service owns hyprsunset instead - it probes the temperature on startup, applies changes itself for in-shell toggles, and answers on the nightlight IPC target. The indicator becomes a plain binding. The CLI still drives hyprctl directly so keybindings, the menu, and ssh work without the shell, but now just nudges the service to re-probe since hyprsunset has no state file to watch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
21 lines
488 B
QML
21 lines
488 B
QML
import QtQuick
|
|
import qs.Ui
|
|
|
|
BarIndicator {
|
|
id: root
|
|
|
|
readonly property var nightlightService: bar?.shell?.firstPartyServiceFor("omarchy.nightlight")
|
|
|
|
active: nightlightService ? nightlightService.enabled : false
|
|
activeText: ""
|
|
inactiveText: ""
|
|
activeTooltipText: "Day Light"
|
|
inactiveTooltipText: "Night Light"
|
|
|
|
function toggle() {
|
|
if (root.nightlightService) root.nightlightService.setNightlight(!root.active)
|
|
}
|
|
|
|
onPressed: function() { root.toggle() }
|
|
}
|