#!/usr/bin/perl use lib qw(/usr/lib/libDrakX); # i18n: IMPORTANT: to get correct namespace (drakx-kbd-mouse-x11 instead of libDrakX) BEGIN { unshift @::textdomains, 'drakx-kbd-mouse-x11' } 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; } elsif (member('--migrate', @ARGV)) { keyboard::write($keyboard); exit 0; } 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; my $default_XkbModel = keyboard::default_XkbModel($keyboard); $keyboard->{XkbModel} ||= $default_XkbModel; my $is_default_XkbModel = $keyboard->{XkbModel} eq $default_XkbModel; choose: $in->ask_from(N("Keyboard"), N("Please, choose your keyboard layout."), [ { label => N("Keyboard layout"), title => 1, }, { val => \$keyboard->{KEYBOARD}, format => sub { translate(keyboard::KEYBOARD2text($_[0])) }, list => [ keyboard::KEYBOARDs() ], type => 'list', changed => sub { if ($is_default_XkbModel) { $keyboard->{XkbModel} = keyboard::default_XkbModel($keyboard); } }, }, { label => N("Keyboard type"), title => 1, }, { val => \$keyboard->{XkbModel}, format => sub { $model2text->{$_[0]} }, separator => '|', changed => sub { $is_default_XkbModel = 0 }, 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;