summaryrefslogtreecommitdiffstats
path: root/examples/minimal/files/set-lang-kbd
diff options
context:
space:
mode:
Diffstat (limited to 'examples/minimal/files/set-lang-kbd')
-rwxr-xr-xexamples/minimal/files/set-lang-kbd24
1 files changed, 24 insertions, 0 deletions
diff --git a/examples/minimal/files/set-lang-kbd b/examples/minimal/files/set-lang-kbd
new file mode 100755
index 0000000..bcec647
--- /dev/null
+++ b/examples/minimal/files/set-lang-kbd
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+
+use lib qw(/usr/lib/libDrakX);
+
+use common;
+use do_pkgs;
+use lang;
+use keyboard;
+
+my $do_pkgs = do_pkgs::do_pkgs;
+
+my $locale = lang::read();
+my ($lang) = cat_("/proc/cmdline") =~ /\blang=(\w+?)\b/;
+my $h = lang::lang_to_ourlocale($lang);
+if ($lang && member($h->{lang}, lang::list_langs(exclude_non_installed => 1))) {
+ put_in_hash($locale, $h);
+ lang::set($locale);
+}
+lang::write_and_install($locale, $do_pkgs);
+
+my $keyboard = $locale ? keyboard::lang2keyboard($locale->{lang}) : keyboard::read_or_default();
+my ($kbd) = cat_("/proc/cmdline") =~ /\bkbd=(\w+?)\b/;
+$keyboard->{KEYBOARD} = $kbd if $kbd;
+keyboard::configure_and_set_standalone($keyboard);