From bff94cc1d22f6403ee4d44b217980fa84c10abbd Mon Sep 17 00:00:00 2001 From: ben Date: Mon, 5 May 2008 20:54:54 +0000 Subject: xmodmap2tastenaufkleber von Martin Engel upgedated git-svn-id: https://svn.neo-layout.org@498 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- .../xmodmap2tastenaufkleber.sh | 100 ++++++++++++++++----- 1 file changed, 78 insertions(+), 22 deletions(-) (limited to 'grafik/xmodmap2tastenaufkleber/xmodmap2tastenaufkleber.sh') diff --git a/grafik/xmodmap2tastenaufkleber/xmodmap2tastenaufkleber.sh b/grafik/xmodmap2tastenaufkleber/xmodmap2tastenaufkleber.sh index c624053..2583095 100644 --- a/grafik/xmodmap2tastenaufkleber/xmodmap2tastenaufkleber.sh +++ b/grafik/xmodmap2tastenaufkleber/xmodmap2tastenaufkleber.sh @@ -75,7 +75,6 @@ sed -n -e '/^keycode/p' $1 > ./tmp_$1 - #================================================ # Freistellen der Zeichen; der keycode bleibt als ID für die SVG-Datei vorhanden @@ -90,6 +89,9 @@ ex -s -c '%s/^[^0-9]\+//' -c '%s/=//' -c '%s/ \+/\t/g' -c '%s/\t\+/\t/g' -c "w! cat tmp_$1 | grep -v -E "^(9|51|65|66|94|113|115|116)[^0-9]" > tmp_$1 + + + #================================================ # Parsfreundlicheres Tablayout @@ -99,19 +101,41 @@ ex -s -c '%s/ \+/\t/g' -c '%s/\t\+/\t/g' -c "w! ./tmp_$1" -c 'q!' ./tmp_$1 #================================================ # Aufbereiten der keysymdef.h zum Nachschlagen des Zeichens +#ex -s -c '%s/^[^_]\+//' -c'%s/^_//' -c "w! ./tmp_keysymdef.h" -c 'q!' ./keysymdef.h +#cat ./tmp_keysymdef.h | sed -e '/^$/d' >./tmp_keysymdef.h ex -s -c '%s/^\([^_]\+\)_//' -c "w! ./tmp_keysymdef.h" -c 'q!' ./keysymdef.h -sed -n -e '/U+/p' ./tmp_keysymdef.h > tmptmp +#ex -s -c '%s/^#define XK_//' -c "w! ./tmp_keysymdef.h" -c 'q!' ./keysymdef.h + + +#cat ./tmp_keysymdef.h | sed -e '/^$/d' >./tmp_keysymdef.h +#sed -n -e '/U\+/p' ./tmp_keysymdef.h > tmp_tmp +sed -n -e '/U+/p' ./tmp_keysymdef.h > tmp_tmp -cp tmptmp tmp_keysymdef.h + +#cat ./tmp_keysymdef.h |grep tra +#cat tmp_tmp |grep tra +#exit 1 + +cp tmp_tmp tmp_keysymdef.h #=============================================== # Nachschlagen und Ersetzen von Symbolnamen -while read ZEILE; do +cp ./tmp_$1 ./tmp_analysiert_$1 + +while read -r ZEILE; do + +#debug +echo +echo ==================================================== +echo -e "\033[40;01;37m $ZEILE \033[0m" +echo ---------------------------------------------------- +echo -e "Tastencode ist \033[40;01;34m`echo $ZEILE | cut -d\ -f1`\033[0m ." + for ebene in `seq 2 8`; do @@ -120,6 +144,9 @@ for ebene in `seq 2 8`; do if [ -s ./tmp_symbolistleer ]; then +### #Tastensymbol ist Keypad -> gleiches Symbol wie normal +### ex -s -c "%s/^KP_//" -c 'w! ./tmp_symbolistleer' -c "q!" ./tmp_symbolistleer + Tastensymbol=`cat ./tmp_symbolistleer` cat ./tmp_keysymdef.h | grep "^$Tastensymbol " > ./tmp_keysymdef.h_buchstabenanalyse @@ -129,25 +156,36 @@ for ebene in `seq 2 8`; do if [ -s ./tmp_keysymdef.h_buchstabenanalyse ]; then if ( grep -q -i "U+" ./tmp_keysymdef.h_buchstabenanalyse ); then - echo -n »$Tastensymbol« hat laut keysymdef.h den Unicode U+ ex -s -c '%s/\(.\+\)U+/U+/g' -c '%s/U+\([^ ]\+\).\+/\1/g' -c "w! ./tmp_keysymdef.h_buchstabenanalyse" -c 'q!' ./tmp_keysymdef.h_buchstabenanalyse; if [ -s ./tmp_keysymdef.h_buchstabenanalyse ]; then - cat ./tmp_keysymdef.h_buchstabenanalyse + #cat ./tmp_keysymdef.h_buchstabenanalyse + echo -e "Mit Unicode \033[40;0;32mU+`cat ./tmp_keysymdef.h_buchstabenanalyse`\033[0m ist in keysymdef.h folgender Zeichenname verknüpft: »\033[40;0;32m$Tastensymbol\033[0m«." else - echo "ERROR" + echo -e "\033[40;0;31mERROR: Unicode in Datei keysymdef.h\033[0m" exit 1 fi - ex -s -c "%s/\t`cat ./tmp_symbolistleer`\t/\t\&\#x`cat ./tmp_keysymdef.h_buchstabenanalyse`;\t/g" -c "w! ./tmp_$1" -c 'q!' ./tmp_$1 - ex -s -c "%s/\t`cat ./tmp_symbolistleer`$/\t\&\#x`cat ./tmp_keysymdef.h_buchstabenanalyse`;\t/g" -c "w! ./tmp_$1" -c 'q!' ./tmp_$1 + ex -s -c "%s/\t`cat ./tmp_symbolistleer`\t/\t\&\#x`cat ./tmp_keysymdef.h_buchstabenanalyse`;\t/g" -c "w! ./tmp_analysiert_$1" -c 'q!' ./tmp_analysiert_$1 + ex -s -c "%s/\t`cat ./tmp_symbolistleer`$/\t\&\#x`cat ./tmp_keysymdef.h_buchstabenanalyse`;\t/g" -c "w! ./tmp_analysiert_$1" -c 'q!' ./tmp_analysiert_$1 + +### #Für KP_ gleiche Ersetzung +### + #### ex -s -c "%s/\tKP_`cat ./tmp_symbolistleer`\t/\t\&\#x`cat ./tmp_keysymdef.h_buchstabenanalyse`;\t/g" -c "w! ./tmp_$1" -c 'q!' ./tmp_$1 +### ex -s -c "%s/\tKP_`cat ./tmp_symbolistleer`$/\t\&\#x`cat ./tmp_keysymdef.h_buchstabenanalyse`;\t/g" -c "w! ./tmp_$1" -c 'q!' ./tmp_$1 else - echo »$Tastensymbol« hat in keysymdef.h keinen Unicode gelistet. + echo -e "\033[40;0;31m»$Tastensymbol« hat in keysymdef.h keinen Unicode gelistet. Deswegen wird der Text unmodifiziert übernommen.\033[0m" fi else - echo »$Tastensymbol« ist in keysymdef.h nicht gelistet. + if [ "${Tastensymbol/U[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f ]/Unicodezeichen}" == "Unicodezeichen" ] + then + echo -e "Der Unicode \033[40;0;32m ${Tastensymbol/U/U+} \033[0m aus $1 wird \033[40;0;32m übernommen \033[0m. \033[0m" + else + echo -e "\033[40;01;31m»$Tastensymbol« ist in keysymdef.h nicht gelistet. Tippfehler? Der Text wird unmodifiziert übernommen. \033[0m" + nichtgelistet="$nichtgelistet, »$Tastensymbol«" + fi fi else #Kein Tastensymbol in der aktuellen Ebene @@ -160,6 +198,9 @@ done; done < ./tmp_$1; +cp ./tmp_analysiert_$1 ./tmp_$1 + + #=============================================== # Unicodezeichen im xmodmaplayout für SVG aufbereiten # Alle Daten die mit einem großen U beginen! @@ -193,12 +234,12 @@ echo "transform=\"translate($X_Translation,$Y_Translation)\" x=\"0\" y=\"0\" / echo $ZEILE | awk '{ printf "> ./tmp_svg_$1 echo "transform=\"translate($X_Translation,$Y_Translation)\" >" >> ./tmp_svg_$1 -echo $ZEILE | awk '{print " "$2""}' >> ./tmp_svg_$1 -echo $ZEILE | awk '{print " "$3""}' >> ./tmp_svg_$1 -echo $ZEILE | awk '{print " "$4""}' >> ./tmp_svg_$1 -echo $ZEILE | awk '{print " "$5""}' >> ./tmp_svg_$1 -echo $ZEILE | awk '{print " "$6""}' >> ./tmp_svg_$1 -echo $ZEILE | awk '{print " "$7""}' >> ./tmp_svg_$1 +echo $ZEILE | awk '{print " "$3""}' >> ./tmp_svg_$1 +echo $ZEILE | awk '{print " "$5""}' >> ./tmp_svg_$1 +echo $ZEILE | awk '{print " "$2""}' >> ./tmp_svg_$1 +echo $ZEILE | awk '{print " "$4""}' >> ./tmp_svg_$1 +echo $ZEILE | awk '{print " "$6""}' >> ./tmp_svg_$1 +echo $ZEILE | awk '{print " "$8""}' >> ./tmp_svg_$1 echo "" >> ./tmp_svg_$1 @@ -221,31 +262,46 @@ echo "" >> ./tmp_svg_$1 ex -s -c '%s/&#x;//g' -c "w! ./tmp_svg_$1" -c 'q!' ./tmp_svg_$1 +#====================== +# Fehleranzeige + +if [ -n "$nichtgelistet" ]; then +echo +echo +echo -e "\033[40;01;31mFehlerbericht\033[0m" +echo +echo Folgende Bezeichner wurden nicht in der keysymdef.h gefunden und wurden unabgeändert übernommen: +echo -e "\033[40;01;31m ${nichtgelistet/, /}\033[0m " +echo +echo +fi #======================= # Dateiausgabe +echo + if [ $# -gt 1 ]; then if echo $2 | grep "\.svg$" ; then # svg-datei mit .svg-suffix cp tmp_svg_$1 $2 - echo "Die SVG-Datei $2 wurde angelegt." >&2 + echo -e "Die SVG-Datei \033[40;01;370m$2\033[0m wurde geschrieben." >&2 else # svg-datei ohne .svg-suffix cp tmp_svg_$1 $2.svg - echo "Die SVG-Datei $2.svg wurde angelegt." >&2 + echo -e "Die SVG-Datei \033[40;01;370m$2.svg\033[0m wurde geschrieben." >&2 fi else # keine svg-datei cp tmp_svg_$1 $1.svg - echo "Die SVG-Datei $1.svg wurde angelegt." >&2 + echo -e "Die SVG-Datei \033[40;01;370m$1.svg\033[0m wurde geschrieben." >&2 fi - +echo #======================== # debug -#rm ./tmp_* +rm ./tmp_* -- cgit v1.2.3