summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2025-03-24 17:24:55 +0000
committerdakkar <dakkar@thenautilus.net>2025-03-24 17:24:55 +0000
commit0a756013c0af38e73e91d08a964e18c1874d7e1d (patch)
treed1a6ab4303266cf67be5d4ecd883a4f50de898ac
parentrestructure, add warning dialog (diff)
downloadbattery-master.tar.gz
battery-master.tar.bz2
battery-master.zip
more portableHEADmaster
-rwxr-xr-xbattery12
1 files changed, 7 insertions, 5 deletions
diff --git a/battery b/battery
index 5aa12d4..9215afe 100755
--- a/battery
+++ b/battery
@@ -6,6 +6,8 @@ use lib '/home/dakkar/.perlbrew/libs/perl-5.40.0/lib/perl5';
use Gtk2 -init;
class BatteryStats {
+ field $device :param //= 'BAT0';
+
field $now :reader;
field $full :reader;
field $deriv :reader;
@@ -15,8 +17,8 @@ class BatteryStats {
field $time_now :reader;
field $time_full :reader;
- sub get_battery_stats {
- open my $fh,'<','/sys/class/power_supply/BAT1/uevent';
+ sub get_battery_stats($device) {
+ open my $fh,'<',"/sys/class/power_supply/$device/uevent";
my %ret;
while (my $line=<$fh>) {
chomp $line;
@@ -28,7 +30,7 @@ class BatteryStats {
}
ADJUST {
- my $bs = get_battery_stats();
+ my $bs = get_battery_stats($device);
$now = $bs->{energy_now} // $bs->{charge_now};
$full = $bs->{energy_full} // $bs->{charge_full};
$deriv = $bs->{power_now} // $bs->{current_now};
@@ -81,7 +83,7 @@ class MainWindow {
my $time_estimate='';
my $percentage=sprintf '%.0f%%', 100*$bs->fraction;
- if ($bs->deriv && !$bs->charging) {
+ if ($bs->deriv && !$bs->charging && !$bs->is_full) {
$time_estimate = sprintf "%s/%s",
_format_time($bs->time_now),
_format_time($bs->time_full);
@@ -150,7 +152,7 @@ my $warning = WarningWindow->new(parent=>$main_window->window);
Glib::Timeout->add(
1000, sub {
- my $bs = BatteryStats->new();
+ my $bs = BatteryStats->new( device => $ENV{BATTERY_DEVICE} );
if (!$bs->charging && !$bs->is_full && $bs->fraction < 0.05) {
$warning->show();