diff options
Diffstat (limited to 'tools/keyboarddrake')
-rwxr-xr-x | tools/keyboarddrake | 12 |
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; |