#!/usr/bin/perl use Tk; $mw = MainWindow->new; # the window must be mapped for a global grab # so make a 1 pixel window in lower right corner $mw->geometry('1x1-1-1'); $mw->bind("", [ \&process_key_press , Ev('K') ] ); $mw->bind("", [ \&process_key_release , Ev('K') ] ); $mw->after(100,sub{$mw->grabGlobal;}); $mw->focusForce; MainLoop; sub process_key_press{ my ($caller, $key) = @_; print "Press $key\n"; if ($key eq 'Escape'){exit} } sub process_key_release{ my ($caller, $key) = @_; print "Release $key\n"; }