#!/usr/bin/perl use lib qw(/usr/lib/libDrakX); use standalone; #- warning, standalone must be loaded very first, for 'explanations' use interactive; use keyboard; use Xconfig::xfree; use common; use any; use c; require_root_capability(); my $in; my $keyboard = keyboard::read_or_default(); if (my ($kb) = grep { !/^-/ } @ARGV) { keyboard::KEYBOARD2text($kb) or die "bad keyboard $kb\n"; $keyboard->{KEYBOARD} = $kb; } else { $ugtk2::wm_icon = "/usr/share/mcc/themes/default/keyboard-mdk.png"; $in = 'interactive'->vnew('su'); my ($xkb_models, $model2text) = keyboard::xkb_models(); s/ /|/ foreach values %$model2text; $keyboard->{XkbModel} ||= 'pc105'; choose: $in->ask_from(N("Keyboard"), N("Please, choose your keyboard layout."), [ { val => \$keyboard->{KEYBOARD}, format => sub { translate(keyboard::KEYBOARD2text($_[0])) }, list => [ keyboard::KEYBOARDs() ], type => 'list', }, { val => \$keyboard->{XkbModel}, format => sub { $model2text->{$_[0]} }, separator => '|', list => $xkb_models }, ]) or goto end; keyboard::group_toggle_choose($in, $keyboard) or goto choose; if ($::expert) { my $isNotDelete = !$in->ask_yesorno("BackSpace", N("Do you want the BackSpace to return Delete in console?"), 1); $keyboard->{BACKSPACE} = $isNotDelete ? "BackSpace" : "Delete"; } } keyboard::configure_and_set_standalone($keyboard); end: $in->exit(0) if $in;