App-orgdaemon
view release on metacpan or search on metacpan
bin/org-daemon view on Meta::CPAN
L0xvx3WDkaNoHShKz8HGr3Z9FTsDp9P5UVXF/Il5qncA4H0DqncASHVcviXWFJrJptmb842ZMswU
rQMAJEl6nTZWB7Isb6yaN/cBK05qBgs16JcFflCLFKrvhq+xMXHSZFJDAoZRJDlz/xHxYpP03qru
oFeFRfzBfpc7gWVEnnc3nm3Y+0PsFtWsWjHDmkZoqEGPAh/xuKOioAD0K5gj1dJhzvJevgIIDfS4
o7JcwlP+X37n25yPnXcOBaBnEhgD29ni9PX7CvMKaJqORRC8ciapKNYRkSTiBBlFokdWWnAdPbUk
2tnF5lg9110KRhBBIWnvNyEAAAhs/9L25srjly+GBV6MSgoGSQAcoand/GGsVTQ3N2extHrn1NRH
vP0YYAAQ0OplSy4Chb2/QFGUbsc/UZkv57WhS0363Bz92FzPwUOPXO18dvvOeIXW0tKSrNMOpj7g
k4UIKIqioDbQJEalJFuBjmEAQAhHorJcnJFLfPsjAFjf32Ct24RrqZ7vGoIXLsUj4DguIkkAEBno
570ede8yAh1J/pM/QTl+DMkyACgIYRg240qX1NdnKJn6l8Tv/PVny8plgFBr9YZ4lezz+bYtKsvj
GDHoj0qiqvBF0aVxdm12Dklrg65ezpbPh8J2mcpdvwUUePDYwcnz5zY1NXlcLse0J8TeG7Zd9cZ5
s28fAcuyrhAvhmLeW4FqZdMYdw8RCWmTkzlbPgAks+yEg42KJN+3ZDGdn8eyLI7jrMmUs6EaAK7V
foB4fsRmF01OU/MAAG5RCRKUOMGuqZgT4UUpHFHl04O4/9ARTYohq3oNAJhMppSUFBzH055awBRP
FLq6O7fuGJFg/bZdp/vCAHBU0mK0vp/lKA0JGGYoLNDQegAwJjC67XsAIKv6DTKZVQmMRqNawNbN
mwDDOj+tF667bk9gsVjK1m6+FhS1xfaewgmc0eDr8w7HTWt2RRwtCbZ883OLVInJZEpNTVW/kyYV
p1XOR5FIW23diPNg1uwK+4p3XOebifETkTXPPLFoSGVLMETqdwOAta4W+6+nxiIAAICcjeuIhIQb
P/7kP3lqOAFRW1s79FNQWJTCjTl54RSbkT5UdziGz/zzQvjkae7x0szXXh4Cm0ym7OzssWPHDjpK
TMQw8B47Hmq6Yl68MGZ+S0QzS0snG3Nd5y4PSR4lGO93+3AtlftuzXBkQ0PDnj17hkssK5frsjMD
Z8/3fL/vDkO/5erVyqrKqjUrX/l4w9k5Tx5NSb+2qe4WTHl5udlsFkVxuND92x9HU9IbC+xyMKhK
RhyZ6urYf8D54mpcS9l27yCYxOGqKEKCKNA6/S0mV195K9LmzHz1peya6ngzGQCiknR6SgnvbL+H
ZxmupSadOKLLzIj3bEGynFho01nuu5eHH4GjKAKAfwEkxHqUW0+AiwAAAABJRU5ErkJggg==
EOF
if ($overview_widget eq 'listbox') {
$lb = $mw->Scrolled('Listbox',
-width => 100,
-height => 8,
-scrollbars => "osoe",
-font => 'Courier 9', # a fixed font
)->pack(qw(-fill both -expand 1));
$lb->bind("<Double-1>" => sub {
show_date_by_index_in_emacs(shift->xyIndex);
});
} else {
require Tk::HList;
require Tk::ItemStyle;
$lb = $mw->Scrolled('HList',
-width => 100,
-height => 10,
-scrollbars => 'osoe',
-selectbackground => '#4a6984',
-selectmode => 'browse',
-header => 0,
-columns => 3,
-command => sub {
my $path = shift;
show_date_by_index_in_emacs($path);
},
)->pack(qw(-fill both -expand 1));
$lb->anchorClear;
$lb->columnWidth(0, 400);
}
$lb->Button(-padx => 0, -pady => 0, -borderwidth => 1,
-font => $small_font,
-text => 'Update',
-command => \&tk_do_one_iteration,
)->place(-relx => 1, -rely => 1, -anchor => 'se');
$mw->bind('<Control-p>' => sub { start_ptksh() });
tk_do_one_iteration();
if ($recheck_interval == 60) {
# synchronize with full minute, only implemented for recheck_interval=60
my(@l) = localtime;
my $first_delay = $recheck_interval - $l[0];
if ($first_delay) {
$lb->after($first_delay*1000, sub {
tk_do_one_iteration();
normal_repeater();
});
} else {
normal_repeater();
}
} else {
normal_repeater();
}
$mw->protocol('WM_DELETE_WINDOW', sub {
return if ($mw->messageBox
(-icon => "question",
-title => "Exit org-daemon",
-message => "Really exit org-daemon?",
-type => "YesNo",
-default => 'No',
) =~ /no/i);
$mw->destroy;
if ($AnyEvent::Impl::Tk::mw) {
$AnyEvent::Impl::Tk::mw->destroy;
# otherwise process would still run & hang
}
for my $mw0 (Tk::MainWindow::Existing()) {
if ($mw0->title eq 'ptksh') {
$mw0->destroy;
}
}
});
# emacsclient does not start if a directory is missing,
# so make sure we change into a non-removable directory.
chdir '/';
my @anyevent_notifiers; # for AnyEvent::Filesys::Notify
my $inotify_w; # for Linux::Inotify2
if ($use_anyevent) {
if ($^O eq 'linux') {
require AnyEvent;
require Linux::Inotify2;
my $inotify = Linux::Inotify2->new
or die "Cannot create new inotify object: $!";
for my $org_file (keys %org_files) {
$inotify->watch($org_file, &Linux::Inotify2::IN_CLOSE_WRITE, sub {
my $e = shift;
if ($debug) {
warn "Linux::Inotify2 got an event:\n";
require Data::Dumper;
print STDERR Data::Dumper->new([$e],[qw()])->Indent(1)->Useqq(1)->Sortkeys(1)->Terse(1)->Dump;
}
tk_do_one_iteration();
});
}
$inotify_w = AE::io($inotify->fileno, 0, sub { $inotify->poll });
} else {
( run in 0.537 second using v1.01-cache-2.11-cpan-39bf76dae61 )