#!/usr/bin/perl
use warnings;
use strict;
use Linux::USBKeyboard;
# NOTE either:
# 1. be root
# 2. chgrp plugdev /dev/bus/usb/*/*
# 3. do it with udev
# /etc/udev/permissions.rules: SUBSYSTEM=="usb_device", GROUP="plugdev"
# e.g. 0x0e6a, 0x0001
my @args = @ARGV;
(@args) or
die 'run `lsusb` to determine your vendor_id, product_id';
my ($vendor, $product) = map({hex($_)}
$#args ? @args[0,1] : split(/:/, $args[0]));
my $exit = $args[2];
$product = 1 unless(defined($product));
my $k = eval {Linux::USBKeyboard->new($vendor, $product)};
if($@) { die "$@ - you might have the wrong permissions or address"; }
if(0) {
print $k->_char, ".1\n";
print $k->_char, ".2\n";
print $k->_char, ".3\n";
print $k->_char, ".4\n";
print $k->_char, ".5\n";
print $k->_char, ".6\n";
}
else {
local $| = 1;
while(1) {
my $c = $k->char;
#print $c, '(', length($c), ')';
print $c;
last if($c eq "\n" and $exit);
}
}
# vim:ts=2:sw=2:et:sta