What's new
- In-house Wake-on-LAN: WoL is now sent by a small stdlib-python script (
scripts/lgpc-wol.py) instead of the externalwoltool — one less dependency, and it fails cleanly on a malformedLGTV_MACinstead of crashing. - More reliable suspend/resume monitor: the screen-off escalation timer now tracks wall-clock time instead of counting loop iterations, and detects suspend via clock jumps so time spent asleep doesn't count toward escalation.
- Sturdier notify service: conf and
kreadconfig6values are now validated before use (badOFF_WARNING_SECONDSused to crash-loop the service), and the notification id file no longer uses a predictable path under world-writable/tmp. - Faster, more accurate install check: the installer now probes the TV over TCP/3001 (the actual WebOS API port) instead of ping, which can be blocked on some networks.
- Simpler installer: dropped per-package-manager detection in favor of requiring
python3directly, which ships on virtually every distro already. - CI now runs shellcheck and
bash -non every push.
Updating
sudo /opt/lgpowercontrol/update.shSettings and TV pairing survive the update.