summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/keyboard.pm7
-rwxr-xr-xperl-install/standalone/keyboarddrake5
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;
};