summaryrefslogtreecommitdiffstats
path: root/system-config/components/0150-keyboard-configuration
diff options
context:
space:
mode:
Diffstat (limited to 'system-config/components/0150-keyboard-configuration')
-rwxr-xr-xsystem-config/components/0150-keyboard-configuration92
1 files changed, 92 insertions, 0 deletions
diff --git a/system-config/components/0150-keyboard-configuration b/system-config/components/0150-keyboard-configuration
new file mode 100755
index 0000000..52537f7
--- /dev/null
+++ b/system-config/components/0150-keyboard-configuration
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+## live-config(7) - System Configuration Components
+## Copyright (C) 2006-2015 Daniel Baumann <mail@daniel-baumann.ch>
+##
+## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+## This is free software, and you are welcome to redistribute it
+## under certain conditions; see COPYING for details.
+
+
+#set -e
+
+Cmdline ()
+{
+ # Reading kernel command line
+ for _PARAMETER in ${LIVE_CONFIG_CMDLINE}
+ do
+ case "${_PARAMETER}" in
+ live-config.keyboard-layouts=*|keyboard-layouts=*)
+ LIVE_KEYBOARD_LAYOUTS="${_PARAMETER#*keyboard-layouts=}"
+ ;;
+
+ live-config.keyboard-model=*|keyboard-model=*)
+ LIVE_KEYBOARD_MODEL="${_PARAMETER#*keyboard-model=}"
+ ;;
+
+ live-config.keyboard-options=*|keyboard-options=*)
+ LIVE_KEYBOARD_OPTIONS="${_PARAMETER#*keyboard-options=}"
+ ;;
+
+ live-config.keyboard-variants=*|keyboard-variants=*)
+ LIVE_KEYBOARD_VARIANTS="${_PARAMETER#*keyboard-variants=}"
+ ;;
+ esac
+ done
+}
+
+Init ()
+{
+ # Checking if package is installed or already configured
+ if [ ! -e /var/lib/dpkg/info/keyboard-configuration.list ] || \
+ [ -e /var/lib/live/config/keyboard-configuration ]
+ then
+ exit 0
+ fi
+
+ echo -n " keyboard-configuration"
+}
+
+Config ()
+{
+ if [ -n "${LIVE_KEYBOARD_LAYOUTS}" ]
+ then
+ echo "keyboard-configuration keyboard-configuration/layoutcode select ${LIVE_KEYBOARD_LAYOUTS}" >> /tmp/live-config.cfg
+
+ sed -i -e "s|^XKBLAYOUT=.*$|XKBLAYOUT=\"${LIVE_KEYBOARD_LAYOUTS}\"|" /etc/default/keyboard
+ fi
+
+ if [ -n "${LIVE_KEYBOARD_MODEL}" ]
+ then
+ echo "keyboard-configuration keyboard-configuration/modelcode select ${LIVE_KEYBOARD_MODEL}" >> /tmp/live-config.cfg
+
+ sed -i -e "s|^XKBMODEL=.*$|XKBMODEL=\"${LIVE_KEYBOARD_MODEL}\"|" /etc/default/keyboard
+ fi
+
+ if [ -n "${LIVE_KEYBOARD_OPTIONS}" ]
+ then
+ echo "keyboard-configuration keyboard-configuration/optionscode string ${LIVE_KEYBOARD_OPTIONS}" >> /tmp/live-config.cfg
+
+ sed -i -e "s|^XKBOPTIONS=.*$|XKBOPTIONS=\"${LIVE_KEYBOARD_OPTIONS}\"|" /etc/default/keyboard
+ fi
+
+ if [ -n "${LIVE_KEYBOARD_VARIANTS}" ]
+ then
+ echo "keyboard-configuration keyboard-configuration/variantcode select ${LIVE_KEYBOARD_VARIANTS}" >> /tmp/live-config.cfg
+
+ sed -i -e "s|^XKBVARIANT=.*$|XKBVARIANT=\"${LIVE_KEYBOARD_VARIANTS}\"|" /etc/default/keyboard
+ fi
+
+ if [ -e /tmp/live-config.cfg ]
+ then
+ debconf-set-selections < /tmp/live-config.cfg
+ rm -f /tmp/live-config.cfg
+
+ # Creating state file
+ touch /var/lib/live/config/keyboard-configuration
+ fi
+}
+
+Cmdline
+Init
+Config