From b60b957d3a8821b7f1afb298e40809d58deb3c9c Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Thu, 1 Aug 2002 21:25:55 +0000 Subject: - the old $o->{keyboard} is now $o->{keyboard}{KEYBOARD} - KBCHARSET is $o->{keyboard}{KBCHARSET} - isNotDelete is $o->{keyboard}{BACKSPACE} (as written in sysconfig/keyboard) - add GRP_TOGGLE which gives XkbOptions "grp:GRP_TOGGLE" - add dialog box to choose GRP_TOGGLE --- perl-install/standalone/keyboarddrake | 75 +++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 34 deletions(-) (limited to 'perl-install/standalone/keyboarddrake') diff --git a/perl-install/standalone/keyboarddrake b/perl-install/standalone/keyboarddrake index a5b8f75b8..e5137530c 100755 --- a/perl-install/standalone/keyboarddrake +++ b/perl-install/standalone/keyboarddrake @@ -8,6 +8,7 @@ use interactive; use keyboard; use Xconfig::xfree; use common; +use any; use c; local $_ = join '', @ARGV; @@ -16,45 +17,51 @@ local $_ = join '', @ARGV; $::expert = /-expert/; -print "[$::expert]\n"; -my $keyboard; -if ($::expert) { ($keyboard) = grep { !/^-/ } @ARGV } -print "[$keyboard]\n"; -my $in = 'interactive'->vnew('su', 'keyboard'); - -begin: -$::isEmbedded and kill USR2, $::CCPID; -$keyboard ||= $in->ask_from_listf_(_("Keyboard"), - _("Please, choose your keyboard layout."), - \&keyboard::keyboard2text, - [ keyboard::keyboards() ], - keyboard::read()); -if ($keyboard) { - keyboard::keyboard2text($keyboard) or die "bad keyboard $keyboard\n"; - - my $isNotDelete = $::expert && !$in->ask_yesorno("BackSpace", _("Do you want the BackSpace to return Delete in console?"), 1); - - my $kmap = keyboard::keyboard2kmap($keyboard); - system('loadkeys', $kmap); - - my $xkb = keyboard::keyboard2xkb($keyboard); - system('setxkbmap', $xkb); - - eval { - my $xfree_conf = Xconfig::xfree->read; - my $x_kbd_conf = $xfree_conf->get_keyboard; - $x_kbd_conf->{XkbLayout} = $xkb; - $xfree_conf->set_keyboard($x_kbd_conf); - $xfree_conf->write; - }; - - keyboard::write('', $keyboard, $isNotDelete); +my $in; +my $keyboard = keyboard::read(); +if (my ($kb) = grep { !/^-/ } @ARGV) { + keyboard::KEYBOARD2text($kb) or die "bad keyboard $kb\n"; + $keyboard->{KEYBOARD} = $kb; +} else { + $in = 'interactive'->vnew('su', 'keyboard'); + + begin: + $::isEmbedded and kill USR2, $::CCPID; + choose: + $keyboard->{KEYBOARD} = $in->ask_from_listf(_("Keyboard"), + _("Please, choose your keyboard layout."), + \&keyboard::KEYBOARD2text, + [ keyboard::KEYBOARDs() ], + $keyboard->{KEYBOARD}) or goto end; + + any::keyboard_group_toggle_choose($in, $keyboard) or goto choose; +} + +if ($::expert) { + my $isNotDelete = !$in->ask_yesorno("BackSpace", _("Do you want the BackSpace to return Delete in console?"), 1); + $keyboard->{BACKSPACE} = $isNotDelete ? "BackSpace" : "Delete"; } +system('loadkeys', keyboard::keyboard2kmap($keyboard)); + +my $xkb = keyboard::keyboard2xkb($keyboard); +system('setxkbmap', $xkb); + +eval { + my $xfree_conf = Xconfig::xfree->read; + my $x_kbd_conf = $xfree_conf->get_keyboard; + $x_kbd_conf->{XkbLayout} = $xkb; + $xfree_conf->set_keyboard($x_kbd_conf); + $xfree_conf->write; +}; + +keyboard::write($keyboard); + +end: if ($::isEmbedded) { kill(USR1, $::CCPID); $keyboard = ''; goto begin; } else { - $in->exit(0); + $in->exit(0) if $in; } -- cgit v1.2.1