summaryrefslogtreecommitdiffstats
path: root/tools/keyboarddrake
diff options
context:
space:
mode:
Diffstat (limited to 'tools/keyboarddrake')
-rwxr-xr-xtools/keyboarddrake54
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;