/usr/share/console-setup/kbdnames-maker is in keyboard-configuration 1.108ubuntu15.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | #!/usr/bin/perl
use warnings 'all';
use strict;
use Locale::gettext;
use POSIX;
BEGIN {
my $file;
if ($ARGV[0]) {
$file = $ARGV[0];
} else {
$file = 'KeyboardNames.pl';
}
do "$file";
}
for my $model (keys %KeyboardNames::models) {
my $name = $KeyboardNames::models{$model};
print "C*model*$name*$model\n"
}
for my $layout (keys %KeyboardNames::layouts) {
my $name = $KeyboardNames::layouts{$layout};
print "C*layout*$name*$layout\n";
print "C*variant*$name**$layout\n";
for my $variant (keys %{$KeyboardNames::variants{$name}}) {
my $variantname = $KeyboardNames::variants{$name}{$variant};
print "C*variant*$name*$variantname*$layout - $variant\n";
}
}
# Use a custom-generated locale. Taken from lintian.
chop(my $cwd = `pwd`);
my $locale_path = "$cwd/build-locale";
system("mkdir $locale_path");
system("localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias --quiet $locale_path/en_US.UTF-8");
$ENV{'LOCPATH'} = "$locale_path";
# Make sure we output UTF-8
$ENV{'LC_ALL'} = "en_US.UTF-8";
binmode STDOUT, ":utf8";
for my $mo (</usr/share/locale/*/LC_MESSAGES/xkeyboard-config.mo>) {
my $lang = $mo;
$lang =~ s:/usr/share/locale/(.*)/LC_MESSAGES/xkeyboard-config.mo:$1:;
$ENV{'LANGUAGE'} = $lang;
setlocale(LC_ALL,"");
$lang =~ s:\@:__:;
$lang =~ s:__Latn:__latin:; # special fixup for sr
my $d = Locale::gettext->domain("xkeyboard-config");
my $iso3166 = Locale::gettext->domain("iso_3166");
for my $model (keys %KeyboardNames::models) {
my $name = $KeyboardNames::models{$model};
print "$lang*model*$name*".($d->get($model))."\n"
}
for my $layout (keys %KeyboardNames::layouts) {
my $name = $KeyboardNames::layouts{$layout};
my $local_layout;
if ($layout eq 'Switzerland') {
$local_layout = $iso3166->get($layout);
} else {
$local_layout = $d->get($layout);
}
print "$lang*layout*$name*$local_layout\n";
print "$lang*variant*$name**$local_layout\n";
for my $variant (keys %{$KeyboardNames::variants{$name}}) {
my $variantname = $KeyboardNames::variants{$name}{$variant};
print "$lang*variant*$name*$variantname*$local_layout - ".($d->get($variant))."\n";
}
}
}
system("rm -rf $locale_path");
|