This commit is contained in:
Kopatz
2025-11-01 21:24:07 +01:00
parent e1bbfb4b78
commit 7f2ec92017
7 changed files with 62 additions and 50 deletions

View File

@@ -0,0 +1,38 @@
{ pkgs, lib, ... }:
let
cec = "${pkgs.v4l-utils}/bin/cec-ctl";
tvOn = pkgs.writeShellScriptBin "tvOn" ''
if [ $(${cec} -A | ${pkgs.gnugrep}/bin/grep cec0 | ${pkgs.coreutils}/bin/wc -l) -gt 0 ]; then
${cec} --tv --skip-info
${cec} --skip-info --user-control-pressed ui-cmd=power-on-function --to TV
echo "Turning TV on!"
fi
'';
tvOff = pkgs.writeShellScriptBin "tvOff" ''
if [ $(${cec} -A | ${pkgs.gnugrep}/bin/grep cec0 | ${pkgs.coreutils}/bin/wc -l) -gt 0 ]; then
${cec} --tv --skip-info
${cec} --skip-info --user-control-pressed ui-cmd=power-on-function --to TV
echo "Turning TV on!"
fi
'';
in
{
environment.systemPackages = with pkgs; [
tvOff
tvOn
];
# after suspend, do `cec-ctl -A | grep cec0 | wc -l`, if >0, do `cec-ctl --standby --to TV`
# similar on wakeup, if present send `cec-ctl --user-control-pressed ui-cmd=power-on-function --to TV`
environment.etc."systemd/system-sleep/sleep-turn-tv-off-on.sh".source =
pkgs.writeShellScript "post-sleep-turn-tv-off.sh" ''
case $1/$2 in
pre/*)
${tvOff}
;;
post/*)
${tvOn}
;;
esac
'';
}