summaryrefslogtreecommitdiffstats
path: root/source/a/kbd
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/kbd')
-rwxr-xr-xsource/a/kbd/kbd.SlackBuild177
-rw-r--r--source/a/kbd/setconsolefont384
-rw-r--r--source/a/kbd/setup.setconsolefont10
-rw-r--r--source/a/kbd/slack-desc19
-rw-r--r--source/a/kbd/sources/kbd-1.15-keycodes-man.patch52
-rw-r--r--source/a/kbd/sources/kbd-1.15-po.patch31
-rw-r--r--source/a/kbd/sources/kbd-1.15-quiet_doc.patch34
-rw-r--r--source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch15
-rw-r--r--source/a/kbd/sources/kbd-1.15-sparc.patch97
-rw-r--r--source/a/kbd/sources/kbd-1.15-unicode_start.patch21
-rw-r--r--source/a/kbd/sources/kbd-1.15.tar.bz2.sign8
-rw-r--r--source/a/kbd/sources/nl.euro.diff10
-rw-r--r--source/a/kbd/sources/speakupmap.map308
13 files changed, 1166 insertions, 0 deletions
diff --git a/source/a/kbd/kbd.SlackBuild b/source/a/kbd/kbd.SlackBuild
new file mode 100755
index 000000000..7ac0b142f
--- /dev/null
+++ b/source/a/kbd/kbd.SlackBuild
@@ -0,0 +1,177 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=kbd
+VERSION=1.15
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-3}
+
+NUMJOBS=${NUMJOBS:--j4}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-kbd
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+
+# Add some extra fonts:
+( cd $PKG ; explodepkg $CWD/sources/extraf.tgz )
+
+# Extract source:
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/sources/$PKGNAM-$VERSION.tar.bz2
+cd $PKGNAM-$VERSION
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . -perm 666 -exec chmod 644 {} \;
+find . -perm 664 -exec chmod 644 {} \;
+find . -perm 600 -exec chmod 644 {} \;
+find . -perm 444 -exec chmod 644 {} \;
+find . -perm 400 -exec chmod 644 {} \;
+find . -perm 440 -exec chmod 644 {} \;
+find . -perm 777 -exec chmod 755 {} \;
+find . -perm 775 -exec chmod 755 {} \;
+find . -perm 511 -exec chmod 755 {} \;
+find . -perm 711 -exec chmod 755 {} \;
+find . -perm 555 -exec chmod 755 {} \;
+
+# Apply patches:
+# These are taken from Fedora's SRPM:
+zcat $CWD/sources/kbd-1.15-po.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-keycodes-man.patch | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-sparc.patch | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-unicode_start.patch | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-resizecon-x86_64.patch | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-quiet_doc.patch | patch -p1 --verbose || exit 1
+
+# This is from Fedora's spec file:
+# 7-bit maps are obsolete; so are non-euro maps
+( cd data/keymaps/i386
+ mv qwerty/fi.map qwerty/fi-old.map
+ cp -fav qwerty/fi-latin9.map qwerty/fi.map
+ cp -fav qwerty/pt-latin9.map qwerty/pt.map
+ cp -fav qwerty/sv-latin1.map qwerty/se-latin1.map
+ mv -fv azerty/fr.map azerty/fr-old.map
+ cp -fav azerty/fr-latin9.map azerty/fr.map
+ cp -fav azerty/fr-latin9.map azerty/fr-latin0.map # legacy alias
+
+ # Rename conflicting keymaps
+ mv -fv dvorak/no.map dvorak/no-dvorak.map
+ mv -fv fgGIod/trf.map fgGIod/trf-fgGIod.map
+ mv -fv olpc/es.map olpc/es-olpc.map
+ mv -fv olpc/pt.map olpc/pt-olpc.map
+ mv -fv qwerty/cz.map qwerty/cz-qwerty.map )
+
+# Apply a euro fix for the nl.map from alienBOB:
+zcat $CWD/sources/nl.euro.diff.gz | patch -p1 || exit 1
+
+# Configure:
+./configure \
+ --prefix=/usr \
+ --localedir=/usr/share/locale/ \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --datadir=/usr/share/kbd \
+ --enable-nls || exit 1
+
+# Build:
+make $NUMJOBS || exit 1
+
+# Install into package:
+make install DESTDIR=$PKG || exit 1
+# This is where it's always been in Slackware, so let's move it back:
+( cd $PKG
+ mkdir -vpm755 bin
+ mv -fv usr/bin/loadkeys bin/
+ cd usr/bin ; ln -vsf ../../bin/loadkeys . )
+
+# ro_win.map.gz is useless
+rm -fv $PKG/usr/share/kbd/keymaps/i386/qwerty/ro_win.map.gz
+
+# The rhpl keyboard layout table is indexed by kbd layout names, so we need a
+# Korean keyboard
+ln -vfs us.map.gz $PKG/usr/share/kbd/keymaps/i386/qwerty/ko.map.gz
+
+# Install the setup script that will be run from the Slackware installer:
+mkdir -pm755 $PKG/var/log/setup
+install -vpm755 $CWD/setup.setconsolefont $PKG/var/log/setup/
+install -vpm755 $CWD/setconsolefont $PKG/usr/bin/
+
+# Copy docs:
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ ChangeLog COPYING README doc/* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+rm -f $PKG/usr/doc/$PKGNAM-$VERSION/kbd.FAQ.sgml
+
+# Additional keymaps:
+# This is the keymap for Speakup (http://linux-speakup.org) users:
+cat $CWD/sources/speakupmap.map.gz > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakupmap.map.gz
+# Another keymap for Speakup from Thomas Ward, for JFW users.
+tar xvf $CWD/sources/speakup-jfw.tar.gz
+( cd speakup-jfw
+ cat speakup-jfw.map | gzip -9c > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakup-jfw.map.gz
+ cat readme > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakup-jfw.readme )
+
+# Create the default run control script which will set the
+# console font to the default:
+mkdir -pm755 $PKG/etc/rc.d
+cat << EOF > $PKG/etc/rc.d/rc.font.new
+#!/bin/sh
+#
+# This selects your default screen font from among the ones in
+# /usr/share/kbd/consolefonts.
+#
+setfont -v
+EOF
+chmod 755 $PKG/etc/rc.d/rc.font.new
+
+# Create package post-install script:
+mkdir -p $PKG/install
+cat << EOF > $PKG/install/doinst.sh
+#if [ -r etc/rc.d/rc.font ]; then
+# rm -f etc/rc.d/rc.font.new
+#else
+# mv etc/rc.d/rc.font.new etc/rc.d/rc.font
+#fi
+EOF
+
+# Compress man pages:
+( cd $PKG/usr/man
+ find . -name "*.?" -type f | xargs gzip -9
+)
+
+# Install package description:
+install -vpm644 $CWD/slack-desc $PKG/install/
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+cd $PKG
+makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+#EOF
diff --git a/source/a/kbd/setconsolefont b/source/a/kbd/setconsolefont
new file mode 100644
index 000000000..d4cfb875a
--- /dev/null
+++ b/source/a/kbd/setconsolefont
@@ -0,0 +1,384 @@
+#!/bin/sh
+
+# 06-May-2009
+# Updated by Stuart Winter <mozes@slackware.com>
+# Run 'setfont' in a chroot. This makes setfont work
+# correctly in the installer.
+
+if [ "$TMP" = "" ]; then
+ TMP=/var/log/setup/tmp
+fi
+
+load_font() {
+ if [ ! -z "$T_PX" ]; then
+ CHROOT="chroot $T_PX"
+ fi
+
+ $CHROOT setfont $*
+ if [ ! $? = 0 ]; then
+ if [ -r $T_PX/usr/share/kbd/consolefonts/$1 ]; then
+ $CHROOT setfont $T_PX/usr/share/kbd/consolefonts/$* 1> /dev/null 2> /dev/null
+ elif [ -r $T_PX/usr/lib/kbd/consolefonts/$1 ]; then
+ $CHROOT setfont $T_PX/usr/lib/kbd/consolefonts/$* 1> /dev/null 2> /dev/null
+ elif [ -r /var/adm/mount/live/usr/lib/kbd/consolefonts/$1 ]; then
+ $CHROOT setfont /var/adm/mount/live/usr/lib/kbd/consolefonts/$* 1> /dev/null 2> /dev/null
+ else # load default font
+ $CHROOT setfont
+ fi
+ fi
+}
+
+# Determine effective root path:
+if [ -r $TMP/SeTT_PX ]; then
+ T_PX="`cat $TMP/SeTT_PX`"
+elif [ ! "$1" = "" ]; then
+ T_PX=$1
+else
+ T_PX=/
+fi
+
+if [ ! "$COLOR" = "off" -o -r $TMP/SeTcolor -o -r /tmp/SeTcolor ]; then # use color menus
+ if [ ! "$1" = "" ]; then
+ dialog --title "CONSOLE FONT CONFIGURATION" --defaultno --yesno "Would you like to try \
+out some custom screen fonts?" 5 60
+ if [ $? = 1 ]; then
+ exit
+ fi
+ fi
+ REPLY=`mktemp -q $TMP/temp.XXXXXX`
+ FONT="161.cp.gz -16"
+ while [ 0 ]; do
+ dialog --default-item "$FONT" --title "SELECT A SCREEN FONT" --menu "Select one of the following \
+custom fonts. If you decide you like it, you can make it your new default \
+screen font. You'll be able to try as many of these as you like." 21 65 12 \
+"161.cp.gz -16" "" \
+"162.cp.gz -16" "" \
+"163.cp.gz -16" "" \
+"164.cp.gz -16" "" \
+"165.cp.gz -16" "" \
+"737.cp.gz -16" "" \
+"880.cp.gz -16" "" \
+"928.cp.gz -16" "" \
+"972.cp.gz -16" "" \
+"Agafari-12.psfu.gz" "" \
+"Agafari-14.psfu.gz" "" \
+"Agafari-16.psfu.gz" "" \
+"Cyr_a8x14.psfu.gz" "" \
+"Cyr_a8x16.psfu.gz" "" \
+"Cyr_a8x8.psfu.gz" "" \
+"Goha-12.psfu.gz" "" \
+"Goha-14.psfu.gz" "" \
+"Goha-16.psfu.gz" "" \
+"GohaClassic-12.psfu.gz" "" \
+"GohaClassic-14.psfu.gz" "" \
+"GohaClassic-16.psfu.gz" "" \
+"Lat2-Terminus16.psfu.gz" "" \
+"LatArCyrHeb-08.psfu.gz" "" \
+"LatArCyrHeb-14.psfu.gz" "" \
+"LatArCyrHeb-16+.psfu.gz" "" \
+"LatArCyrHeb-16.psfu.gz" "" \
+"LatArCyrHeb-19.psfu.gz" "" \
+"Mik_8x16.gz" "" \
+"UniCyrExt_8x16.psf.gz" "" \
+"UniCyr_8x14.psf.gz" "" \
+"UniCyr_8x16.psf.gz" "" \
+"UniCyr_8x8.psf.gz" "" \
+"alt-8x14.gz" "" \
+"alt-8x16.gz" "" \
+"alt-8x8.gz" "" \
+"altc-8x16.gz" "" \
+"aply16.psf.gz" "" \
+"arm8.fnt.gz" "" \
+"b.fnt.gz" "" \
+"c.fnt.gz" "" \
+"cp1250.psfu.gz" "" \
+"cp850-8x14.psfu.gz" "" \
+"cp850-8x16.psfu.gz" "" \
+"cp850-8x8.psfu.gz" "" \
+"cp857.08.gz" "" \
+"cp857.14.gz" "" \
+"cp857.16.gz" "" \
+"cp865-8x14.psfu.gz" "" \
+"cp865-8x16.psfu.gz" "" \
+"cp865-8x8.psfu.gz" "" \
+"cp866-8x14.psf.gz" "" \
+"cp866-8x16.psf.gz" "" \
+"cp866-8x8.psf.gz" "" \
+"cybercafe.fnt.gz" "" \
+"cyr-sun16.psfu.gz" "" \
+"default8x16.psfu.gz" "" \
+"default8x9.psfu.gz" "" \
+"drdos8x14.psfu.gz" "" \
+"drdos8x16.psfu.gz" "" \
+"drdos8x6.psfu.gz" "" \
+"drdos8x8.psfu.gz" "" \
+"gr737a-8x8.psfu.gz" "" \
+"gr737a-9x14.psfu.gz" "" \
+"gr737a-9x16.psfu.gz" "" \
+"gr737b-8x11.psfu.gz" "" \
+"gr737b-9x16-medieval.psfu.gz" "" \
+"gr737c-8x14.psfu.gz" "" \
+"gr737c-8x16.psfu.gz" "" \
+"gr737c-8x6.psfu.gz" "" \
+"gr737c-8x7.psfu.gz" "" \
+"gr737c-8x8.psfu.gz" "" \
+"gr737d-8x16.psfu.gz" "" \
+"gr928-8x16-thin.psfu.gz" "" \
+"gr928-9x14.psfu.gz" "" \
+"gr928-9x16.psfu.gz" "" \
+"gr928a-8x14.psfu.gz" "" \
+"gr928a-8x16.psfu.gz" "" \
+"gr928b-8x14.psfu.gz" "" \
+"gr928b-8x16.psfu.gz" "" \
+"greek-polytonic.psfu.gz" "" \
+"iso01-12x22.psfu.gz" "" \
+"iso01.08.gz" "" \
+"iso01.14.gz" "" \
+"iso01.16.gz" "" \
+"iso02-12x22.psfu.gz" "" \
+"iso02.08.gz" "" \
+"iso02.14.gz" "" \
+"iso02.16.gz" "" \
+"iso03.08.gz" "" \
+"iso03.14.gz" "" \
+"iso03.16.gz" "" \
+"iso04.08.gz" "" \
+"iso04.14.gz" "" \
+"iso04.16.gz" "" \
+"iso05.08.gz" "" \
+"iso05.14.gz" "" \
+"iso05.16.gz" "" \
+"iso06.08.gz" "" \
+"iso06.14.gz" "" \
+"iso06.16.gz" "" \
+"iso07.14.gz" "" \
+"iso07.16.gz" "" \
+"iso07u-16.psfu.gz" "" \
+"iso08.08.gz" "" \
+"iso08.14.gz" "" \
+"iso08.16.gz" "" \
+"iso09.08.gz" "" \
+"iso09.14.gz" "" \
+"iso09.16.gz" "" \
+"iso10.08.gz" "" \
+"iso10.14.gz" "" \
+"iso10.16.gz" "" \
+"koi8-14.psf.gz" "" \
+"koi8c-8x16.gz" "" \
+"koi8r-8x14.gz" "" \
+"koi8r-8x16.gz" "" \
+"koi8r-8x8.gz" "" \
+"koi8r.8x8.psfu.gz" "" \
+"koi8u_8x14.psfu.gz" "" \
+"koi8u_8x16.psfu.gz" "" \
+"koi8u_8x8.psfu.gz" "" \
+"lat0-08.psfu.gz" "" \
+"lat0-10.psfu.gz" "" \
+"lat0-12.psfu.gz" "" \
+"lat0-14.psfu.gz" "" \
+"lat0-16.psfu.gz" "" \
+"lat1-08.psfu.gz" "" \
+"lat1-10.psfu.gz" "" \
+"lat1-12.psfu.gz" "" \
+"lat1-14.psfu.gz" "" \
+"lat1-16.psfu.gz" "" \
+"lat2-08.psfu.gz" "" \
+"lat2-10.psfu.gz" "" \
+"lat2-12.psfu.gz" "" \
+"lat2-14.psfu.gz" "" \
+"lat2-16.psfu.gz" "" \
+"lat2a-16.psfu.gz" "" \
+"lat4-08.psfu.gz" "" \
+"lat4-10.psfu.gz" "" \
+"lat4-12.psfu.gz" "" \
+"lat4-14.psfu.gz" "" \
+"lat4-16+.psfu.gz" "" \
+"lat4-16.psfu.gz" "" \
+"lat4-19.psfu.gz" "" \
+"lat4a-08.psfu.gz" "" \
+"lat4a-10.psfu.gz" "" \
+"lat4a-12.psfu.gz" "" \
+"lat4a-14.psfu.gz" "" \
+"lat4a-16+.psfu.gz" "" \
+"lat4a-16.psfu.gz" "" \
+"lat4a-19.psfu.gz" "" \
+"lat5-12.psfu.gz" "" \
+"lat5-14.psfu.gz" "" \
+"lat5-16.psfu.gz" "" \
+"lat7-14.psfu.gz" "" \
+"lat7a-14.psfu.gz" "" \
+"lat7a-16.psf.gz" "" \
+"lat9-08.psf.gz" "" \
+"lat9-10.psf.gz" "" \
+"lat9-12.psf.gz" "" \
+"lat9-14.psf.gz" "" \
+"lat9-16.psf.gz" "" \
+"lat9u-08.psfu.gz" "" \
+"lat9u-10.psfu.gz" "" \
+"lat9u-12.psfu.gz" "" \
+"lat9u-14.psfu.gz" "" \
+"lat9u-16.psfu.gz" "" \
+"lat9v-08.psfu.gz" "" \
+"lat9v-10.psfu.gz" "" \
+"lat9v-12.psfu.gz" "" \
+"lat9v-14.psfu.gz" "" \
+"lat9v-16.psfu.gz" "" \
+"lat9w-08.psfu.gz" "" \
+"lat9w-10.psfu.gz" "" \
+"lat9w-12.psfu.gz" "" \
+"lat9w-14.psfu.gz" "" \
+"lat9w-16.psfu.gz" "" \
+"m.fnt.gz" "" \
+"ml.fnt.gz" "" \
+"mod_d.fnt.gz" "" \
+"mod_s.fnt.gz" "" \
+"mr.fnt.gz" "" \
+"mu.fnt.gz" "" \
+"r.fnt.gz" "" \
+"rl.fnt.gz" "" \
+"ro.fnt.gz" "" \
+"ruscii_8x16.psfu.gz" "" \
+"ruscii_8x8.psfu.gz" "" \
+"s.fnt.gz" "" \
+"sc.fnt.gz" "" \
+"scrawl_s.fnt.gz" "" \
+"scrawl_w.fnt.gz" "" \
+"sd.fnt.gz" "" \
+"sun12x22.psfu.gz" "" \
+"t.fnt.gz" "" \
+"t850b.fnt.gz" "" \
+"tcvn8x16.psf.gz" "" \
+"viscii10-8x16.psfu.gz" "" \
+2> $REPLY
+ if [ ! $? = 0 ]; then
+ load_font
+ exit
+ fi
+ FONT=`cat $REPLY`
+ rm -f $REPLY
+ load_font $FONT
+ dialog --title "SET AS DEFAULT FONT" --yesno "Well, what do you think? \
+If you'd like to make this your default font, select YES. You can change \
+the default font any time by typing 'setconsolefont' or by editing \
+/etc/rc.d/rc.font. If you don't \
+like this font, select NO, and you'll be returned to the font selection \
+menu. If you decide you want to stick with the default font, hit ESC or \
+CANCEL once you get to that menu." 11 60
+ if [ $? = 0 ]; then
+ cat << EOF > $T_PX/etc/rc.d/rc.font
+#!/bin/sh
+#
+# This selects your default screen font from among the ones in
+# /usr/share/kbd/consolefonts.
+#
+setfont -v $FONT
+EOF
+ chmod 755 $T_PX/etc/rc.d/rc.font
+ exit
+ else
+ load_font
+ fi
+ done
+else # no color!
+ echo
+ echo -n "Would you like to try out some custom screen fonts ([y]es, [n]o)? "
+ read YESNO;
+ if [ "$YESNO" = "n" ]; then
+ exit
+ fi
+ while [ 0 ]; do
+ cat << EOF
+
+SELECT A SCREEN FONT. Your choices are:
+161.cp.gz 162.cp.gz 163.cp.gz 164.cp.gz 165.cp.gz 737.cp.gz 880.cp.gz 928.cp.gz
+972.cp.gz Agafari-12.psfu.gz Agafari-14.psfu.gz Agafari-16.psfu.gz
+Cyr_a8x14.psfu.gz Cyr_a8x16.psfu.gz Cyr_a8x8.psfu.gz Goha-12.psfu.gz
+Goha-14.psfu.gz Goha-16.psfu.gz GohaClassic-12.psfu.gz GohaClassic-14.psfu.gz
+GohaClassic-16.psfu.gz Lat2-Terminus16.psfu.gz LatArCyrHeb-08.psfu.gz
+LatArCyrHeb-14.psfu.gz LatArCyrHeb-16+.psfu.gz LatArCyrHeb-16.psfu.gz
+LatArCyrHeb-19.psfu.gz Mik_8x16.gz UniCyrExt_8x16.psf.gz UniCyr_8x14.psf.gz
+UniCyr_8x16.psf.gz UniCyr_8x8.psf.gz alt-8x14.gz alt-8x16.gz alt-8x8.gz
+altc-8x16.gz aply16.psf.gz arm8.fnt.gz b.fnt.gz c.fnt.gz cp1250.psfu.gz
+cp850-8x14.psfu.gz cp850-8x16.psfu.gz cp850-8x8.psfu.gz cp857.08.gz cp857.14.gz
+cp857.16.gz cp865-8x14.psfu.gz cp865-8x16.psfu.gz cp865-8x8.psfu.gz
+cp866-8x14.psf.gz cp866-8x16.psf.gz cp866-8x8.psf.gz cybercafe.fnt.gz
+cyr-sun16.psfu.gz default8x16.psfu.gz default8x9.psfu.gz drdos8x14.psfu.gz
+drdos8x16.psfu.gz drdos8x6.psfu.gz drdos8x8.psfu.gz gr737a-8x8.psfu.gz
+gr737a-9x14.psfu.gz gr737a-9x16.psfu.gz gr737b-8x11.psfu.gz
+gr737b-9x16-medieval.psfu.gz gr737c-8x14.psfu.gz gr737c-8x16.psfu.gz
+gr737c-8x6.psfu.gz gr737c-8x7.psfu.gz gr737c-8x8.psfu.gz gr737d-8x16.psfu.gz
+gr928-8x16-thin.psfu.gz gr928-9x14.psfu.gz gr928-9x16.psfu.gz
+gr928a-8x14.psfu.gz gr928a-8x16.psfu.gz gr928b-8x14.psfu.gz gr928b-8x16.psfu.gz
+greek-polytonic.psfu.gz iso01-12x22.psfu.gz iso01.08.gz iso01.14.gz iso01.16.gz
+iso02-12x22.psfu.gz iso02.08.gz iso02.14.gz iso02.16.gz iso03.08.gz iso03.14.gz
+iso03.16.gz iso04.08.gz iso04.14.gz iso04.16.gz iso05.08.gz iso05.14.gz
+iso05.16.gz iso06.08.gz iso06.14.gz iso06.16.gz iso07.14.gz iso07.16.gz
+iso07u-16.psfu.gz iso08.08.gz iso08.14.gz iso08.16.gz iso09.08.gz iso09.14.gz
+iso09.16.gz iso10.08.gz iso10.14.gz iso10.16.gz koi8-14.psf.gz koi8c-8x16.gz
+koi8r-8x14.gz koi8r-8x16.gz koi8r-8x8.gz koi8r.8x8.psfu.gz koi8u_8x14.psfu.gz
+koi8u_8x16.psfu.gz koi8u_8x8.psfu.gz lat0-08.psfu.gz lat0-10.psfu.gz
+lat0-12.psfu.gz lat0-14.psfu.gz lat0-16.psfu.gz lat1-08.psfu.gz lat1-10.psfu.gz
+lat1-12.psfu.gz lat1-14.psfu.gz lat1-16.psfu.gz lat2-08.psfu.gz lat2-10.psfu.gz
+lat2-12.psfu.gz lat2-14.psfu.gz lat2-16.psfu.gz lat2a-16.psfu.gz lat4-08.psfu.gz
+lat4-10.psfu.gz lat4-12.psfu.gz lat4-14.psfu.gz lat4-16+.psfu.gz lat4-16.psfu.gz
+lat4-19.psfu.gz lat4a-08.psfu.gz lat4a-10.psfu.gz lat4a-12.psfu.gz
+lat4a-14.psfu.gz lat4a-16+.psfu.gz lat4a-16.psfu.gz lat4a-19.psfu.gz
+lat5-12.psfu.gz lat5-14.psfu.gz lat5-16.psfu.gz lat7-14.psfu.gz lat7a-14.psfu.gz
+lat7a-16.psf.gz lat9-08.psf.gz lat9-10.psf.gz lat9-12.psf.gz lat9-14.psf.gz
+lat9-16.psf.gz lat9u-08.psfu.gz lat9u-10.psfu.gz lat9u-12.psfu.gz
+lat9u-14.psfu.gz lat9u-16.psfu.gz lat9v-08.psfu.gz lat9v-10.psfu.gz
+lat9v-12.psfu.gz lat9v-14.psfu.gz lat9v-16.psfu.gz lat9w-08.psfu.gz
+lat9w-10.psfu.gz lat9w-12.psfu.gz lat9w-14.psfu.gz lat9w-16.psfu.gz m.fnt.gz
+ml.fnt.gz mod_d.fnt.gz mod_s.fnt.gz mr.fnt.gz mu.fnt.gz r.fnt.gz rl.fnt.gz
+ro.fnt.gz ruscii_8x16.psfu.gz ruscii_8x8.psfu.gz s.fnt.gz sc.fnt.gz
+scrawl_s.fnt.gz scrawl_w.fnt.gz sd.fnt.gz sun12x22.psfu.gz t.fnt.gz t850b.fnt.gz
+tcvn8x16.psf.gz viscii10-8x16.psfu.gz
+
+EOF
+ echo -n "Which font would you like (or ENTER to quit)? "
+ read FONT;
+ if [ "$FONT" = "" ]; then
+ load_font
+ echo
+ exit
+ fi
+ if [ ! -r $T_PX/usr/share/kbd/consolefonts/$FONT -a ! -r \
+ /var/adm/mount/usr/share/kbd/consolefonts/$FONT ]; then
+ cat << EOF
+
+Sorry, I couldn't find that font. Try again.
+
+EOF
+ fi
+ load_font $FONT
+ cat << EOF
+
+SET AS DEFAULT FONT
+
+Well, what do you think? If you'd like to make this your default font, select
+YES. You can change the default font any time by typing 'setconsolefont' or by
+editing /etc/rc.d/rc.font. If you don't like this font, select NO, and you'll
+be able to select a different one. If you decide you want to stick with the
+default font, hit RETURN once you return to the font selection menu.
+
+EOF
+ echo -n "Would you like to have this font loaded by default ([y]es, [n]o)? "
+ read DEF
+ if [ "$DEF" = "YES" -o "$DEF" = "y" ]; then
+ cat << EOF > $T_PX/etc/rc.d/rc.font
+#!/bin/sh
+#
+# This selects your default screen font from among the ones in
+# /usr/share/kbd/consolefonts.
+#
+setfont -v $FONT
+EOF
+ chmod 755 $T_PX/etc/rc.d/rc.font
+ echo
+ exit
+ else
+ load_font
+ fi
+ echo
+ done
+fi
diff --git a/source/a/kbd/setup.setconsolefont b/source/a/kbd/setup.setconsolefont
new file mode 100644
index 000000000..615cbaab0
--- /dev/null
+++ b/source/a/kbd/setup.setconsolefont
@@ -0,0 +1,10 @@
+#!/bin/sh
+#BLURB="Select a font for the console"
+
+# These platforms are headless so we don't need to configure
+# this package.
+#
+# Silently exit if we find ourselves on one of these platforms
+egrep -q "SheevaPlug" /proc/cpuinfo > /dev/null 2>&1 && exit
+
+sh usr/bin/setconsolefont $*
diff --git a/source/a/kbd/slack-desc b/source/a/kbd/slack-desc
new file mode 100644
index 000000000..d912c1126
--- /dev/null
+++ b/source/a/kbd/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+kbd: kbd (keyboard maps and console fonts)
+kbd:
+kbd: Load and save keyboard mappings. Needed if you are not using the US
+kbd: keyboard map. This package also contains utilities to change your
+kbd: console fonts - if you install it you'll get a menu later on that lets
+kbd: you select from many different fonts. If you like one, you can make
+kbd: it your default font. A new default font can be chosen at any time by
+kbd: typing 'setconsolefont'.
+kbd:
+kbd:
+kbd:
diff --git a/source/a/kbd/sources/kbd-1.15-keycodes-man.patch b/source/a/kbd/sources/kbd-1.15-keycodes-man.patch
new file mode 100644
index 000000000..d18a8c8b5
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-keycodes-man.patch
@@ -0,0 +1,52 @@
+diff -up kbd-1.15/man/man1/showkey.1_old kbd-1.15/man/man1/showkey.1
+--- kbd-1.15/man/man1/showkey.1_old 2008-03-13 17:46:23.000000000 +0100
++++ kbd-1.15/man/man1/showkey.1 2008-12-10 12:31:38.000000000 +0100
+@@ -80,6 +80,19 @@ corresponds to what the keyboard hardwar
+ to know the scan codes sent by various keys it is better to boot a
+ 2.4 kernel. Since 2.6.9 there also is the boot option atkbd.softraw=0
+ that tells the 2.6 kernel to return the actual scan codes.
++
++.SH NOTES
++The raw scan codes are available only on AT and PS/2 keyboards,
++and even then they are disabled unless the
++.B atkbd.softraw=0
++kernel parameter is used.
++When the raw scan codes are not available, the kernel uses a fixed built-in
++table to produce scan codes from keycodes. Thus,
++.BR setkeycodes (8)
++can affect the output of
++.B showkey
++in scan code dump mode.
++
+ .SH "SEE ALSO"
+ .BR loadkeys (1),
+ .BR dumpkeys (1),
+diff -up kbd-1.15/man/man8/setkeycodes.8_old kbd-1.15/man/man8/setkeycodes.8
+--- kbd-1.15/man/man8/setkeycodes.8_old 2008-12-10 12:31:56.000000000 +0100
++++ kbd-1.15/man/man8/setkeycodes.8 2008-12-10 12:37:36.000000000 +0100
+@@ -41,6 +41,10 @@ to showkey(1), the command
+ will assign the keycode 112 to it, and then loadkeys(1) can be used
+ to define the function of this key.
+
++USB keyboards have standardized keycodes and
++.B setkeycodes
++doesn't affect them at all.
++
+ .SH "2.6 KERNELS"
+ In 2.6 kernels key codes lie in the range 1-255, instead of 1-127.
+ (It might be best to confine oneself to the range 1-239.)
+@@ -54,6 +58,14 @@ None.
+ .SH BUGS
+ The keycodes of X have nothing to do with those of Linux.
+ Unusual keys can be made visible under Linux, but not under X.
++
++.B setkeycodes
++affects only the "first" input device
++that has modifiable scancode-to-keycode mapping.
++If there is more than one such device,
++.B setkeycodes
++cannot change the mapping of other devices than the "first" one.
++
+ .SH "SEE ALSO"
+ .I "dumpkeys (1), loadkeys (1), showkey (1), getkeycodes (8)"
+
diff --git a/source/a/kbd/sources/kbd-1.15-po.patch b/source/a/kbd/sources/kbd-1.15-po.patch
new file mode 100644
index 000000000..0221f60c9
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-po.patch
@@ -0,0 +1,31 @@
+diff -up kbd-1.15/po/Makefile.in_old kbd-1.15/po/Makefile.in
+--- kbd-1.15/po/Makefile.in_old 2008-10-23 21:03:59.000000000 +0200
++++ kbd-1.15/po/Makefile.in 2008-12-09 15:35:58.000000000 +0100
+@@ -4,10 +4,10 @@ srcdir = @srcdir@
+
+ prefix = @prefix@
+ datarootdir = @datarootdir@
+-datadir = @datadir@
+-localedir = $(DESTDIR)$(datadir)/locale
+-gnulocaledir = $(DESTDIR)$(datadir)/locale
+-gettextsrcdir = $(DESTDIR)$(datadir)/gettext/po
++datadir = $(DESTDIR)@datadir@
++localedir = $(DESTDIR)@localedir@
++gnulocaledir = $(DESTDIR)@localedir@
++gettextsrcdir = $(datadir)/gettext/po
+
+ FOREIGN = @FOREIGN@
+ HAVE_XGETTEXT = @HAVE_XGETTEXT@
+@@ -36,10 +36,10 @@ INCLUDES = -I.. -I$(INTL)
+ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+ # Enter here all .po files
+-POFILES = cs.po da.po de.po el.po es.po fr.po gr.po nl.po pl.po \
++POFILES = cs.po da.po de.po el.po es.po fr.po nl.po pl.po \
+ ro.po ru.po sv.po tr.po
+ # the same but with .gmo
+-GMOFILES = cs.gmo da.gmo de.gmo el.gmo es.gmo fr.gmo gr.gmo nl.gmo \
++GMOFILES = cs.gmo da.gmo de.gmo el.gmo es.gmo fr.gmo nl.gmo \
+ pl.gmo ro.gmo ru.gmo sv.gmo tr.gmo
+
+ CATALOGS = $(GMOFILES)
diff --git a/source/a/kbd/sources/kbd-1.15-quiet_doc.patch b/source/a/kbd/sources/kbd-1.15-quiet_doc.patch
new file mode 100644
index 000000000..eca867b85
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-quiet_doc.patch
@@ -0,0 +1,34 @@
+diff -up kbd-1.15/man/man1/loadkeys.1.in_old kbd-1.15/man/man1/loadkeys.1.in
+--- kbd-1.15/man/man1/loadkeys.1.in_old 2008-10-23 21:03:59.000000000 +0200
++++ kbd-1.15/man/man1/loadkeys.1.in 2009-03-05 13:11:08.000000000 +0100
+@@ -19,6 +19,8 @@ loadkeys \- load keyboard translation ta
+ ] [
+ .I -m --mktable
+ ] [
++.I -q --quiet
++] [
+ .I -s --clearstrings
+ ] [
+ .I -v --verbose
+@@ -148,6 +150,10 @@ command (and does not modify the current
+ .B loadkeys
+ prints its version number and a short usage message to the programs
+ standard error output and exits.
++.TP
++.B \-q \-\-quiet
++.B loadkeys
++suppresses all normal output.
+ .SH WARNING
+ Note that anyone having read access to
+ .B /dev/console
+diff -up kbd-1.15/src/loadkeys.c_old kbd-1.15/src/loadkeys.c
+--- kbd-1.15/src/loadkeys.c_old 2008-10-23 21:03:59.000000000 +0200
++++ kbd-1.15/src/loadkeys.c 2009-03-05 13:09:00.000000000 +0100
+@@ -1966,6 +1966,7 @@ usage(void) {
+ " -d --default load \"%s\"\n"
+ " -h --help display this help text\n"
+ " -m --mktable output a \"defkeymap.c\" to stdout\n"
++" -q --quiet suppress all normal output\n"
+ " -s --clearstrings clear kernel string table\n"
+ " -u --unicode implicit conversion to Unicode\n"
+ " -v --verbose report the changes\n"), PACKAGE_VERSION, DEFMAP);
diff --git a/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch b/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch
new file mode 100644
index 000000000..5e8350a86
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch
@@ -0,0 +1,15 @@
+diff -up kbd-1.15/configure_old kbd-1.15/configure
+--- kbd-1.15/configure_old 2009-01-08 15:11:04.000000000 +0100
++++ kbd-1.15/configure 2009-01-08 15:11:45.000000000 +0100
+@@ -7637,8 +7637,9 @@ fi
+
+
+ case $host_cpu in
+- i?86*) RESIZECONS_PROGS=yes ;;
+- *) RESIZECONS_PROGS=no ;;
++ i?86*) RESIZECONS_PROGS=yes ;;
++ x86_64*) RESIZECONS_PROGS=yes ;;
++ *) RESIZECONS_PROGS=no ;;
+ esac
+ if test "$RESIZECONS_PROGS" = "yes"; then
+ RESIZECONS_PROGS_TRUE=
diff --git a/source/a/kbd/sources/kbd-1.15-sparc.patch b/source/a/kbd/sources/kbd-1.15-sparc.patch
new file mode 100644
index 000000000..a858a253a
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-sparc.patch
@@ -0,0 +1,97 @@
+diff -up kbd-1.15/man/man8/kbdrate.8_old kbd-1.15/man/man8/kbdrate.8
+--- kbd-1.15/man/man8/kbdrate.8_old 2008-12-10 14:20:33.000000000 +0100
++++ kbd-1.15/man/man8/kbdrate.8 2008-12-10 14:41:10.000000000 +0100
+@@ -22,7 +22,7 @@ Using
+ without any options will reset the repeat rate to 10.9 characters per second (cps)
+ and the delay to 250 milliseconds (ms) for Intel- and M68K-based systems.
+ These are the IBM defaults. On SPARC-based systems it will reset the repeat rate
+-to 5 cps and the delay to 200 ms.
++to 20 cps and the delay to 200 ms.
+
+ .SH OPTIONS
+ .TP
+@@ -69,3 +69,5 @@ When these ioctls fail an ioport interfa
+ .I /etc/rc.local
+ .br
+ .I /dev/port
++.br
++.I /dev/kbd
+diff -up kbd-1.15/src/kbdrate.c_old kbd-1.15/src/kbdrate.c
+--- kbd-1.15/src/kbdrate.c_old 2008-12-10 14:00:25.000000000 +0100
++++ kbd-1.15/src/kbdrate.c 2008-12-10 14:20:11.000000000 +0100
+@@ -77,7 +77,6 @@ beats rebuilding the kernel!
+
+ #ifdef __sparc__
+ #include <asm/param.h>
+-#include <asm/kbio.h>
+ #endif
+
+ #ifndef KDKBDREP
+@@ -109,11 +108,15 @@ static int valid_delays[] = { 250, 500,
+
+ static int
+ KDKBDREP_ioctl_ok(double rate, int delay, int silent) {
++#if defined(KDKBDREP) && !defined(__sparc__)
+ /*
+ * This ioctl is defined in <linux/kd.h> but is not
+ * implemented anywhere - must be in some m68k patches.
++ * We cannot blindly try unimplemented ioctls on sparc64 -
++ * the 32<->64bit transition layer does not like it.
+ * Since 2.4.9 also on i386.
+- */
++ */
++
+ struct my_kbd_repeat kbdrep_s;
+
+ /* don't change, just test */
+@@ -177,6 +180,9 @@ KDKBDREP_ioctl_ok(double rate, int delay
+ rate, kbdrep_s.delay );
+
+ return 1; /* success! */
++#else /* no KDKBDREP or __sparc__ */
++ return 0;
++#endif /* KDKBDREP */
+ }
+
+ static int
+@@ -221,7 +227,7 @@ sigalrmhandler( int sig ) {
+ int
+ main( int argc, char **argv ) {
+ #ifdef __sparc__
+- double rate = 5.0; /* Default rate */
++ double rate = 20.0; /* Default rate */
+ int delay = 200; /* Default delay */
+ #else
+ double rate = 10.9; /* Default rate */
+@@ -272,7 +278,9 @@ main( int argc, char **argv ) {
+
+
+ /* The ioport way */
++ /* The ioport way - will crash on sparc */
+
++#ifndef __sparc__
+ for (i = 0; i < RATE_COUNT; i++)
+ if (rate * 10 >= valid_rates[i]) {
+ value &= 0x60;
+@@ -335,5 +343,7 @@ main( int argc, char **argv ) {
+ valid_rates[value & 0x1f] / 10.0,
+ valid_delays[ (value & 0x60) >> 5 ] );
+
++#endif
++
+ return 0;
+ }
+diff -up kbd-1.15/src/setleds.c_old kbd-1.15/src/setleds.c
+--- kbd-1.15/src/setleds.c_old 2008-12-10 14:00:02.000000000 +0100
++++ kbd-1.15/src/setleds.c 2008-12-10 14:00:16.000000000 +0100
+@@ -14,10 +14,6 @@
+ #include "nls.h"
+ #include "version.h"
+
+-#ifdef __sparc__
+-#include <asm/kbio.h>
+-#endif
+-
+ static void
+ usage(void)
+ {
diff --git a/source/a/kbd/sources/kbd-1.15-unicode_start.patch b/source/a/kbd/sources/kbd-1.15-unicode_start.patch
new file mode 100644
index 000000000..d3dab3fe3
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-unicode_start.patch
@@ -0,0 +1,21 @@
+diff -up kbd-1.15/src/unicode_start_old kbd-1.15/src/unicode_start
+--- kbd-1.15/src/unicode_start_old 2009-01-08 13:34:10.000000000 +0100
++++ kbd-1.15/src/unicode_start 2009-01-08 14:02:12.000000000 +0100
+@@ -72,6 +72,9 @@ stty iutf8
+ # have a Unicode map attached, or explicitly specified, e.g.,
+ # by giving `def.uni' as a second argument.
+
++DEFAULT_UNICODE_FONT=LatArCyrHeb-16
++# Also drdos8x16 is a good candidate.
++
+ case "$#" in
+ 2)
+ setfont "$1" -u "$2"
+@@ -80,6 +83,7 @@ case "$#" in
+ setfont "$1"
+ ;;
+ 0)
++ setfont $DEFAULT_UNICODE_FONT
+ ;;
+ *)
+ echo "usage: unicode_start [font [unicode map]]"
diff --git a/source/a/kbd/sources/kbd-1.15.tar.bz2.sign b/source/a/kbd/sources/kbd-1.15.tar.bz2.sign
new file mode 100644
index 000000000..39388b383
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15.tar.bz2.sign
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.9 (GNU/Linux)
+Comment: See http://www.kernel.org/signature.html for info
+
+iD8DBQBJj684yGugalF9Dw4RAqQuAJ9fBsk3RWp6BT4UWHjceFn5YuEBygCff3dW
+qo/ACrIhyBx/eiZEpao8N4o=
+=0zxS
+-----END PGP SIGNATURE-----
diff --git a/source/a/kbd/sources/nl.euro.diff b/source/a/kbd/sources/nl.euro.diff
new file mode 100644
index 000000000..655a7e228
--- /dev/null
+++ b/source/a/kbd/sources/nl.euro.diff
@@ -0,0 +1,10 @@
+--- ./data/keymaps/i386/qwerty/nl.map.orig 2004-01-03 09:01:22.000000000 -0800
++++ ./data/keymaps/i386/qwerty/nl.map 2004-05-29 21:16:31.000000000 -0700
+@@ -12,6 +12,7 @@
+ keymaps 0-6,8-9,12
+ alt_is_meta
+ include "qwerty-layout"
++ altgr keycode 18 = euro
+ altgr keycode 19 = paragraph
+ altgr keycode 31 = ssharp
+ altgr keycode 44 = guillemotleft
diff --git a/source/a/kbd/sources/speakupmap.map b/source/a/kbd/sources/speakupmap.map
new file mode 100644
index 000000000..9c73e35df
--- /dev/null
+++ b/source/a/kbd/sources/speakupmap.map
@@ -0,0 +1,308 @@
+# us.map
+# with some additions from quinlan@spectrum.cs.bucknell.edu (Daniel Quinlan)
+# 14 Mar 1994
+keymaps 0-2,4-6,8,9,12,13
+keycode 1 = Escape Escape
+ alt keycode 1 = Meta_Escape
+keycode 2 = one exclam
+ alt keycode 2 = Meta_one
+ alt shift keycode 2 = Meta_exclam
+keycode 3 = two at at
+ control keycode 3 = nul
+ control shift keycode 3 = nul
+ alt keycode 3 = Meta_two
+ alt shift keycode 3 = Meta_at
+keycode 4 = three numbersign
+ control keycode 4 = Escape
+ alt keycode 4 = Meta_three
+ alt shift keycode 4 = Meta_numbersign
+keycode 5 = four dollar dollar
+ control keycode 5 = Control_backslash
+ alt keycode 5 = Meta_four
+ alt shift keycode 5 = Meta_dollar
+keycode 6 = five percent
+ control keycode 6 = Control_bracketright
+ alt keycode 6 = Meta_five
+ alt shift keycode 6 = Meta_percent
+keycode 7 = six asciicircum
+ control keycode 7 = Control_asciicircum
+ alt keycode 7 = Meta_six
+ alt shift keycode 7 = Meta_asciicircum
+keycode 8 = seven ampersand braceleft
+ control keycode 8 = Control_underscore
+ alt keycode 8 = Meta_seven
+keycode 9 = eight asterisk bracketleft
+ control keycode 9 = Delete
+ alt keycode 9 = Meta_eight
+keycode 10 = nine parenleft bracketright
+ alt keycode 10 = Meta_nine
+keycode 11 = zero parenright braceright
+ alt keycode 11 = Meta_zero
+keycode 12 = minus underscore backslash
+ control keycode 12 = Control_underscore
+ control shift keycode 12 = Control_underscore
+ alt keycode 12 = Meta_minus
+keycode 13 = equal plus
+ alt keycode 13 = Meta_equal
+keycode 14 = Delete Delete
+ alt keycode 14 = Meta_Delete
+keycode 15 = Tab Tab
+ alt keycode 15 = Meta_Tab
+keycode 16 = q
+keycode 17 = w
+keycode 18 = e
+keycode 19 = r
+keycode 20 = t
+keycode 21 = y
+keycode 22 = u
+keycode 23 = i
+keycode 24 = o
+keycode 25 = p
+keycode 26 = bracketleft braceleft
+ control keycode 26 = Escape
+ alt keycode 26 = Meta_bracketleft
+ alt shift keycode 26 = Meta_braceleft
+keycode 27 = bracketright braceright asciitilde
+ control keycode 27 = Control_bracketright
+ alt keycode 27 = Meta_bracketright
+ alt shift keycode 27 = Meta_braceright
+keycode 28 = Return
+ alt keycode 28 = 0x080d
+keycode 29 = Control
+keycode 30 = a
+keycode 31 = s
+keycode 32 = d
+keycode 33 = f
+keycode 34 = g
+keycode 35 = h
+keycode 36 = j
+keycode 37 = k
+keycode 38 = l
+keycode 39 = semicolon colon
+ alt keycode 39 = Meta_semicolon
+keycode 40 = apostrophe quotedbl
+ control keycode 40 = Control_g
+ alt keycode 40 = Meta_apostrophe
+keycode 41 = grave asciitilde
+ control keycode 41 = nul
+ alt keycode 41 = Meta_grave
+keycode 42 = Shift
+keycode 43 = backslash bar
+ control keycode 43 = Control_backslash
+ alt keycode 43 = Meta_backslash
+ alt shift keycode 43 = Meta_bar
+keycode 44 = z
+keycode 45 = x
+keycode 46 = c
+keycode 47 = v
+keycode 48 = b
+keycode 49 = n
+keycode 50 = m
+keycode 51 = comma less
+ alt keycode 51 = Meta_comma
+ alt shift keycode 51 = Meta_less
+keycode 52 = period greater
+ alt keycode 52 = Meta_period
+ alt shift keycode 52 = Meta_greater
+keycode 53 = slash question
+ control keycode 53 = Delete
+ alt keycode 53 = Meta_slash
+keycode 54 = Shift
+keycode 55 = 0x0d26
+#keycode 55 = KP_Multiply
+ altgr keycode 55 = 0x0406
+keycode 56 = Alt
+keycode 57 = space space
+ control keycode 57 = nul
+ alt keycode 57 = Meta_space
+keycode 58 = Caps_Lock
+keycode 59 = F1 F11 Console_13
+ control keycode 59 = F1
+ alt keycode 59 = Console_1
+ control alt keycode 59 = Console_1
+keycode 60 = F2 F12 Console_14
+ control keycode 60 = F2
+ alt keycode 60 = Console_2
+ control alt keycode 60 = Console_2
+keycode 61 = F3 F13 Console_15
+ control keycode 61 = F3
+ alt keycode 61 = Console_3
+ control alt keycode 61 = Console_3
+keycode 62 = F4 F14 Console_16
+ control keycode 62 = F4
+ alt keycode 62 = Console_4
+ control alt keycode 62 = Console_4
+keycode 63 = F5 F15 Console_17
+ control keycode 63 = F5
+ alt keycode 63 = Console_5
+ control alt keycode 63 = Console_5
+keycode 64 = F6 F16 Console_18
+ control keycode 64 = F6
+ alt keycode 64 = Console_6
+ control alt keycode 64 = Console_6
+keycode 65 = F7 F17 Console_19
+ control keycode 65 = F7
+ alt keycode 65 = Console_7
+ control alt keycode 65 = Console_7
+keycode 66 = F8 F18 Console_20
+ control keycode 66 = F8
+ alt keycode 66 = Console_8
+ control alt keycode 66 = Console_8
+keycode 67 = F9 F19 Console_21
+ control keycode 67 = F9
+ alt keycode 67 = Console_9
+ control alt keycode 67 = Console_9
+keycode 68 = F10 F20 Console_22
+ control keycode 68 = F10
+ alt keycode 68 = Console_10
+ control alt keycode 68 = Console_10
+keycode 69 = Num_Lock
+keycode 70 = Scroll_Lock Show_Memory Show_Registers
+ control keycode 70 = Show_State
+ alt keycode 70 = Scroll_Lock
+keycode 71 = 0x0d0b
+ altgr keycode 71 = 0x0d0f
+#keycode 71 = KP_7
+ alt keycode 71 = Ascii_7
+keycode 72 = 0x0d0a
+ altgr keycode 72 = 0x0d20
+#keycode 72 = KP_8
+ alt keycode 72 = Ascii_8
+keycode 73 = 0x0d0c
+ altgr keycode 73 = 0x0d0d
+#keycode 73 = KP_9
+ alt keycode 73 = Ascii_9
+keycode 74 = 0x0d1e
+ altgr keycode 74 = 0x0d24
+keycode 75 = 0x0d08
+ altgr keycode 75 = 0x0d22
+#keycode 75 = KP_4
+ alt keycode 75 = Ascii_4
+keycode 76 = 0x0d07
+#keycode 76 = KP_5
+ altgr keycode 76 = 0x0d12
+ alt keycode 76 = Ascii_5
+keycode 77 = 0x0d09
+ altgr keycode 77 = 0x0d23
+#keycode 77 = KP_6
+ alt keycode 77 = Ascii_6
+#keycode 78 = KP_Add
+keycode 78 = 0x0d14
+ altgr keycode 78 = 0x0d21
+keycode 79 = 0x0d05
+#keycode 79 = KP_1
+ altgr keycode 79 = 0x0d10
+ alt keycode 79 = Ascii_1
+keycode 80 = 0x0d04
+#keycode 80 = KP_2
+ altgr keycode 80 = 0x0d11
+ alt keycode 80 = Ascii_2
+keycode 81 = 0x0d06
+ altgr keycode 81 = 0x0d0e
+#keycode 81 = KP_3
+ alt keycode 81 = Ascii_3
+#keycode 82 = 0x0d14
+keycode 82 = AltGr
+#keycode 82 = KP_0
+ alt keycode 82 = Ascii_0
+#keycode 83 = KP_Period
+keycode 83 = 0x0d1b
+ altgr keycode 83 = 0x0d1d
+ altgr control keycode 83 = Boot
+ control alt keycode 83 = Boot
+keycode 84 = Last_Console
+keycode 85 =
+keycode 86 = less greater bar
+ alt keycode 86 = Meta_less
+keycode 87 = F11 F11 Console_23
+ control keycode 87 = F11
+ alt keycode 87 = Console_11
+ control alt keycode 87 = Console_11
+keycode 88 = F12 F12 Console_24
+ control keycode 88 = F12
+ alt keycode 88 = Console_12
+ control alt keycode 88 = Console_12
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 = 0x0d03
+ altgr keycode 96 = 0x0d1c
+#keycode 96 = KP_Enter
+keycode 97 = Control
+keycode 98 = 0x0d27
+#keycode 98 = KP_Divide
+ altgr keycode 98 = 0x0d28
+#keycode 99 = Control_backslash
+keycode 99 = 0x0d25
+ control keycode 99 = Control_backslash
+ alt keycode 99 = Control_backslash
+keycode 100 = Alt
+keycode 101 = Break
+keycode 102 = Find
+keycode 103 = Up
+keycode 104 = Prior
+ shift keycode 104 = Scroll_Backward
+keycode 105 = Left
+ alt keycode 105 = Decr_Console
+keycode 106 = Right
+ alt keycode 106 = Incr_Console
+keycode 107 = Select
+keycode 108 = Down
+keycode 109 = Next
+ shift keycode 109 = Scroll_Forward
+keycode 110 = Insert
+keycode 111 = Remove
+ altgr control keycode 111 = Boot
+ control alt keycode 111 = Boot
+keycode 112 =
+keycode 113 =
+keycode 114 =
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
+string F1 = "\033[[A"
+string F2 = "\033[[B"
+string F3 = "\033[[C"
+string F4 = "\033[[D"
+string F5 = "\033[[E"
+string F6 = "\033[17~"
+string F7 = "\033[18~"
+string F8 = "\033[19~"
+string F9 = "\033[20~"
+string F10 = "\033[21~"
+string F11 = "\033[23~"
+string F12 = "\033[24~"
+string F13 = "\033[25~"
+string F14 = "\033[26~"
+string F15 = "\033[28~"
+string F16 = "\033[29~"
+string F17 = "\033[31~"
+string F18 = "\033[32~"
+string F19 = "\033[33~"
+string F20 = "\033[34~"
+string Find = "\033[1~"
+string Insert = "\033[2~"
+string Remove = "\033[3~"
+string Select = "\033[4~"
+string Prior = "\033[5~"
+string Next = "\033[6~"
+string F21 = ""
+string F22 = ""
+string F23 = ""
+string F24 = ""
+string F25 = ""
+string F26 = ""