diff options
-rw-r--r-- | perl-install/keyboard.pm | 7 | ||||
-rwxr-xr-x | perl-install/standalone/keyboarddrake | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/perl-install/keyboard.pm b/perl-install/keyboard.pm index 7176af4a7..4fdde31b7 100644 --- a/perl-install/keyboard.pm +++ b/perl-install/keyboard.pm @@ -447,6 +447,13 @@ sub xmodmap_file { -e $f && $f; } +sub setxkbmap { + my ($keyboard) = @_; + my $xkb = keyboard::keyboard2full_xkb($keyboard) or return; + run_program::rooted($::prefix, 'setxkbmap', '-option', '') if $xkb->{XkbOptions}; #- need re-initialised other toggles are cumulated + run_program::rooted($::prefix, 'setxkbmap', $xkb->{XkbLayout}, '-model' => $xkb->{XkbModel}, '-option' => $xkb->{XkbOptions} || '', '-compat' => $xkb->{XkbCompat} || ''); +} + sub setup { my ($keyboard) = @_; diff --git a/perl-install/standalone/keyboarddrake b/perl-install/standalone/keyboarddrake index ac49132a5..c45d70a34 100755 --- a/perl-install/standalone/keyboarddrake +++ b/perl-install/standalone/keyboarddrake @@ -34,11 +34,10 @@ if ($::expert) { $keyboard->{BACKSPACE} = $isNotDelete ? "BackSpace" : "Delete"; } -my $xkb = keyboard::keyboard2full_xkb($keyboard); -system('setxkbmap', '-option', '') if $xkb->{XkbOptions}; #- need re-initialised other toggles are cumulated -system('setxkbmap', $xkb->{XkbLayout}, '-model' => $xkb->{XkbModel}, '-option' => $xkb->{XkbOptions} || '', '-compat' => $xkb->{XkbCompat} || ''); +keyboard::setxkbmap($keyboard); eval { my $xfree_conf = Xconfig::xfree->read; + my $xkb = keyboard::keyboard2full_xkb($keyboard); $xfree_conf->set_keyboard($xkb); $xfree_conf->write; }; |