+$charlist{fonts} = \@fontlist;
+
+my %osfonts = (
+ win95 => [qw( arial.win95 arialuni lucidau verdana.win95 times.win95 cour.win95 )], # microsoft
+ win7 => [qw( arial.win7 verdana.win7 times.win7 cour.win7 )],
+ win8 => [qw( arial.win8 verdana.win8 times.win8 cour.win8 )],
+ mac10 => [qw( helvetica.mac10 lucida.mac10 times.mac10 garamond.mac10 palatino.mac10 lucida.mac10 )], # apple
+ android => [qw( roboto notosans )], # google
+ oss => [qw( dvsans code2000 unifont opensans )],
+);
+my %fontnum = map { ($fontlist[$_]->{file} => $_) } 0 .. $#fontlist;
+while (my ($os, $fontids) = each %osfonts) {
+ $charlist{os}->{$os} = [ map { $fontnum{$_} // () } @{$fontids} ];
+}
+$charlist{osdefault} = [qw( win95 win8 mac10 oss android )];
+
+say "# automatically generated by $0";