Provided by: libanyevent-termkey-perl_0.02-2_all bug

NAME

       "AnyEvent::TermKey" - terminal key input using "libtermkey" with "AnyEvent"

SYNOPSIS

        use AnyEvent::TermKey qw( FORMAT_VIM KEYMOD_CTRL );
        use AnyEvent;

        my $cv = AnyEvent->condvar;

        my $aetk = AnyEvent::TermKey->new(
           term => \*STDIN,

           on_key => sub {
              my ( $key ) = @_;

              print "Got key: ".$key->termkey->format_key( $key, FORMAT_VIM )."\n";

              $cv->send if $key->type_is_unicode and
                           $key->utf8 eq "C" and
                           $key->modifiers & KEYMOD_CTRL;
           },
        );

        $cv->recv;

DESCRIPTION

       This class implements an asynchronous perl wrapper around the "libtermkey" library, which
       provides an abstract way to read keypress events in terminal-based programs. It yields
       structures that describe keys, rather than simply returning raw bytes as read from the TTY
       device.

       It internally uses an instance of Term::TermKey to access the underlying C library. For
       details on general operation, including the representation of keypress events as objects,
       see the documentation on that class.

       Proxy methods exist for normal accessors of "Term::TermKey", and the usual behaviour of
       the "getkey" or other methods is instead replaced by the "on_key" event.

CONSTRUCTOR

   $aetk = AnyEvent::TermKey->new( %args )
       This function returns a new instance of a "AnyEvent::TermKey" object. It takes the
       following named arguments:

       term => IO or INT
               Optional. File handle or POSIX file descriptor number for the file handle to use
               as the connection to the terminal. If not supplied "STDIN" will be used.

       on_key => CODE
               CODE reference to the key-event handling callback. Will be passed an instance of a
               "Term::TermKey::Key" structure:

                $on_key->( $key )

METHODS

   $tk = $aetk->termkey
       Returns the "Term::TermKey" object being used to access the "libtermkey" library. Normally
       should not be required; the proxy methods should be used instead. See below.

   $flags = $aetk->get_flags
   $aetk->set_flags( $flags )
   $canonflags = $aetk->get_canonflags
   $aetk->set_canonflags( $canonflags )
   $msec = $aetk->get_waittime
   $aetk->set_waittime( $msec )
   $str = $aetk->get_keyname( $sym )
   $sym = $aetk->keyname2sym( $keyname )
   ( $ev, $button, $line, $col ) = $aetk->interpret_mouse( $key )
   $str = $aetk->format_key( $key, $format )
   $key = $aetk->parse_key( $str, $format )
   $key = $aetk->parse_key_at_pos( $str, $format )
   $cmp = $aetk->keycmp( $key1, $key2 )
       These methods all proxy to the "Term::TermKey" object, and allow transparent use of the
       "AnyEvent::TermKey" object as if it was a subclass. Their arguments, behaviour and return
       value are therefore those provided by that class. For more detail, see the Term::TermKey
       documentation.

AUTHOR

       Paul Evans <leonerd@leonerd.org.uk>