#!/bin/sh set -e # Source debconf library. . /usr/share/debconf/confmodule # The same as /usr/bin/which - in order to make "which" available before # /usr is mounted which () { local IFS IFS=: for i in $PATH; do if [ -x "$i/$1" ]; then echo "$i/$1" return 0 fi done return 1 } # In d-i the config script is not executed automatically if [ -f /usr/share/console-setup/keyboard-configuration.config ]; then /usr/share/console-setup/keyboard-configuration.config || exit $? fi ## KEYBOARD_PRESENT ## Will be replaced by keyboard_present function # keyboard_present () { # if there is a keyboard; then # return 0 # else # return 1 # fi # } CONFIGFILE=/etc/default/keyboard if [ "$1" = "configure" -a ! -L "$CONFIGFILE" ]; then db_get keyboard-configuration/modelcode model="$RET" db_get keyboard-configuration/layoutcode layout="$RET" db_get keyboard-configuration/variantcode variant="$RET" db_get keyboard-configuration/optionscode options="$RET" if [ ! -e $CONFIGFILE ]; then cat /usr/share/console-setup/keyboard \ 2>/dev/null >$CONFIGFILE || true fi # Ensure we do not mess up the config file's ownership and permissions. cp -a -f $CONFIGFILE $CONFIGFILE.tmp # If the admin deleted or commented some variables but then set # them via debconf, (re-)add them to the conffile. for var in XKBMODEL XKBLAYOUT XKBVARIANT XKBOPTIONS BACKSPACE; do if ! grep "^ *${var}=" $CONFIGFILE >/dev/null; then echo "${var}=" >>$CONFIGFILE fi done sed \ -e "s|^ *XKBMODEL=.*|XKBMODEL=\"$model\"|" \ -e "s|^ *XKBLAYOUT=.*|XKBLAYOUT=\"$layout\"|" \ -e "s|^ *XKBVARIANT=.*|XKBVARIANT=\"$variant\"|" \ -e "s|^ *XKBOPTIONS=.*|XKBOPTIONS=\"$options\"|" \ -e "s|^ *BACKSPACE=.*|BACKSPACE=\"${BACKSPACE:-guess}\"|" \ <$CONFIGFILE >$CONFIGFILE.tmp mv -f $CONFIGFILE.tmp $CONFIGFILE db_set keyboard-configuration/store_defaults_in_debconf_db true fi if \ [ -d /lib/debian-installer.d ] && keyboard_present then if [ "$DISPLAY" ] && which setxkbmap >/dev/null; then setxkbmap -option '' -model "$model" "$layout" "$variant" "$options" else case "`uname`" in GNU) [ ! -f /var/run/hurd-console.pid ] || kill `cat /var/run/hurd-console.pid` ;; *) setupcon --force --save ;; esac fi fi if ! [ -d /lib/debian-installer.d ]; then dpkg-maintscript-helper rm_conffile \ /etc/init.d/keyboard-setup 1.138~ -- "$@" dpkg-maintscript-helper rm_conffile \ /etc/init.d/console-setup 1.138~ -- "$@" fi #DEBHELPER#