Acme-KeyboardMarathon
view release on metacpan or search on metacpan
lib/Acme/KeyboardMarathon.pm view on Meta::CPAN
# all measures in 100ths of a cm
my $depress_distance = 25;
my $shift_distance = 200;
# horizontal distances
$self->{k} = {};
no warnings 'qw';
map { $self->{k}->{$_} = 550 } ( '\\', '|' );
map { $self->{k}->{$_} = 500 } ( qw/6 ^ ` ~/ );
map { $self->{k}->{$_} = 450 } ( qw/= +/ );
map { $self->{k}->{$_} = 400 } ( qw/] 1 2 3 4 7 8 9 0 5 - _ ! @ # $ % & * ( ) }/ );
map { $self->{k}->{$_} = 350 } ( qw/B b/ );
map { $self->{k}->{$_} = 230 } ( qw/[ {/ );
map { $self->{k}->{$_} = 200 } ( qw/Q q W w G g H h E e R r T t Y y U u I i O o P p Z z X x C c V v N n M m , < > . \/ ? ' "/ );
map { $self->{k}->{$_} = 0 } ( qw/A a S s D d F f J j K k L l ; :/ );
if ($layout eq 'dvorak') {
map { $self->{k}->{$_} = 550 } ( '\\', '|' );
map { $self->{k}->{$_} = 500 } ( qw/6 ^ ` ~/ );
map { $self->{k}->{$_} = 450 } ( qw/] }/ );
map { $self->{k}->{$_} = 400 } ( qw/+ = 1 2 3 4 7 8 9 0 5 [ { ! @ # $ % & * ( )/ );
map { $self->{k}->{$_} = 350 } ( qw/X x/ );
map { $self->{k}->{$_} = 230 } ( qw/? \// );
map { $self->{k}->{$_} = 200 } ( qw/" ' < , I i D d > . P p Y y F f G g C c R r L l : ; Q q J j K k B b M m W w V v Z z - _/ );
map { $self->{k}->{$_} = 0 } ( qw/A a O o E e U u H h T t N n S s/ );
}
$self->{k}->{"\n"} = 400;
$self->{k}->{"\t"} = 230;
$self->{k}->{' '} = 0;
# Add the depress distance
for my $key ( keys %{$self->{k}} ) {
$self->{k}->{$key} += $depress_distance;
}
( run in 1.275 second using v1.01-cache-2.11-cpan-49f99fa48dc )