X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/2e8c1e3cc39cc1c6e4b858242d2a3a39481b9640..0d7e89b63197de511c1a240599b3e7ff0ac156a0:/keyboard/altgr/index.inc.pl diff --git a/keyboard/altgr/index.inc.pl b/keyboard/altgr/index.inc.pl index a9030e0..2308e14 100644 --- a/keyboard/altgr/index.inc.pl +++ b/keyboard/altgr/index.inc.pl @@ -16,9 +16,17 @@ for my $name (map {@{$_}} values %cat) { $cat{$name} = \%row; $keys->{mode} //= {'' => undef}; + + if ($keys->{def}{''}{'+a'}) { + # move root +meta keys to distinct mode + $keys->{mode}{"\e"} = '+'; + /^\+./ and $keys->{def}{"\e"}{$_} = delete $keys->{def}{''}{$_} + for keys %{ $keys->{def}{''} }; + } + for my $mode (keys %{ $keys->{mode} }) { - $row{key}{$_} = $keys->{key}{$_} for $mode || (); - $row{inventory}{$mode}{$_}++ for grep { /^g[2-9]/ } map { s/ (?!ext).*//r } + $row{def}{''}{$_} = $keys->{def}{''}{$_} for $mode || (); + $row{inventory}{$mode}{$_}++ for grep { /^g[2-9]/ } map { s/ (?!ext).*//r } map {$_->[0]} values %{ $keys->{def}{$mode} }; } }