summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2005-06-02 02:46:14 +0000
committerPascal Rigaux <pixel@mandriva.com>2005-06-02 02:46:14 +0000
commiteba9c3257866392f91132c338fbe59a4b01fa119 (patch)
treed0127870b0210f687f4c456ea87e4f2c50eea0dc /perl-install
parentc7f7e91919ee72b885d5b3253c608393279945ae (diff)
downloaddrakx-eba9c3257866392f91132c338fbe59a4b01fa119.tar
drakx-eba9c3257866392f91132c338fbe59a4b01fa119.tar.gz
drakx-eba9c3257866392f91132c338fbe59a4b01fa119.tar.bz2
drakx-eba9c3257866392f91132c338fbe59a4b01fa119.tar.xz
drakx-eba9c3257866392f91132c338fbe59a4b01fa119.zip
- create keyboard::default() and use it
- it uses keyboard::from_DMI() to get XkbModel when possible
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/install_steps.pm2
-rw-r--r--perl-install/keyboard.pm13
-rwxr-xr-xperl-install/standalone/keyboarddrake2
3 files changed, 15 insertions, 2 deletions
diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm
index 9972dfc2e..f2237a9cb 100644
--- a/perl-install/install_steps.pm
+++ b/perl-install/install_steps.pm
@@ -119,7 +119,7 @@ sub selectLanguage {
$o->{keyboard} = { KEYBOARD => $o->{keyboard} } if $o->{keyboard} && !ref($o->{keyboard});
if (!$o->{keyboard} || $o->{keyboard}{unsafe}) {
- $o->{keyboard} = keyboard::from_usb() || keyboard::lang2keyboard($o->{locale}{lang});
+ $o->{keyboard} = keyboard::default($o->{locale});
$o->{keyboard}{unsafe} = 1;
keyboard::setup($o->{keyboard});
}
diff --git a/perl-install/keyboard.pm b/perl-install/keyboard.pm
index 5332a62fa..ee95f8e8c 100644
--- a/perl-install/keyboard.pm
+++ b/perl-install/keyboard.pm
@@ -456,6 +456,14 @@ sub lang2keyboard {
{ KEYBOARD => $keyboards{$kb} ? $kb : 'us' }; #- handle incorrect keyboard mapping to us.
}
+sub default {
+ my ($o_locale) = @_;
+
+ my $keyboard = from_usb() || lang2keyboard(($o_locale || lang::read())->{lang});
+ add2hash($keyboard, from_DMI());
+ $keyboard;
+}
+
sub from_usb() {
return if $::noauto;
my ($usb_kbd) = detect_devices::usbKeyboards() or return;
@@ -464,6 +472,11 @@ sub from_usb() {
$keyboard !~ /SKIP/ && { KEYBOARD => $keyboard };
}
+sub from_DMI() {
+ my $XkbModel = detect_devices::probe_unique_name('XkbModel');
+ $XkbModel && { XkbModel => $XkbModel };
+}
+
sub load {
my ($keymap) = @_;
return if $::testing;
diff --git a/perl-install/standalone/keyboarddrake b/perl-install/standalone/keyboarddrake
index 5a42cef56..d4bde7e10 100755
--- a/perl-install/standalone/keyboarddrake
+++ b/perl-install/standalone/keyboarddrake
@@ -13,7 +13,7 @@ use c;
require_root_capability();
my $in;
-my $keyboard = keyboard::read();
+my $keyboard = keyboard::read() || keyboard::default();
if (my ($kb) = grep { !/^-/ } @ARGV) {
keyboard::KEYBOARD2text($kb) or die "bad keyboard $kb\n";
$keyboard->{KEYBOARD} = $kb;