#!/usr/bin/perl use strict; #undef $/; #$/=''; use Proc::Simple; my $n; my $proc = Proc::Simple->new(); my $sound = `aconnect -o -l`; #if($sound =~ m/(.*)timidity/i){ # print "### timidity is running:$1\n"; #} #else { # print "### Starting: timidity is running\n"; # $proc->start("timidity -iA -B2,8 -s 44100"); # sleep 2; #} keybalt(1); system("vmpk --addr 128:0"); keybalt(0); sub keybalt{ my $k1={ 23 => "exclam", #tab 35 => "equal", 50 => "percent", #1 51 => "ampersand", #3 62 => "dollar", #2 98 => "at Up", #4 117 => "Up", }; my $k2={ 23 => "Tab ISO_Left_Tab", 35 => "dead_acute dead_grave dead_tilde dead_macron", 50 => "Shift_L", 51 => "dead_tilde dead_circumflex", 62 => "Shift_R", 98 => "Up", }; if($_[0]){ system ("xmodmap -e 'remove Shift = 50' -e 'remove Shift = 62' ". join(" ",map {"-e 'keycode $_ = $k1->{$_}'"} keys %$k1)); } else { system ("xmodmap -e 'add Shift = 50' -e 'add Shift = 62' ". join(" ",map {"-e 'keycode $_ = $k2->{$_}'"} keys %$k2)); } }