opnsense-tools/freesbie2/extra/xconfig-probe/xkbdlayout.sh

76 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2002-2004 G.U.F.I.
# Copyright (c) 2005 Matteo Riondato & Dario Freni
#
# See COPYING for licence terms-
#
# $Id: xkbdlayout.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# X keyboard selection script
X11_ETCPATH=/etc/X11
LOCKFILE=${X11_ETCPATH}/.xkbdsel.keep
X_CFG=${X11_ETCPATH}/xorg.conf
if [ ! -f /usr/X11R6/bin/X -o ! -f ${X_CFG} ]; then
exit
fi
if [ ! -e ${LOCKFILE} ]; then
touch ${LOCKFILE}
else
exit
fi
# Create Xkbd Layout Dialog
DIALOG_FILE=$BASEDIR/usr/local/share/xconfig/xkbddialog.sh
LAYOUT_DIR="/usr/X11R6/lib/X11/xkb/rules/"
if [ -e $LAYOUT_DIR/xorg.lst ]; then
LAYOUT_FILE=$LAYOUT_DIR/xorg.lst
else
exit 1
fi
TMPFILE=$(mktemp -t xorg.lst)
awk 'BEGIN{ORS=" "}{
if ($1 == "!") {
if ($2 == "layout") {
getline;
while ($0 != "!" && $0 != "") {
print $1 " \"" $2 "\"";
getline;
}
}
}
}' $LAYOUT_FILE > $TMPFILE
ARG=$(cat $TMPFILE)
CMD='dialog --title "FreeSBIE X.org Layout" \
--menu "Choose your preferred keyboard layout" 22 50 15 \
'${ARG}'2> '$TMPFILE
set +e
# Running dialog, overwriting TMPFILE
eval "$CMD"
retval=$?
set -e
if [ $retval = 1 ]; then
echo "Canceled"
rm ${LOCKFILE}
exit 1
fi
LAYOUT=$(cat $TMPFILE)
#Re use the TMPFILE
cp ${X_CFG} ${TMPFILE}
sed "s/\"us\"/\"${LAYOUT}\"/" ${TMPFILE} > ${X_CFG}
rm ${TMPFILE}