File langset-xkb.pl of Package kiwi-config-openSUSE
#! /usr/bin/perl -w
use SaX;
open(FH, "/etc/langset.xkb");
my $XkbLayout=<FH>;
my $XkbModel=<FH>;
my $XkbOptions=<FH>;
my $XkbVariant=<FH>;
close(FH);
chomp $XkbLayout;
chomp $XkbModel;
chomp $XkbOptions;
chomp $XkbVariant;
$exc = new SaX::SaXException;
$exc -> setDebug (1);
$init = new SaX::SaXInit;
if ( $init -> needInit() ) {
print ("initialize cache...\n");
$init -> doInit();
}
my $status = $init -> errorString();
$config = new SaX::SaXConfig;
$kbd = new SaX::SaXImport ( $SaX::SAX_KEYBOARD );
$kbd -> setSource( $SaX::SAX_SYSTEM_CONFIG );
$kbd -> doImport();
$config->addImport($kbd);
$manip2 = new SaX::SaXManipulateKeyboard ($kbd);
$manip2 -> selectKeyboard( $SaX::SAX_CORE_KBD);
$manip2 -> setXKBLayout ("$XkbLayout");
$manip2 -> setXKBModel ("$XkbModel");
$manip2 -> setXKBVariant ("$XkbVariant");
$manip2 -> setXKBOptions ("$XkbOptions");
$config->setMode ( $SaX::SAX_MERGE );
if ( ! $config->createConfiguration() ) {
print "--- " . $config->errorString() . "\n";
print "--- " . $config->getParseErrorValue() . "\n";
exit(1);
}
$config->commitConfiguration();
exit (0);