summaryrefslogtreecommitdiffstats
path: root/tools/keyboarddrake
diff options
context:
space:
mode:
Diffstat (limited to 'tools/keyboarddrake')
-rwxr-xr-xtools/keyboarddrake12
1 files changed, 11 insertions, 1 deletions
diff --git a/tools/keyboarddrake b/tools/keyboarddrake
index fb5d9be..d508018 100755
--- a/tools/keyboarddrake
+++ b/tools/keyboarddrake
@@ -26,7 +26,11 @@ if (my ($kb) = grep { !/^-/ } @ARGV) {
my ($xkb_models, $model2text) = keyboard::xkb_models();
s/ /|/ foreach values %$model2text;
- $keyboard->{XkbModel} ||= 'pc105';
+ my $default_XkbModel;
+ if (!$keyboard->{XkbModel}) {
+ $default_XkbModel = 1;
+ $keyboard->{XkbModel} = keyboard::default_XkbModel($keyboard);
+ }
choose:
$in->ask_from(N("Keyboard"),
@@ -38,6 +42,11 @@ if (my ($kb) = grep { !/^-/ } @ARGV) {
format => sub { translate(keyboard::KEYBOARD2text($_[0])) },
list => [ keyboard::KEYBOARDs() ],
type => 'list',
+ changed => sub {
+ if ($default_XkbModel) {
+ $keyboard->{XkbModel} = keyboard::default_XkbModel($keyboard);
+ }
+ },
},
{ label => N("Keyboard type"),
title => 1,
@@ -45,6 +54,7 @@ if (my ($kb) = grep { !/^-/ } @ARGV) {
{ val => \$keyboard->{XkbModel},
format => sub { $model2text->{$_[0]} },
separator => '|',
+ changed => sub { $default_XkbModel = 0 },
list => $xkb_models },
]) or goto end;