keyboard/altgr/ipa: suffix ipa-ucl variant to free group name
[sheet.git] / keyboard / altgr / index.inc.pl
index 5994d9f11812a597a911d6d5d28d7c3bff1cf5f2..d6ddd1def86db895effd46db323a85e946120a5a 100644 (file)
@@ -4,7 +4,8 @@ use warnings;
 my %cat = (
        default => [qw( euro latin science graph )],
        euro => [qw( windows ukext macos macos-abc weur eurkey msx )],
-       latin => [qw( ipa olpc boyeg drix )],
+       ipa     => [qw( ipa-ucl xipa )],
+       latin   => [qw( ipa-ucl olpc boyeg drix )],
        science => [qw( symbolics apl spacecadet )],
        graph => [qw( unigraph emojiworks )],
        extra => [qw( msx-graph p8scii zoo )],
@@ -17,7 +18,7 @@ for my $name (map {@{$_}} values %cat) {
 
        $row{mode} //= {'' => undef};
 
-       if ($keys->{def}{''}{'+a'}) {
+       if (($keys->{moderows} // '') =~ /^\d* [45] \d{2,}/x) {
                # move root +meta keys to distinct mode
                $row{mode}{"\e"} = '+';
                /^\+./ and $keys->{def}{"\e"}{$_} = delete $keys->{def}{''}{$_}
@@ -25,7 +26,8 @@ for my $name (map {@{$_}} values %cat) {
        }
 
        for my $mode (keys %{ $row{mode} }) {
-               $row{inventory}{$mode}{$_}++ for grep { /^g[2-9]/ } map { s/ (?!ext).*//r } map {$_->[0]}
+               $row{inventory}{$mode}{$_}++
+                       for grep { /^g[2-9]/ } map { s/ (?!ext).*//r } map {$_->[0]}
                        values %{ $keys->{def}{$mode} };
        }
 }