summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/Xconfig.pm2
-rw-r--r--perl-install/Xconfigurator.pm8
-rw-r--r--perl-install/Xconfigurator_consts.pm6
3 files changed, 10 insertions, 6 deletions
diff --git a/perl-install/Xconfig.pm b/perl-install/Xconfig.pm
index 726651849..6e53f4069 100644
--- a/perl-install/Xconfig.pm
+++ b/perl-install/Xconfig.pm
@@ -50,6 +50,7 @@ sub getinfoFromXF86Config {
$c{driver} = $1 if /^\s*Driver\s+"(.*?)"/;
$c{id} = $1 if /^\s*Identifier\s+"[^\d"]*(\d*)"/;
+ $c{xkb_model} ||= $1 if /^\s*Option\s+"XkbModel"\s+"(.*?)"/;
$c{xkb_keymap} ||= $1 if /^\s*Option\s+"XkbLayout"\s+"(.*?)"/;
$c{XMOUSETYPE} ||= $1 if /^\s*Option\s+"Protocol"\s+"(.*?)"/;
$c{device} ||= $1 if /^\s*Option\s+"Device"\s+"\/dev\/(.*?)"/;
@@ -93,6 +94,7 @@ sub getinfoFromXF86Config {
local *F; open F, "$prefix/etc/X11/XF86Config";
while (<F>) {
if (/^Section "Keyboard"/ .. /^EndSection/) {
+ $keyboard{xkb_model} ||= $1 if /^\s*XkbModel\s+"(.*?)"/;
$keyboard{xkb_keymap} ||= $1 if /^\s*XkbLayout\s+"(.*?)"/;
} elsif (/^Section "Pointer"/ .. /^EndSection/) {
$mouse{XMOUSETYPE} ||= $1 if /^\s*Protocol\s+"(.*?)"/;
diff --git a/perl-install/Xconfigurator.pm b/perl-install/Xconfigurator.pm
index cc884e74b..3eb484031 100644
--- a/perl-install/Xconfigurator.pm
+++ b/perl-install/Xconfigurator.pm
@@ -836,6 +836,14 @@ sub write_XF86Config {
print G qq( Option "XkbDisable"\n) unless $O->{xkb_keymap};
print F $keyboardsection_part3;
print G $keyboardsection_part3_v4;
+
+ $O->{xkb_model} ||=
+ arch() =~ /ppc/ ? 'macintosh' :
+ arch() =~ /sparc/ ? 'sun' :
+ $O->{xkb_keymap} eq 'br' ? 'abnt2' : 'pc105';
+ print F qq( XkbModel "$O->{xkb_model}"\n);
+ print G qq( Option "XkbModel" "$O->{xkb_model}"\n);
+
print F qq( XkbLayout "$O->{xkb_keymap}"\n);
print G qq( Option "XkbLayout" "$O->{xkb_keymap}"\n);
print F join '', map { " $_\n" } @{$xkb_options{$O->{xkb_keymap}} || []};
diff --git a/perl-install/Xconfigurator_consts.pm b/perl-install/Xconfigurator_consts.pm
index 9c6e67c5f..95e3f8020 100644
--- a/perl-install/Xconfigurator_consts.pm
+++ b/perl-install/Xconfigurator_consts.pm
@@ -487,7 +487,6 @@ if (arch() =~ /^sparc/) {
# XkbSymbols "sun/us(sun5)"
XkbRules "sun"
- XkbModel "sun"
XkbLayout "us"
XkbCompat "compat/complete"
XkbTypes "types/complete"
@@ -497,7 +496,6 @@ if (arch() =~ /^sparc/) {
';
$keyboardsection_part3_v4 = '
Option "XkbRules" "sun"
- Option "XkbModel" "sun"
Option "XkbLayout" "us"
Option "XkbCompat" "compat/complete"
Option "XkbTypes" "types/complete"
@@ -538,12 +536,10 @@ $keyboardsection_part3 = '
XkbSymbols "macintosh/us"
XkbGeometry "macintosh"
XkbRules "xfree86"
- XkbModel "macintosh"
';
$keyboardsection_part3_v4 = '
Option "XkbRules" "xfree86"
- Option "XkbModel" "macintosh"
';
} else {
$keyboardsection_part3 = '
@@ -578,12 +574,10 @@ $keyboardsection_part3 = '
XkbSymbols "us(pc105)"
XkbGeometry "pc"
XkbRules "xfree86"
- XkbModel "pc105"
';
$keyboardsection_part3_v4 = '
Option "XkbRules" "xfree86"
- Option "XkbModel" "pc105"
';
}