App-wmiirc
view release on metacpan or search on metacpan
lib/App/wmiirc/Battery.pm view on Meta::CPAN
);
sub BUILD {
my($self) = @_;
$self->battery((grep $config{default} eq $_, $self->_list_bat)[0]
|| ($self->list_bat)[0]);
$self->fade_start_color('#ffffff #aa2222 #ff44cc');
$self->fade_end_color('#ffffff #999922 #ff4444');
my $timer = IO::Async::Timer::Countdown->new(
delay => 30,
on_expire => sub {
my($timer) = @_;
$self->render;
$timer->start;
},
);
$self->render;
$self->core->loop->add($timer);
$timer->start;
}
sub render {
my($self) = @_;
state $previous_power = $self->_bat("power_now");
# Take the mean of this and the previous power level, to hopefully give a
# better estimate.
my $power_now = ($self->_bat("power_now") + $previous_power) / 2;
$previous_power = $self->_bat("power_now");
lib/App/wmiirc/Clock.pm view on Meta::CPAN
split /,\s*/, config("clock",
extra_tz => "America/Los_Angeles, America/New_York, Europe/Paris")
]}
);
has current_tz => (
is => 'rw',
default => sub { -1 }
);
has _timer => (
is => 'rw'
);
with 'App::wmiirc::Role::Widget';
sub BUILD {
my($self) = @_;
$self->render;
}
lib/App/wmiirc/Clock.pm view on Meta::CPAN
if($self->current_tz == -1) {
($text, $next) = _format($self->format, localtime);
} else {
local $ENV{TZ} = $self->extra_tz->[$self->current_tz];
($text, $next) = _format($self->format_other_tz, localtime);
$color = $self->core->main_config->{focuscolors};
}
$self->label($text, $color);
$self->core->loop->add($self->_timer(IO::Async::Timer::Absolute->new(
time => $next,
on_expire => sub {
my($timer) = @_;
$self->render unless $self->_timer != $timer;
}
)));
}
sub _format {
my($format, @args) = @_;
# Not sure it's worth going to these lengths to maybe save some wakeups, but
# why not...
my $next = $format =~ /%[^\w]?[EO]?[sSTr]/
? time + 1 : 60 * int(time / 60) + 60;
lib/App/wmiirc/Loadavg.pm view on Meta::CPAN
config('loadavg', 'show', 'one') eq 'all';
}
);
with 'App::wmiirc::Role::Widget';
#with 'App::wmiirc::Role::Fade';
sub BUILD {
my($self) = @_;
my $timer = IO::Async::Timer::Countdown->new(
delay => 10,
on_expire => sub {
my($timer) = @_;
$self->render;
$timer->start;
}
);
$timer->start;
$self->core->loop->add($timer);
$self->render;
}
sub render {
my($self) = @_;
$self->label(join " ", (Unix::Uptime->load)[0 .. $self->{_show_all} && 2]);
}
sub widget_click {
my($self, $button) = @_;
lib/App/wmiirc/Msg.pm view on Meta::CPAN
$App::wmiirc::Msg::VERSION = '1.000';
}
use App::wmiirc::Plugin;
use IO::Async::Timer::Countdown;
has name => (
is => 'ro',
default => sub { '!notice' }
);
has _timer => (
is => 'rw',
);
with 'App::wmiirc::Role::Widget';
with 'App::wmiirc::Role::Fade';
sub event_msg {
my($self, @msg) = @_;
my $msg = "@msg";
$msg =~ s/\n//g;
my $timer = IO::Async::Timer::Countdown->new(
delay => .3,
on_expire => sub {
my $timer = shift;
if(!defined $self->_timer || $self->_timer != $timer) {
# Cancelled
$self->core->loop->remove($timer);
return;
}
$self->label($msg, $self->fade_current_color);
if($self->fade_next) {
$timer->start
} else {
$self->_timer(undef);
$self->core->loop->remove($timer);
}
}
);
$timer->start;
$self->core->loop->add($timer);
$self->_timer($timer);
$self->fade_set(0);
$self->label($msg, $self->fade_current_color);
}
# Lower priority notification, don't interrupt an active msg.
sub event_notice {
my($self, @msg) = @_;
my $msg = "@msg";
$msg =~ s/\n//g;
if(!$self->_timer) {
$self->label($msg);
}
}
sub widget_click {
my($self, $button) = @_;
$self->label(" ");
$self->_timer(undef);
}
1;
__END__
=pod
=head1 NAME
App::wmiirc::Msg
lib/App/wmiirc/Volume.pm view on Meta::CPAN
default => sub {
config("volume", "device", "Master")
}
);
with 'App::wmiirc::Role::Key';
with 'App::wmiirc::Role::Widget';
sub BUILD {
my($self) = @_;
my $timer = IO::Async::Timer::Countdown->new(
delay => 10,
on_expire => sub {
my($timer) = @_;
$self->render;
$timer->start;
}
);
$timer->start;
$self->core->loop->add($timer);
$self->render;
}
sub render {
my($self) = @_;
my $vol = `amixer get $self->{device},0`;
$self->volume(($vol =~ /\[(off)\]/)[0] || $vol =~ /\[(\d+)%\]/);
$self->label($self->volume . ($self->volume =~ /\d/ && '%'));
( run in 1.021 second using v1.01-cache-2.11-cpan-49f99fa48dc )