#!/usr/bin/perl use strict; use warnings; use File::Basename; $0 = basename($0); my ($work, $rest, $work1) = @ARGV; default($work, 25*60); default($rest, 5*60); default($work1, $work); my $restmsg = "have a rest! have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am have a rest! sleep before 1am "; my $workmsg = "do some work! do some work! do some work! do some work! do some work! do some work! do some work! do some work! do some work! do some work! do some work! do some work! do some work! do some work! do some work! do some work! "; while(1) { message($workmsg); delay($work); message($restmsg); delay($rest); } # delay($work1); # while(1) { # message($restmsg); # delay($rest); # message($workmsg); # delay($work); # } sub delay { my ($secs) = @_; sleep $secs; } sub message { my $status; while (1) { $status = system("xmessage", "-buttons", "OOSU!:8", "-timeout", "10", @_); last if $status != 0; sleep 1; } if ($status != 8<<8) { if (system("xdpyinfo >/dev/null 2>&1") != 0) { die "$0: lost display\n"; } else { warn "xmessage failed strangely with status: $status"; } } } sub default { $_[0] = $_[1] if !defined $_[0] || $_[0] eq "-"; }