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