#!/bin/bash function fix_keysym { FIXED_KEYSYM=${1//+/__PLUS__} FIXED_KEYSYM=${FIXED_KEYSYM//-/__MINUS__} } unset MODKEY DEFKEY exec evdev_key_c_table.txt unset ${!ED2X_*} while read KEYNAME KEYNUM EVDEVSYM XNAME ; do if test "${KEYNAME:0:1}" = \" ; then KEYNUM=${KEYNUM//\"} KEYNAME=${KEYNAME//\"} XNAME=${XNAME//\"} ED2X_KEYNAME[$KEYNUM]=$KEYNAME ED2X_XNAME[$KEYNUM]=$XNAME fi done for (( i=0 ; i<512 ; i++ )) ; do XK=XK_${ED2X_XNAME[$i]} XK=${XK/XK_XF86/XF86XK} XK=${XK/XK_Sun/SunXK} XK=${XK/XK_ap/apXK} KEYNAME=${ED2X_KEYNAME[$i]} if test "$XK" = XK_ ; then XK=NoSymbol KEYNAME="not assigned" fi if test $i -ge 256 ; then SPAC1=" " else SPAC1=" " fi if test $i -lt 128 ; then # Map NumPad specially if test "$XK" != "${XK#XK_KP_}" ; then XK=${DEFKEY[$i]} fi SPAC2=" " SPAC2=${SPAC2:0:2-(${#XK}+1)/8} SPAC3=" " SPAC3=${SPAC3:0:2-(${#MODKEY[$i]}+1)/8} echo " /* $(printf 0x%02x $i) */ $XK,$SPAC2${MODKEY[$i]},$SPAC3/* $KEYNAME */" else SPAC2=" " SPAC2=${SPAC2:0:3-(${#XK}+1)/8} echo " /* $(printf 0x%02x $i) */ $XK,$SPAC2/* $KEYNAME */" fi done