summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/keyboarddrake
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/keyboarddrake')
-rwxr-xr-xperl-install/standalone/keyboarddrake13
1 files changed, 5 insertions, 8 deletions
diff --git a/perl-install/standalone/keyboarddrake b/perl-install/standalone/keyboarddrake
index 7940726fa..624422b2a 100755
--- a/perl-install/standalone/keyboarddrake
+++ b/perl-install/standalone/keyboarddrake
@@ -42,20 +42,17 @@ if ($::expert) {
$keyboard->{BACKSPACE} = $isNotDelete ? "BackSpace" : "Delete";
}
-system('loadkeys', keyboard::keyboard2kmap($keyboard));
-
-my $xkb = keyboard::keyboard2xkb($keyboard);
-system('setxkbmap', $xkb);
-
+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} || '');
eval {
my $xfree_conf = Xconfig::xfree->read;
- my $x_kbd_conf = $xfree_conf->get_keyboard;
- $x_kbd_conf->{XkbLayout} = $xkb;
- $xfree_conf->set_keyboard($x_kbd_conf);
+ $xfree_conf->set_keyboard($xkb);
$xfree_conf->write;
};
keyboard::write($keyboard);
+system('/etc/init.d/keytable', 'restart');
end:
if ($::isEmbedded) {