#!/bin/sh # # xkb2svg.sh # author: lucky [at] zankt [dot] net # license: GPL OUTPUT=$1.svg echo ' ' > $OUTPUT x=150; y=0 cat $1 | sed '/.*key <\|xkb_symbols/!d;/\/\//d;' | while read line do if [[ "$line" =~ 'xkb_symbols(.*)' ]];then echo "$line" | sed 's/^[^"]*"//;s/".*//' else echo -e ''"\n"'' >> $OUTPUT k=3;j=3;l="white" for i in $(echo $line | sed 's/^[^\[]*\[[[:space:]]*//;s/\].*//;s/\,[[:space:]]*/\t/g') do uni=$(cat ./keysymdef.h | sed "/^#define XK_$i /!d;s/^#define XK_$i[[:space:]]*0\|[[:space:]]*\/\*.*//g") if [ ${#uni} -eq 5 ];then echo -e '&#'"$uni"';' >> $OUTPUT else echo "$i is not in keysymdef.h" fi l="black" if [ $j -eq 9 ];then k=$(($k+5)) j=3; else j=9 fi done echo '' >> $OUTPUT fi if [ $x -gt 1800 ]; then y=$(($y+200)) x=0 else x=$(($x+150)) fi done echo '' >> $OUTPUT exit 0