1 | #! perl |
1 | #! perl |
2 | |
2 | |
3 | # this creates a simple digital clock |
3 | =head1 NAME |
4 | |
4 | |
5 | sub on_init { |
5 | digital-clock - display a digital clock overlay |
|
|
6 | |
|
|
7 | =head1 DESCRIPTION |
|
|
8 | |
|
|
9 | Displays a digital clock using the built-in overlay. |
|
|
10 | |
|
|
11 | =cut |
|
|
12 | |
|
|
13 | sub on_start { |
6 | my ($self) = @_; |
14 | my ($self) = @_; |
7 | |
15 | |
8 | $self->{overlay} = $self->overlay (-1, 0, 8, 1, urxvt::OVERLAY_RSTYLE, 0); |
16 | $self->{overlay} = $self->overlay (-1, 0, 8, 1, urxvt::OVERLAY_RSTYLE, 0); |
9 | $self->{timer} = urxvt::timer |
17 | $self->{timer} = urxvt::timer |
10 | ->new |
18 | ->new |
11 | ->start (int urxvt::NOW) # make sure we update "on" the second |
19 | ->start (1 + int urxvt::NOW) # make sure we update "on" the second |
12 | ->interval (1) |
20 | ->interval (1) |
13 | ->cb (sub { |
21 | ->cb (sub { |
14 | $self->{overlay}->set (0, 0, |
22 | $self->{overlay}->set (0, 0, |
15 | sprintf "%2d:%02d:%02d", (localtime urxvt::NOW)[2,1,0]); |
23 | sprintf "%2d:%02d:%02d", (localtime urxvt::NOW)[2,1,0]); |
16 | }); |
24 | }); |