diff options
author | dakkar <dakkar@thenautilus.net> | 2025-03-24 17:24:55 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2025-03-24 17:24:55 +0000 |
commit | 0a756013c0af38e73e91d08a964e18c1874d7e1d (patch) | |
tree | d1a6ab4303266cf67be5d4ecd883a4f50de898ac | |
parent | restructure, add warning dialog (diff) | |
download | battery-0a756013c0af38e73e91d08a964e18c1874d7e1d.tar.gz battery-0a756013c0af38e73e91d08a964e18c1874d7e1d.tar.bz2 battery-0a756013c0af38e73e91d08a964e18c1874d7e1d.zip |
-rwxr-xr-x | battery | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -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(); |