NAME

X11::Keyboard - Keyboard support functions for X11

SYNOPSIS

use X11::Protocol;
use X11::Keyboard;

$x = X11::Protocol->new();
$k = X11::Keyboard->new($x);
$keysym = $k->StringToKeysym("plus");
print $k->KeysymToKeycode($keysym);

# or, more simply
print $k->KeysymToKeycode("plus");

DESCRIPTION

This module is meant to provide access to the keyboard functions of X11. Whilst the functions names are essentially identical to those used in xlib (minus the prepended X), the parameter lists and return values are different as specified in this document.

METHODS

An object oriented interface is provided as follows:

new <x-connection>

Used to initialise the system, this method requires a handle to an X connection (typically generated using the X11::Protocol module) and returns an object instance.

keysym-num = StringToKeysym [keysym-name = $_]

This method requires a keysym name and returns its corresponding numeric value. If no name is provided, $_ is used.

- exempli gratia -

$c = $k->StringToKeysym("Backspace");
# $c now contains 65288

keycode [state] = KeysymToKeycode [keysym-[num|name] = $_]

This method returns the keycode corresponding to the passed-in keysym name or number (if neither is passed $_ is used). In such cases where the keysym name evaluates to a numeric value e.g. [0-9], the caller is responsible for first converting the value to a true keysym-num.

The method can also return the associated state. If the calling context is a list it is returned, if scalar, only the keycode is returned.

AUTHOR

Erick Calder <ecalder@cpan.org>

ACKNOWLEDGEMENTS

My gratitude to Benjamin Goldberg for his patience and direction in my struggles to put this together, as well as to Somni and dkr from the OPN #perl channel.

AVAILABILITY + SUPPORT

For support e-mail the author. This module may be found on the CPAN. Additionally, both the module and its RPM package are available from:

http://perl.arix.com

DATE

$Date: 2002/12/04 05:16:01 $

VERSION

$Revision: 1.4 $

LICENSE AND COPYRIGHT

Copyright (c) 2002 Erick Calder. This product is distributed under the MIT License. A copy of this license was included in a file called LICENSE. If for some reason, this file was not included, please see http://www.opensource.org/licenses/mit-license.html to obtain a copy of this license.