summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/bin/README.txt10
-rwxr-xr-xlinux/bin/wiemitneo100
2 files changed, 110 insertions, 0 deletions
diff --git a/linux/bin/README.txt b/linux/bin/README.txt
index a4395ca..92c3105 100644
--- a/linux/bin/README.txt
+++ b/linux/bin/README.txt
@@ -17,3 +17,13 @@ Gibt die Neo-Tastaturbelegung des Ziffernblocks aus. Beispiele:
»num 3« – gibt die dritte Ebene der Tastaturbelegung aus
»num 2 3 4« – gibt die zweite, dritte und vierte Ebene aus
usw.
+
+== wiemitneo ==
+Gibt an, ob und wie ein Zeichen mit NEO ermöglicht werden kann. Beispiele:
+ »wiemitneo @« ergibt:
+-------------------------------
+@ erreicht man mit Mod3+y
+
+Außerdem ist @ über Compose folgendermaßen darstellbar:
+<Multi_key> + <A> + <T>
+------------------------------- \ No newline at end of file
diff --git a/linux/bin/wiemitneo b/linux/bin/wiemitneo
new file mode 100755
index 0000000..79d7d5e
--- /dev/null
+++ b/linux/bin/wiemitneo
@@ -0,0 +1,100 @@
+#!/bin/sh
+
+# Verzeichnis muss eventuell an den Ort der neo20.txt angepasst werden:
+COMPOSE=/usr/share/X11/locale/en_US.UTF-8/Compose
+REFERENZ=$HOME/neo/A-REFERENZ-A/neo20.txt
+
+zeichen=$1
+# suche nach diesem Zeichen
+typeset -i z s e
+# z=zeile, s=spalte, e=Ebene
+
+find=`grep -m 1 -B 15 "┴──────┘" $REFERENZ | grep [│\ ]$zeichen[│\ ] | head -1 | cut -f1 -d \ `
+anzahl=`grep -m 1 -B 15 "┴──────┘" $REFERENZ | grep -n [│\ ]$zeichen[│\ ] | wc -l`
+if [ $find ]
+then
+# $zeichen gibt es direkt auf der Tastatur bei Ebene $e auf der Taste $ursprung
+
+ for i in $(seq 1 $anzahl)
+ do
+# eventuell mehrfach auf der Tastatur vorhanden
+ e=1
+ zeile=`grep -m 1 -B 15 "┴──────┘" $REFERENZ | grep -n [│\ ]$zeichen[│\ ] | head -$i | tail -1 | cut -f1 -d:`
+ spalte=`grep -m 1 -B 15 "┴──────┘" $REFERENZ | grep [│\ ]$zeichen[│\ ] | head -$i | tail -1| cut -f1 -d $zeichen | wc -m`
+ z=$((zeile))
+ s=$((spalte))
+
+ teste=`grep -m 1 -B 15 "┴──────┘" $REFERENZ | head -$z | tail -1 | cut -c $s`
+ while [ ! "$teste" = "─" ] && [ ! "$teste" = "┬" ]
+ do
+# finde Zeile z von $ursprung (=Tastenname), berechne die Ebene $e von $zeichen
+ z=z+1
+ e=e+1
+ ursprung=$teste
+ teste=`grep -m 1 -B 15 "┴──────┘" $REFERENZ | head -$z | tail -1 | cut -c $s`
+ done
+
+ teste=$ursprung
+ z=z-1
+ e=e-1
+ while [ ! "$teste" = "│" ]
+ do
+# finde Spalte s von $ursprung (=Tastenname), berechne die Ebene $e von $zeichen
+ s=s-1
+ e=e+1
+ ursprung=$teste
+ teste=`grep -m 1 -B 15 "┴──────┘" $REFERENZ | head -$z | tail -1 | cut -c $s`
+ done
+ e=e-1
+
+ case $e in
+ 1)
+ echo $zeichen ist eine eigene Taste
+ ;;
+ 2)
+ echo $zeichen erreicht man mit Shift+$ursprung
+ ;;
+ 3)
+ echo $zeichen erreicht man mit Mod3+$ursprung
+ ;;
+ 4)
+ echo $zeichen erreicht man mit Mod4+$ursprung
+ ;;
+ 5)
+ echo $zeichen erreicht man mit Shift+Mod3+$ursprung
+ ;;
+ 6)
+ echo $zeichen erreicht man mit Mod3+Mod4+$ursprung
+ ;;
+ esac
+
+ done
+
+else
+# $zeichen gibt es nicht direkt auf der Tastatur
+ keinetaste=1
+fi
+
+
+such=\"$zeichen\"
+find=`grep $such $COMPOSE | head -1 | cut -f1 -d \ `
+if [ $find ]
+then
+# $zeichen gibt es als Compose
+ if [ "$keinetaste" = "1" ]
+ then
+ echo $zeichen ist nicht direkt auf der NEO-Tastatur
+ echo
+ echo Aber $zeichen ist über Compose folgendermaßen darstellbar:
+ else
+ echo
+ echo Außerdem ist $zeichen über Compose folgendermaßen darstellbar:
+ fi
+ grep $such $COMPOSE | cut -f1 -d: | sed -e 's/> </> + </g'
+else
+# $zeichen gibt es nicht als Compose
+ if [ "$keinetaste" = "1" ]
+ then
+ echo $zeichen kann man mit der NEO nicht erzeugen
+ fi
+fi \ No newline at end of file