trailblazer: update command script to send status, too
This commit is contained in:
parent
24cf33066e
commit
c9438566c8
1 changed files with 48 additions and 1 deletions
|
@ -65,7 +65,36 @@ let
|
||||||
|
|
||||||
print("[I] Everything should be... well, not-shiny, captain!")
|
print("[I] Everything should be... well, not-shiny, captain!")
|
||||||
|
|
||||||
if verb == "lights/ledsoff":
|
elif verb == "monitors/off":
|
||||||
|
print("[I] Got a 'monitors off' request. Adding DPMS nulls.")
|
||||||
|
|
||||||
|
# Turn off monitors for any X11 anything.
|
||||||
|
for auth in g`/tmp/xauth_*`:
|
||||||
|
print(f"[I] Turning off monitors on X instance with auth file {auth}.")
|
||||||
|
!(env DISPLAY=:0 XAUTHORITY=@(auth) xset dpms force off)
|
||||||
|
|
||||||
|
# Turn off monitors on each niri session,
|
||||||
|
sockets = g`/var/run/user/1000/niri*.sock`
|
||||||
|
for socket in sockets:
|
||||||
|
print(f"[I] Turning off monitors on niri instance {socket}.")
|
||||||
|
!(env NIRI_SOCKET=@(socket) niri msg action power-off-monitors)
|
||||||
|
|
||||||
|
|
||||||
|
elif verb == "monitors/on":
|
||||||
|
print("[I] Got a 'monitors on' request. Removing DPMS nulls.")
|
||||||
|
|
||||||
|
# Turn off monitors for any X11 anything.
|
||||||
|
for auth in g`/tmp/xauth_*`:
|
||||||
|
print(f"[I] Turning on monitors on X instance with auth file {auth}.")
|
||||||
|
!(env DISPLAY=:0 XAUTHORITY=@(auth) xset dpms force on)
|
||||||
|
|
||||||
|
# Turn off monitors on each niri session,
|
||||||
|
sockets = g`/var/run/user/1000/niri*.sock`
|
||||||
|
for socket in sockets:
|
||||||
|
print(f"[I] Turning on monitors on niri instance {socket}.")
|
||||||
|
!(env NIRI_SOCKET=@(socket) niri msg action power-on-monitors)
|
||||||
|
|
||||||
|
elif verb == "lights/ledsoff":
|
||||||
print("[I] Turning off RGB leds.")
|
print("[I] Turning off RGB leds.")
|
||||||
!(${ledOffScript}/bin/ledsoff)
|
!(${ledOffScript}/bin/ledsoff)
|
||||||
|
|
||||||
|
@ -102,6 +131,14 @@ let
|
||||||
|
|
||||||
print("----------------------------")
|
print("----------------------------")
|
||||||
'';
|
'';
|
||||||
|
statusScript = pkgs.writeScriptBin "trailblazer-status-daemon" ''
|
||||||
|
#!${pkgs.xonsh}/bin/xonsh
|
||||||
|
|
||||||
|
print("[I] Trailblazer status service started. Updating every 10s.")
|
||||||
|
while True:
|
||||||
|
sleep 10
|
||||||
|
mosquitto_pub -h mitsuru -t trailblazer/monitors/status -m $(cat /sys/class/drm/card1-HDMI-A-1/dpms)
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
|
@ -221,6 +258,16 @@ in
|
||||||
|
|
||||||
script = "${commandScript}/bin/trailblazer-command-daemon";
|
script = "${commandScript}/bin/trailblazer-command-daemon";
|
||||||
};
|
};
|
||||||
|
systemd.services.trailblazer-status = {
|
||||||
|
description = "trailblazer status service";
|
||||||
|
|
||||||
|
# Start once we're online.
|
||||||
|
wantedBy = [ "default.target" ];
|
||||||
|
wants = [ "network-online.target" ];
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
|
||||||
|
script = "${statusScript}/bin/trailblazer-status-daemon";
|
||||||
|
};
|
||||||
|
|
||||||
#
|
#
|
||||||
# Let trailblazer share its GPS with the house devices.
|
# Let trailblazer share its GPS with the house devices.
|
||||||
|
|
Loading…
Add table
Reference in a new issue