13 ( $origXkbRules, $origXkbModel, $origXkbLayouts, $origXkbVariants, $origXkbOptions ) = getXkbSettings();
18 my ( $xkbRules, $xkbModel, $xkbLayouts, $xkbVariants, $xkbOptions );
20 open (XPROP, "xprop -root |") or die "Could not start xprop";
23 if (/_XKB_RULES_NAMES\(STRING\) = \"(.*)\", \"(.*)\", \"(.*)\", \"(.*)\", \"(.*)\"/)
25 ( $xkbRules, $xkbModel, $xkbLayouts, $xkbVariants, $xkbOptions ) =
26 ( $1, $2, $3, $4, $5 ) ;
32 return ( $xkbRules, $xkbModel, $xkbLayouts, $xkbVariants, $xkbOptions );
37 my ( $xkbRules, $xkbModel, $xkbLayouts, $xkbVariants, $xkbOptions ) = @_;
38 ( system ( "setxkbmap", "-synch",
41 "-layout", $xkbLayouts,
42 "-variant", $xkbVariants,
43 "-option", $xkbOptions ) == 0 ) or die "Could not set xkb configuration";
46 sub restoreXkbSettings
48 setXkbSettings( $origXkbRules, $origXkbModel, $origXkbLayouts, $origXkbVariants, $origXkbOptions );
51 sub defaultXkbSettings
53 return ( "base", "pc105", "us", "", "" );
58 my ( $xkbRules, $xkbModel, $xkbLayouts, $xkbVariants, $xkbOptions ) = @_;
59 print "rules: [$xkbRules]\n" ;
60 print "model: [$xkbModel]\n" ;
61 print "layouts: [$xkbLayouts]\n" ;
62 print "variants: [$xkbVariants]\n" ;
63 print "options: [$xkbOptions]\n" ;
68 my ( $type, $idx ) = @_;
70 open ( XSLTPROC, "xsltproc --stringparam type $type listCIs.xsl ../rules/base.xml.in |" ) or
71 die ( "Could not start xsltproc" );
78 print "--- setting $type: [$paramValue]\n";
79 my @params = defaultXkbSettings();
80 @params[$idx] = $paramValue;
81 dumpXkbSettings ( @params );
82 setXkbSettings ( @params );
84 #dumpXkbSettings( getXkbSettings() );
92 my ( $type, $subtype, $idx, $delim1, $delim2 ) = @_;
94 open ( XSLTPROC, "xsltproc --stringparam type $type listCIs.xsl ../rules/base.xml.in |" ) or
95 die ( "Could not start xsltproc" );
102 print "--- scanning $type: [$paramValue]\n";
104 my @params = defaultXkbSettings();
105 @params[$idx] = "$paramValue";
106 dumpXkbSettings ( @params );
107 setXkbSettings ( @params );
108 #print "--- dump:\n";
109 #dumpXkbSettings( getXkbSettings() );
111 open ( XSLTPROC2, "xsltproc --stringparam type $subtype --stringparam parentId $paramValue listCI2.xsl ../rules/base.xml.in |" ) or
112 die ( "Could not start xsltproc" );
119 print " --- $subtype: [$paramValue2]\n";
120 my @params = defaultXkbSettings();
121 @params[$idx] = "$paramValue$delim1$paramValue2$delim2";
122 dumpXkbSettings ( @params );
123 setXkbSettings ( @params );
124 #print "--- dump:\n";
125 #dumpXkbSettings( getXkbSettings() );
136 dumpXkbSettings( $origXkbRules, $origXkbModel, $origXkbLayouts, $origXkbVariants, $origXkbOptions );
138 #testLevel1( "model", 1 );
139 testLevel2( "layout", "variant", 2, "(", ")" );
141 restoreXkbSettings();