summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2013-05-07 14:24:26 +0100
committerdakkar <dakkar@thenautilus.net>2013-05-07 14:51:47 +0100
commit94ebd3e47cf5a6bdeb3e1a299eda757a74951282 (patch)
treee629fd9ed543d0b0c2caedb81442cfaac99215d2
parentsimplify styling (diff)
downloadbattery-94ebd3e47cf5a6bdeb3e1a299eda757a74951282.tar.gz
battery-94ebd3e47cf5a6bdeb3e1a299eda757a74951282.tar.bz2
battery-94ebd3e47cf5a6bdeb3e1a299eda757a74951282.zip
move to single file
-rw-r--r--lib/Battery.pm90
-rwxr-xr-x[-rw-r--r--]script/battery73
2 files changed, 69 insertions, 94 deletions
diff --git a/lib/Battery.pm b/lib/Battery.pm
deleted file mode 100644
index 57de267..0000000
--- a/lib/Battery.pm
+++ /dev/null
@@ -1,90 +0,0 @@
-package Battery;
-use strict;
-use warnings;
-use 5.016;
-use Gtk2;
-
-sub new {
- my ($class)=@_;
-
- my $self = bless {},$class;
-
- my $window = Gtk2::Window->new('toplevel');
- $window->set_accept_focus(0);
- $window->set_decorated(0);
- $window->set_has_frame(0);
- $window->set_skip_pager_hint(1);
- $window->set_skip_taskbar_hint(1);
- $window->set_type_hint('utility');
- $window->set_default_size(300,25);
- $window->set_resizable(1);
- $window->set_name('dakkar-battery');
- $window->set_wmclass('dakkar-battery','dakkar-battery');
-
- $self->{w}=$window;
-
- my $bar = Gtk2::ProgressBar->new();
- $bar->set_orientation('left-to-right');
- $bar->set_name('dakkar-battery-bar');
- $self->{b}=$bar;
-
- $window->add($bar);
-
- $window->signal_connect(delete_event => \&quit);
-
- Glib::Timeout->add(1000,\&update,$self);
-
- return $self;
-}
-
-sub show {
- $_[0]->{w}->show_all;
-}
-
-sub quit {
- Gtk2->main_quit;
-}
-
-sub get_battery_stats {
- open my $fh,'<','/sys/class/power_supply/BAT1/uevent';
- my %ret;
- while (my $line=<$fh>) {
- chomp $line;
- my ($name,$value) = $line =~ m{\A POWER_SUPPLY_(.*?) = (.*) \z}x;
- $ret{lc($name)}=$value;
- }
- return \%ret;
-}
-
-sub _format_time {
- my ($t) = @_;
- my $h=int($t);
- my $m=int(($t-$h)*60);
- return sprintf q{%dh%02d},$h,$m;
-}
-
-sub update {
- my ($self) = @_;
-
- my $bs=get_battery_stats;
- my $e=$bs->{energy_now}/$bs->{energy_full};
- my $txt='';
- if ($bs->{power_now}) {
- my $t=$bs->{energy_now}/$bs->{power_now};
- my $tot=$bs->{energy_full}/$bs->{power_now};
- $txt = sprintf '%s/%s ',
- _format_time($t),
- _format_time($tot);
- $self->{b}->set_fraction($t/$tot);
- }
- else {
- $self->{b}->set_fraction($e);
- }
- $txt .= sprintf '%.0f%%', 100*$e;
-
- $self->{b}->set_text($txt);
-
- return 1;
-}
-
-1;
diff --git a/script/battery b/script/battery
index cddea55..2348d6a 100644..100755
--- a/script/battery
+++ b/script/battery
@@ -1,10 +1,75 @@
-#!/usr/bin/env perl
+#!/home/dakkar/perl5/perlbrew/perls/perl-5.16.3/bin/perl
use strict;
use warnings;
use 5.016;
use Gtk2 -init;
-use Battery;
-my $w=Battery->new();
-$w->show;
+my $window = Gtk2::Window->new('toplevel');
+$window->set_accept_focus(0);
+$window->set_decorated(0);
+$window->set_has_frame(0);
+$window->set_skip_pager_hint(1);
+$window->set_skip_taskbar_hint(1);
+$window->set_type_hint('utility');
+$window->set_default_size(300,25);
+$window->set_resizable(1);
+$window->set_name('dakkar-battery');
+$window->set_wmclass('dakkar-battery','dakkar-battery');
+
+my $bar = Gtk2::ProgressBar->new();
+$bar->set_orientation('left-to-right');
+$bar->set_name('dakkar-battery-bar');
+
+$window->add($bar);
+
+$window->signal_connect(delete_event => \&quit);
+
+Glib::Timeout->add(1000,\&update);
+
+sub quit {
+ Gtk2->main_quit;
+}
+
+sub get_battery_stats {
+ open my $fh,'<','/sys/class/power_supply/BAT1/uevent';
+ my %ret;
+ while (my $line=<$fh>) {
+ chomp $line;
+ my ($name,$value) = $line =~ m{\A POWER_SUPPLY_(.*?) = (.*) \z}x;
+ $ret{lc($name)}=$value;
+ }
+ return \%ret;
+}
+
+sub _format_time {
+ my ($t) = @_;
+ my $h=int($t);
+ my $m=int(($t-$h)*60);
+ return sprintf q{%dh%02d},$h,$m;
+}
+
+sub update {
+ my $bs=get_battery_stats;
+ my $e=$bs->{energy_now}/$bs->{energy_full};
+ my $txt='';
+ if ($bs->{power_now}) {
+ my $t=$bs->{energy_now}/$bs->{power_now};
+ my $tot=$bs->{energy_full}/$bs->{power_now};
+ $txt = sprintf '%s/%s ',
+ _format_time($t),
+ _format_time($tot);
+ $bar->set_fraction($t/$tot);
+ }
+ else {
+ $bar->set_fraction($e);
+ }
+ $txt .= sprintf '%.0f%%', 100*$e;
+
+ $bar->set_text($txt);
+
+ return 1;
+}
+
+$window->show_all;
+
Gtk2->main;