Captain,
In addition to GPM, if your interested in doing some c coding (and you're on linux), you could wrap parts of svgalib with inline. There is a
Linux::Svgalib on CPAN but I don't think the author encapsulated the mouse api.
update: just for fun here's a simple inline script that uses svgalib to capture and report on mouse clicks. caveat hackour - your mouse inits may be different, you need to run as root, need to run on console (may drastically interfere with X), etc, etc, etc ...
#!/usr/bin/perl
use Inline C => DATA =>
LIBS => '-lvga';
mouse_start();
mouse_loop();
__END__
__C__
#include <vga.h>
#include <vgamouse.h>
int mouse_start( )
{
vga_init();
vga_setmousesupport(1);
mouse_init("/dev/mouse", MOUSE_IMPS2, MOUSE_DEFAULTSAMPLERATE);
}
int mouse_loop( )
{
int button, leftpressed, middlepressed, rightpressed;
leftpressed = middlepressed = rightpressed = 0;
for (;;) {
mouse_update();
button = mouse_getbutton();
if (button & MOUSE_LEFTBUTTON) {
if (!leftpressed) {
printf( "LEFT PRESSED!\n" );
leftpressed = 1;
}
} else
leftpressed = 0;
if (button & MOUSE_MIDDLEBUTTON) {
if (!middlepressed) {
printf( "MIDDLE PRESSED!\n" );
middlepressed = 1;
}
} else
middlepressed = 0;
if (button & MOUSE_RIGHTBUTTON) {
if (!rightpressed) {
printf( "RIGHT PRESSED!\n" );
rightpressed = 1;
}
} else
rightpressed = 0;
}
}
-derby |