From 94ebd3e47cf5a6bdeb3e1a299eda757a74951282 Mon Sep 17 00:00:00 2001 From: dakkar Date: Tue, 7 May 2013 14:24:26 +0100 Subject: move to single file --- lib/Battery.pm | 90 ---------------------------------------------------------- script/battery | 73 ++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 69 insertions(+), 94 deletions(-) delete mode 100644 lib/Battery.pm mode change 100644 => 100755 script/battery 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 old mode 100644 new mode 100755 index cddea55..2348d6a --- 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; -- cgit v1.2.3