From 016b95104745287730a74ed842623bffcda19431 Mon Sep 17 00:00:00 2001 From: devaine Date: Thu, 7 Aug 2025 11:45:47 -0500 Subject: [PATCH] fix + feat: added a new alert system for when battery is close to 0% --- daemons/battery-daemon | Bin 62568 -> 62400 bytes daemons/battery-daemon.cpp | 44 ++++++++++++++++++++++++++----------- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/daemons/battery-daemon b/daemons/battery-daemon index 26dc28f28a655a803372906188f2b1675b064cb9..4d35cb060110addeecdb3584055048d32a2268f7 100755 GIT binary patch delta 16853 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%0A2+i1bX8uApeU_XD?s^Fcp{rd<=LBSP2}ADZ3L` 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 delta 16730 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 #include #include // pid_t data type +#include #include #include #include // For fork(); @@ -35,13 +36,29 @@ void createLockFile() { void removeLockFile() { remove(lockFilePath); } void send_notifs_empty() { - string command = "notify-send 'Low Battery' 'ALERT! 0% Battery Remaining.' " - "-u critical -i 'battery-caution' -t 5000"; - // If battery is empty... - while (BAT_EMPTY.load() == 1) { - system(command.c_str()); - this_thread::sleep_for(chrono::seconds(5)); + while (true) { + struct timeval tv; + + tv.tv_sec = 0; + tv.tv_usec = 100000; + + ifstream BAT_PERCENT_FILE("/sys/class/power_supply/BAT0/capacity"); + int BAT_PERCENT; + + BAT_PERCENT_FILE >> BAT_PERCENT; + + string command = + "notify-send 'Low Battery' 'ALERT! " + to_string(BAT_PERCENT) + + "% Battery Remaining.' -u critical -i 'battery-caution' -t 5000"; + + // If battery is empty... + if (BAT_EMPTY.load() == 1) { + system(command.c_str()); + this_thread::sleep_for(chrono::seconds(5)); + } else { + select(0, NULL, NULL, NULL, &tv); + } } } @@ -129,7 +146,7 @@ void battery() { OLD_BAT_PERCENT = BAT_PERCENT; } - if (BAT_EMPTY == 1) { + if (BAT_EMPTY.load() == 1) { BAT_EMPTY.store(0); } } @@ -149,7 +166,7 @@ void battery() { } // Change value of BAT_EMPTY (alert notification) - if (BAT_PERCENT == 0 && BAT_EMPTY == 0) { + if (BAT_PERCENT < 10 && BAT_EMPTY.load() == 0) { BAT_EMPTY.store(1); } } @@ -164,9 +181,9 @@ int main() { chdir("/"); // Redirects all streams to /dev/null - freopen("/dev/null", "r", stdin); - freopen("/dev/null", "w", stdout); - freopen("/dev/null", "w", stderr); + // freopen("/dev/null", "r", stdin); + // freopen("/dev/null", "w", stdout); + // freopen("/dev/null", "w", stderr); if (isRunning()) { ifstream lockFile(lockFilePath); @@ -181,9 +198,10 @@ int main() { createLockFile(); - battery(); + thread bg(send_notifs_empty); + bg.detach(); - thread background(send_notifs_empty); + battery(); return 0; }