diff options
Diffstat (limited to 'tools/keyboarddrake')
-rwxr-xr-x | tools/keyboarddrake | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/tools/keyboarddrake b/tools/keyboarddrake new file mode 100755 index 0000000..567a221 --- /dev/null +++ b/tools/keyboarddrake @@ -0,0 +1,74 @@ +#!/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 (grep { $_ eq '--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; |