summaryrefslogtreecommitdiffstats
path: root/windows/autohotkey/neo20-all-in-one.ahk
diff options
context:
space:
mode:
authorstmayer <stmayer@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2008-07-18 11:34:22 +0000
committerstmayer <stmayer@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2008-07-18 11:34:22 +0000
commitc0cea650f1e0672c0160fb512ce392255c2984a4 (patch)
tree77f0c5ccc153cc1fe55aaef9ea91dcf8007e2e83 /windows/autohotkey/neo20-all-in-one.ahk
parent60d0a071c9d6d7517fdf29e9fcc74721170f18d8 (diff)
ahk: „all-in-one“ bei Dateiname entfernt, .bat entsprechend angepasst
git-svn-id: https://svn.neo-layout.org@674 b9310e46-f624-0410-8ea1-cfbb3a30dc96
Diffstat (limited to 'windows/autohotkey/neo20-all-in-one.ahk')
-rw-r--r--windows/autohotkey/neo20-all-in-one.ahk5184
1 files changed, 0 insertions, 5184 deletions
diff --git a/windows/autohotkey/neo20-all-in-one.ahk b/windows/autohotkey/neo20-all-in-one.ahk
deleted file mode 100644
index 43ef6b4..0000000
--- a/windows/autohotkey/neo20-all-in-one.ahk
+++ /dev/null
@@ -1,5184 +0,0 @@
-/*
-*******************************************
-
-
-
-WICHTIGE WARNUNG:
-
-Dies ist inzwischen eine automatisch generierte
-Datei! Sie wird regelmäßig überschrieben und
-sollte deshalb nicht mehr direkt bearbeitet werden!
-
-
-
-DIE AUSFÜHRBARE DATEI AKTUALISIEREN:
-
-Um die neo20-all-in-one.exe auf den neuesten Stand zu
-bringen, reicht (wenn Autohotkey im Standardverzeichnis
-installiert wurde) ein Doppelklick auf die Batch-Datei
-Build-Update.bat
-
-
-
-HINWEISE FÜR AHK-ENTWICKLER:
-
-Anstatt dieser Datei müssen die Dateien/Module im
-Source-Unterverzeichnis bearbeitet werden, etwa:
-Source\Changelog-and-Todo.ahk
-Source\Keys-Neo.ahk
-Source\Keys-Qwert-to-Neo.ahk
-Source\Methods-Layers.ahk
-Source\Methods-Lights.ahk
-
-Um die gemachten Änderungen zu testen, sollte die Datei
-Source\All.ahk
-verwendet werden, die alle Module einbindet und
-regulär durch einen Doppelklick mit dem AHK-Interpreter
-gestartet werden kann.
-
-Der grosse Vorteil dieser Methode liegt daran, dass sich die
-Zeilennummern eventueller Fehlermeldungen nicht mehr auf
-die grosse "vereinigte" AHK-Datei, sondern auf die tatsäch-
-lich relevanten Module beziehen, z.B.:
-
-Error at line 64 in #include file "C:\...\autohotkey\Source\Methods-Lights.ahk"
-Line Text: CTL_CODE_LED(p_device_type, p_function, p_method, p_access)
-Error: Functions cannot contain functions.
-The programm will exit.
-
-
-
-AHK-LINKS
-
-Eine kurze Einführung (Installation und Beispielscipt) findet man etwa auf
-http://www.kikizas.net/en/usbapps.ahk.html
-
-Eine alphabetische Liste aller erlaubten Kommandos findet man online unter
-http://www.autohotkey.com/docs/commands.htm
-
-
-
-*******************************************
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/*
-*******************************************
-DU BIST GEWARNT WORDEN!
-*******************************************
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/*
- Titel: NEO 2.0 beta Autohotkey-Treiber
- $Revision$
- $Date$
- Autor: Stefan Mayer <stm (at) neo-layout.org>
- Basiert auf: neo20-all-in-one.ahk vom 29.06.2007
-
- TODO: - ausgiebig testen... (besonders Vollständigkeit bei Deadkeys)
- - Bessere Lösung für das leeren von PriorDeadKey finden, damit die Sondertasten
- nicht mehr abgefangen werden müssen.
- - Testen ob die Capslocklösung (siehe *1:: ebene 1) auch für Numpad gebraucht wird
- - Sind Ebenen vom Touchpad noch richtig?
- - Die Bildschirmtastatur mit Mod4 deaktiviert den Mod4-Lock
-
- Ideen: - Symbol ändern (Neo-Logo abwarten)
- - bei Ebene 4 rechte Hand (Numpad) z.B. Numpad5 statt 5 senden
-
- CHANGEHISTORY:
-
- Revision 624(von Martin Roppelt):
- - Lang-s-Tastatur (ein- und auszuschalten durch Mod4+ß)
- Revision 616 (von Dennis Heidsiek):
- - Der nicht funktionierende Mod5-Lock-Fix wurde wieder entfernt, da
- er sogar neue Fehler produzierte.
- Revision 615 (von Dennis Heidsiek):
- - Erfolgloser Versuch, den Mod4-Lock wiederherzustellen
- (durch eine Tilde vor den Scancodes der Bildschirmtastatur).
- - Rechtschreibfehler korrigiert.
- - Zwei AHK-Links eingefügt.
- Revision 609 (von Dennis Heidsiek):
- - Vorläufiger Abschluss der AHK-Modularisierung.
- - Bessere Testmöglichkeit »All.ahk« für AHK-Entwickler hinzugefügt, bei der
- sich die Zeilenangaben in Fehlermeldungen auf die tatsächlichen Module und
- nicht auf das große »vereinigte« Skript beziehen.
- Revision 608 (von Martin Roppelt):
- - Rechtschreibfehler korrigiert und Dateinamen aktualisiert und sortiert.
- Revision 590 (von Dennis Heidsiek):
- - Erste technische Vorarbeiten zur logischen Modularisierung des viel
- zu lange gewordenen AHK-Quellcodes.
- - Neue Batch-Datei Build-Update.bat zur einfachen Aktualisierung der EXE-Datei
- Revision 583 (von Dennis Heidsiek):
- - Kleinere Korrekturen (Mod3+Numpad5, Mod5+Numpad5 und Mod3+Numpad9
- stimmen wieder mit der Referenz überein).
- Revision 580 (von Matthias Berg):
- - Bildschirmtastatur jetzt mit Mod4+F* statt Strg+F*, dies deaktiviert
- jedoch leider den Mod4-Lock
- Revision 570 (von Matthias Berg):
- - Hotkeys für einHandNeo und lernModus durch entsprechende ScanCodes ersetzt
- Revision 568 (von Matthias Berg):
- - Sonderzeichen, Umlaute, z und y durch ScanCodes ersetzt
- * jetzt wird auch bei eingestelltem US Layout Neo verwendet.
- (z.B. für Chinesische InputMethodEditors)
- * rechter Mod3 geht noch nicht bei US Layout (weder ScanCode noch "\")
- Revision 567 (von Dennis Heidsiek):
- - Aktivierter Mod4 Lock wird jetzt über die Rollen-LED des Keybord angezeigt
- (analog zu CapsLock), die NUM-LED behält ihr bisheriges Verhalten
- - Neue Option im Skript: UseMod4Light
- Revision 561 (von Matthias Berg):
- - Ebene 4 Tab verhält sich jetzt wie das andere Tab dank "goto neo_tab"
- Revision 560 (von Dennis Heidsiek):
- - Neue Option im Skript: bildschirmTastaturEinbinden bindet die PNG-Bilder der
- Bildschirmtastur mit in die exe-Datei ein, so dass sich der Benutzer nur eine Datei
- herunterladen muss
- Revision 559 (von Matthias Berg):
- - Shift+Alt+Tab Problem gelöst (muss noch mehr auf Nebeneffekte getestet werden)
- Revision 558 (von Matthias Berg):
- - Icon-Bug behoben
- * Hotkeys dürfen nicht vor der folgenden Zeile stehen:
- "menu, tray, icon, neo.ico,,1"
- - lernModus-Konfigurations-Bug behoben: or statt and(not)
- - Ein paar leere Else-Fälle eingebaut (Verständlichkeit, mögliche Compilerprobleme vermeiden)
- Revision 556 (von Matthias Berg):
- - lernModus (an/aus mit Strg+Komma)
- * im Skript konfigurierbar
- * Schaltet z.B. Qwertz Tasten aus, die es auf der 4. Ebene gibt (Return, Backspace,...)
- * Kann auch Backspace und/oder Entfernen der 4. Ebene ausschalten (gut zum Lernen richtig
- zu schreiben)
- - Bug aufgetaucht: Icons werden nicht mehr angezeigt
- Revision 544 (von Stefan Mayer):
- - ,.:; auf dem Mod4-Ziffernblock an die aktuelle Referenz angepasst
- - Versionen von rho, theta, kappa und phi an die aktuelle Referenz angepasst
- Revision 542 (von Matthias Berg):
- - bei EinHandNeo ist jetzt Space+y auch Mod4
- - AltGr-Bug hoffentlich wieder behoben. Diesmal mit extra altGrPressed Variable
- - nurEbenenFuenfUndSechs umbenannt in ahkTreiberKombi und auf Ebene 4 statt 5 und 6 geändert
- Revision 540 (von Matthias Berg):
- - stark überarbeitet um Wartbarkeit zu erhöhen und Redundanz zu veringern
- - nurEbenenFuenfUndSechs sollte nun auch auf Neo Treiber statt Qwertz laufen
- * aber es muss noch jemand testen
- * Problem: was kann man abfangen, wenn eine tote Taste gedrückt wird
- - einHandNeo:
- * An-/Ausschalten mit STRG+Punkt
- * Buchstaben der rechten Hand werden mit Space zur linken Hand
- * Nebeneffekt: es gibt beim Festhalten von Space keine wiederholten Leerzeichen mehr
- Revision 532 (von Matthias Berg):
- - BildschirmTastatur
- * aktiviert mit strg+F1 bis 7 schaltet Keyboard ein oder aus
- * strg+F7 zeigt die zuletzt angezeigte Ebene an (und wieder aus).
- * strg+F8 schaltet AlwaysOnTop um
- Revision 529 (von Stefan Mayer):
- - Icon wird automatisch geladen, falls .ico-Dateien im selbem Ordner
- - in der .exe sind die .ico mitgespeichert und werden geladen
- Revision 528 (von Matthias Berg):
- - Neo-Icon
- - Neo-Prozess jetzt automatisch auf hoher Prioritaet
- (siehe globale Schalter)
- - Mod3-Lock (nur wenn rechtes Mod3 zuerst gedrückt wird, andere Lösung führte zum Caps-Bug)
- - Mod4-Lock (nur wenn das linke Mod4 zuerst gedrückt wird, andere Lösung fühte zum AltGr-Bug)
- - Ein paar falsche Zeichen korrigiert
- Revision 527 (von Matthias Berg):
- - AltGr Problem hoffentlich behoben
- - Umschalt+Mod4 Bug behoben
- Revision 526 (von Matthias Berg):
- - Ebenen 1 bis 4 ausschalten per Umschalter siehe erste Codezeile
- nurEbenenFuenfUndSechs = 0
- - Mod4-Lock durch Mod4+Mod4
- - EbenenAktualisierung neu geschrieben
- - Ebene 6 über Mod3+Mod4
- - Ebenen (besonders Matheebene) an Referenz angepasst
- (allerdings kaum um Ebenen 1&2 gekümmert, besonders Compose könnte noch überholt werden)
- Revision 525 (von Matthias Berg):
- - Capslock bei Zahlen und Sonderzeichen berücksichtigt
- Revision 524 (von Matthias Berg):
- - umgekehrtes ^ für o, a, ü,i sowie für die grossen vokale ( 3. ton chinesisch)
- • damit wird jetzt PinYin vollständig unterstützt caron, macron, akut, grave auf uiaeoü
- - Sonderzeichen senden wieder blind -> Shortcuts funktionieren, Capslock ist leider Shiftlock
- Revision 523 (von Matthias Berg):
- - CapsLock geht jetzt auch bei allen Zeichen ('send Zeichen' statt 'send {blind} Zeichen')
- - vertikale Ellipse eingebaut
- - Umschalt+Umschalt für Capslock statt Mod3+Mod3
- - bei Suspend wird jetzt wirklich togglesuspend aufgerufen (auch beim aktivieren per shift+pause)
- Revsion 490 (von Stefan Mayer):
- - SUBSCRIPT von 0 bis 9 sowie (auf Ziffernblock) + und -
- • auch bei Ziffernblock auf der 5. Ebene
- - Kein Parsen über die Zwischenablage mehr
- - Vista-kompatibel
- - Compose-Taste
- • Brüche (auf Zahlenreihe und Hardware-Ziffernblock)
- • römische Zahlen
- • Ligaturen und Copyright
-*/
-
-
-
-/******************
- Globale Schalter *
-*******************
-*/
-
-; Im folgenden gilt (soweit nicht anders angegeben) Ja = 1, Nein = 0:
-ahkTreiberKombi := 0 ; Sollen Ebenen 1-4 ignoriert werden? (kann z.B. vom dll Treiber übernommen werden)
-einHandNeo := 0 ; Soll der Treiber im Einhandmodus betrieben werden?
-lernModus := 0 ; Soll der Lernmodus aktiviert werden?
-bildschirmTastaturEinbinden := 1 ; Sollen die Bilder für die Bildschirmtastatur in die EXE-Datei miteingebunden werden (Nachteil: grössere Dateigrösse, Vorteil: Referenz für Anfänger stets einfach verfügbar)
-UseMod4Light := 1 ; Aktivierter Mod4 Lock wird über die Rollen-LED des Keybord angezeigt (analog zu CapsLock)
-LangSTastatur := 0 ; Sollen Lang-s auf s, s auf ß und ß auf M3+ß gelegt werden?
-
-Process, Priority,, High
-
-
-/*************************
- Recourcen-Verwaltung *
-**************************
-*/
-
-; Versuche zuerst, eventuell in die EXE eingebundenen Dateien zu extrahieren
-FileInstall, neo.ico, neo.ico, 1
-FileInstall, neo_disabled.ico, neo_disabled.ico, 1
-
-if(bildschirmTastaturEinbinden==1) {
- FileInstall, ebene1.png, ebene1.png, 1
- FileInstall, ebene2.png, ebene2.png, 1
- FileInstall, ebene3.png, ebene3.png, 1
- FileInstall, ebene4.png, ebene4.png, 1
- FileInstall, ebene5.png, ebene5.png, 1
- FileInstall, ebene6.png, ebene6.png, 1
-}
-
-; Benutze die Dateien (soweit sie vorhanden sind)
-if ( FileExist("ebene1.png") && FileExist("ebene2.png") && FileExist("ebene3.png") && FileExist("ebene4.png") && FileExist("ebene5.png") && FileExist("ebene6.png") )
- zeigeBildschirmTastatur = 1
-
-if ( FileExist("neo.ico") && FileExist("neo_disabled.ico") )
- iconBenutzen = 1
-
-
-/*************************
- lernModus Konfiguration *
- nur relevant wenn *
- lernModus = 1 *
- Strg+Komma schaltet um *
-**************************
-*/
-; 0 = aus, 1 = an
-
-
-; die Nachfolgenden sind nützlich um sich die Qwertz-Tasten abzugewöhnen, da alle auf der 4. Ebene vorhanden.
-lernModus_std_Return = 0
-lernModus_std_Backspace = 0
-lernModus_std_PgUp = 0
-lernModus_std_PgDn = 0
-lernModus_std_Einf = 0
-lernModus_std_Entf = 0
-lernModus_std_Pos0 = 0
-lernModus_std_Ende = 0
-lernModus_std_Hoch = 0
-lernModus_std_Runter = 0
-lernModus_std_Links = 0
-lernModus_std_Rechts = 0
-lernModus_std_ZahlenReihe = 0
-
-
-
-; im folgenden kann man auch noch ein paar Tasten der 4. Ebene deaktivieren
-; nützlich um sich zu zwingen, richtig zu schreiben
-lernModus_neo_Backspace = 0
-lernModus_neo_Entf = 1
-
-
-
-
-; aus Noras script kopiert:
-#usehook on
-#singleinstance force
-#LTrim
- ; Quelltext kann eingerückt werden,
- ; msgbox ist trotzdem linksbündig
-
-SetTitleMatchMode 2
-SendMode Input
-
-name = Neo 2.0
-enable = Aktiviere %name%
-disable = Deaktiviere %name%
-
-; Überprüfung auf deutsches Tastaturlayout
-; ----------------------------------------
-
-regread, inputlocale, HKEY_CURRENT_USER, Keyboard Layout\Preload, 1
-regread, inputlocalealias, HKEY_CURRENT_USER
- , Keyboard Layout\Substitutes, %inputlocale%
-if inputlocalealias <>
- inputlocale = %inputlocalealias%
-if inputlocale <> 00000407
-{
- suspend
- regread, inputlocale, HKEY_LOCAL_MACHINE
- , SYSTEM\CurrentControlSet\Control\Keyboard Layouts\%inputlocale%
- , Layout Text
- msgbox, 48, Warnung!,
- (
- Nicht kompatibles Tastaturlayout:
- `t%inputlocale%
- `nDas deutsche QWERTZ muss als Standardlayout eingestellt
- sein, damit %name% wie erwartet funktioniert.
- `nÄndern Sie die Tastatureinstellung unter
- `tSystemsteuerung
- `t-> Regions- und Sprachoptionen
- `t-> Sprachen
- `t-> Details... `n
- )
- exitapp
-}
-
-
-
-; Menü des Systray-Icons
-; ----------------------
-
-if (iconBenutzen)
- menu, tray, icon, neo.ico,,1
-menu, tray, nostandard
-menu, tray, add, Öffnen, open
- menu, helpmenu, add, About, about
- menu, helpmenu, add, Autohotkey-Hilfe, help
- menu, helpmenu, add
- menu, helpmenu, add, http://&autohotkey.com/, autohotkey
- menu, helpmenu, add, http://www.neo-layout.org/, neo
-menu, tray, add, Hilfe, :helpmenu
-menu, tray, add
-menu, tray, add, %disable%, togglesuspend
-menu, tray, default, %disable%
-menu, tray, add
-menu, tray, add, Edit, edit
-menu, tray, add, Reload, reload
-menu, tray, add
-menu, tray, add, Nicht im Systray anzeigen, hide
-menu, tray, add, %name% beenden, exitprogram
-menu, tray, tip, %name%
-
-
-/*
- Variablen initialisieren
-*/
-
-Ebene = 1
-PriorDeadKey := ""
-
-
-
-
-
-/*
- EinHandNeo
-*/
-spacepressed := 0
-keypressed:= 0
-
-; Reihe 1
-gespiegelt_7 = neo_6
-gespiegelt_8 = neo_5
-gespiegelt_9 = neo_4
-gespiegelt_0 = neo_3
-gespiegelt_strich = neo_2
-gespiegelt_tot2 = neo_1
-
-; Reihe 2
-gespiegelt_k = neo_w
-gespiegelt_h = neo_c
-gespiegelt_g = neo_l
-gespiegelt_f = neo_v
-gespiegelt_q = neo_x
-gespiegelt_sz = neo_tab
-gespiegelt_tot3 = neo_tot1
-
-; Reihe 3
-gespiegelt_s = neo_o
-gespiegelt_n = neo_e
-gespiegelt_r = neo_a
-gespiegelt_t = neo_i
-gespiegelt_d = neo_u
-
-; Reihe 4
-gespiegelt_b = neo_z
-gespiegelt_m = neo_p
-gespiegelt_komma = neo_ä
-gespiegelt_punkt = neo_ö
-gespiegelt_j = neo_ü
-
-
-
-
-/*
- ------------------------------------------------------
- Modifier
- ------------------------------------------------------
-*/
-
-
-; CapsLock durch Umschalt+Umschalt
-;*CapsLock::return ; Nichts machen beim Capslock release event (weil es Mod3 ist)
-
-*#::return ; Nichts machen beim # release event (weil es Mod3 ist) ; # = SC02B
-
-;RShift wenn vorher LShift gedrückt wurde
-LShift & ~RShift::
- if GetKeyState("CapsLock","T")
- {
- setcapslockstate, off
- }
- else
- {
- setcapslockstate, on
- }
-return
-
-;LShift wenn vorher RShift gedrückt wurde
-RShift & ~LShift::
- if GetKeyState("CapsLock","T")
- {
- setcapslockstate, off
- }
- else
- {
- setcapslockstate, on
- }
-return
-
-; Mod4-Lock durch Mod4+Mod4
-IsMod4Locked := 0
-< & *SC138::
- if (IsMod4Locked)
- {
- MsgBox Mod4-Feststellung aufgebehoben
- IsMod4Locked = 0
- if (UseMod4Light==1)
- {
- KeyboardLED(1,"off")
- }
- }
- else
- {
- MsgBox Mod4 festgestellt: Um Mod4 wieder zu lösen drücke beide Mod4 Tasten gleichzeitig
- IsMod4Locked = 1
- if (UseMod4Light==1)
- {
- KeyboardLED(1,"on")
- }
- }
-return
-
-*SC138::
- altGrPressed := 1
-return ; Damit AltGr nicht extra etwas schickt und als stiller Modifier geht.
-*SC138 up::
- altGrPressed := 0
-return
-
-; das folgende wird seltsamerweise nicht gebraucht :) oder führt zum AltGr Bug; Umschalt+‹ (Mod4) Zeigt ‹
-SC138 & *<::
- if (IsMod4Locked)
- {
- MsgBox Mod4-Feststellung aufgebehoben
- IsMod4Locked = 0
- }
- else
- {
- MsgBox Mod4 festgestellt: Um Mod4 wieder zu lösen drücke beide Mod4 Tasten gleichzeitig
- IsMod4Locked = 1
- }
-return
-
-
- ; Mod3-Lock durch Mod3+Mod3
-IsMod3Locked := 0
-SC02B & *Capslock:: ; #
- if (IsMod3Locked)
- {
- MsgBox Mod3-Feststellung aufgebehoben
- IsMod3Locked = 0
- }
- else
- {
- MsgBox Mod3 festgestellt: Um Mod3 wieder zu lösen drücke beide Mod3 Tasten gleichzeitig
- IsMod3Locked = 1
- }
-return
-
-
-*Capslock:: return
-;Capslock::MsgBox hallo
-/*
-Capslock & *:
- if (IsMod3Locked)
- {
- MsgBox Mod3-Feststellung aufgebehoben
- IsMod3Locked = 0
- }
- else
- {
- MsgBox Mod3 festgestellt: Um Mod3 wieder zu lösen drücke beide Mod3 Tasten gleichzeitig
- IsMod3Locked = 1
- }
-return
-*/
-
-/*
-; Wird nicht mehr gebraucht weil jetzt auf b (bzw. *n::)
-; KP_Decimal durch Mod4+Mod4
-*<::
-*SC138::
- if GetKeyState("<","P") and GetKeyState("SC138","P")
- {
- send {numpaddot}
- }
-return
-
-*/
-
-
-
-/*
- ------------------------------------------------------
- QWERTZ->Neo umwandlung
- ------------------------------------------------------
-*/
-; Reihe 1
-*SC029::goto neo_tot1 ; Zirkumflex ^
-*1::goto neo_1
-*2::goto neo_2
-*3::goto neo_3
-*4::goto neo_4
-*5::goto neo_5
-*6::goto neo_6
-*7::
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_7
- else
- {
- keypressed := 1
- goto %gespiegelt_7%
- }
-return
-*8::
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_8
- else
- {
- keypressed := 1
- goto %gespiegelt_8%
- }
-return
-*9::
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_9
- else
- {
- keypressed := 1
- goto %gespiegelt_9%
- }
-return
-*0::
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_0
- else
- {
- keypressed := 1
- goto %gespiegelt_0%
- }
-return
-*SC00C:: ; ß
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_strich
- else
- {
- keypressed := 1
- goto %gespiegelt_strich%
- }
- }
- else
- {
- goto neo_sz
- }
-*SC00D::goto neo_tot2 ; Akut
-; Reihe 2
-*Tab::goto neo_tab
-*q::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_x
- }
- else
- {
- goto neo_q
- }
-*w::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_v
- }
- else
- {
- goto neo_w
- }
-*e::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_l
- }
- else
- {
- goto neo_e
- }
-*r::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_c
- }
- else
- {
- goto neo_r
- }
-*t::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_w
- }
- else
- {
- goto neo_t
- }
-*SC015:: ; z
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_k
- else
- {
- keypressed := 1
- goto %gespiegelt_k%
- }
- }
- else
- {
- goto neo_z
- }
-*u::
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_h
- else
- {
- keypressed := 1
- goto %gespiegelt_h%
- }
- }
- else
- {
- goto neo_u
- }
-*i::
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_g
- else
- {
- keypressed := 1
- goto %gespiegelt_g%
- }
- }
- else
- {
- goto neo_i
- }
-*o::
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_f
- else
- {
- keypressed := 1
- goto %gespiegelt_f%
- }
- }
- else
- {
- goto neo_o
- }
-*p::
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_q
- else
- {
- keypressed := 1
- goto %gespiegelt_q%
- }
- }
- else
- {
- goto neo_p
- }
-*SC01A:: ; ü
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_sz
- else
- {
- keypressed := 1
- goto %gespiegelt_sz%
- }
- }
- else
- {
- goto neo_ü
- }
-*SC01B:: ; +
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_tot3
- else
- {
- keypressed := 1
- goto %gespiegelt_tot3%
- }
- }
- else
- { } ; this should never happen
-; Reihe 3
-*a::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_u
- }
- else
- {
- goto neo_a
- }
-*s::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_i
- }
- else
- {
- goto neo_s
- }
-*d::goto neo_a
- if ( not(ahkTreiberKombi) )
- {
- goto neo_a
- }
- else
- {
- goto neo_d
- }
-*f::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_e
- }
- else
- {
- goto neo_f
- }
-*g::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_o
- }
- else
- {
- goto neo_g
- }
-*h::
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_s
- else
- {
- keypressed := 1
- goto %gespiegelt_s%
- }
- }
- else
- {
- goto neo_h
- }
-*j::
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_n
- else
- {
- keypressed := 1
- goto %gespiegelt_n%
- }
- }
- else
- {
- goto neo_j
- }
-*k::
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_r
- else
- {
- keypressed := 1
- goto %gespiegelt_r%
- }
- }
- else
- {
- goto neo_k
- }
-*l::
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_t
- else
- {
- keypressed := 1
- goto %gespiegelt_t%
- }
- }
- else
- {
- goto neo_l
- }
-*SC027:: ; ö
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_d
- else
- {
- keypressed := 1
- goto %gespiegelt_d%
- }
- }
- else
- {
- goto neo_ö
- }
-*SC028:: ; ä
- if ( not(ahkTreiberKombi) )
- {
- goto neo_y
- }
- else
- {
- goto neo_ä
- }
-; Reihe 4
-*SC02C:: ; y
- if ( not(ahkTreiberKombi) )
- {
- goto neo_ü
- }
- else
- {
- goto neo_y
- }
-*x::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_ö
- }
- else
- {
- goto neo_x
- }
-*c::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_ä
- }
- else
- {
- goto neo_c
- }
-*v::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_p
- }
- else
- {
- goto neo_v
- }
-*b::
- if ( not(ahkTreiberKombi) )
- {
- goto neo_z
- }
- else
- {
- goto neo_b
- }
-*n::
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_b
- else
- {
- keypressed := 1
- goto %gespiegelt_b%
- }
- }
- else
- {
- goto neo_n
- }
-*m::
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_m
- else
- {
- keypressed := 1
- goto %gespiegelt_m%
- }
-return
-*SC033:: ; Komma ,
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_komma
- else
- {
- keypressed := 1
- goto %gespiegelt_komma%
- }
-return
-*SC034:: ; Punkt .
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_punkt
- else
- {
- keypressed := 1
- goto %gespiegelt_punkt%
- }
-return
-*SC035:: ; Minus -
- if ( not(ahkTreiberKombi) )
- {
- if( not(einHandNeo) or not(spacepressed) )
- goto neo_j
- else
- {
- keypressed := 1
- goto %gespiegelt_j%
- }
- }
- else
- {
- goto neo_strich
- }
-; Numpad
-*NumpadDiv::goto neo_NumpadDiv
-*NumpadMult::goto neo_NumpadMult
-*NumpadSub::goto neo_NumpadSub
-*NumpadAdd::goto neo_NumpadAdd
-*NumpadEnter::goto neo_NumpadEnter
-*Numpad7::goto neo_Numpad7
-*Numpad8::goto neo_Numpad8
-*Numpad9::goto neo_Numpad9
-*Numpad4::goto neo_Numpad4
-*Numpad5::goto neo_Numpad5
-*Numpad6::goto neo_Numpad6
-*Numpad1::goto neo_Numpad1
-*Numpad2::goto neo_Numpad2
-*Numpad3::goto neo_Numpad3
-*Numpad0::goto neo_Numpad0
-*NumpadDot::goto neo_NumpadDot
-*NumpadHome::goto neo_NumpadHome
-*NumpadUp::goto neo_NumpadUp
-*NumpadPgUp::goto neo_NumpadPgUp
-*NumpadLeft::goto neo_NumpadLeft
-*NumpadClear::goto neo_NumpadClear
-*NumpadRight::goto neo_NumpadRight
-*NumpadEnd::goto neo_NumpadEnd
-*NumpadDown::goto neo_NumpadDown
-*NumpadPgDn::goto neo_NumpadPgDn
-*NumpadIns::goto neo_NumpadIns
-*NumpadDel::goto neo_NumpadDel
-
-
-
-/*
-Die eigentliche NEO-Belegung und der Hauptteil des AHK-Treibers.
-
-
- Ablauf bei toten Tasten:
- 1. Ebene Aktualisieren
- 2. Abhängig von der Variablen "Ebene" Zeichen ausgeben und die Variable "PriorDeadKey" setzen
-
- Ablauf bei "untoten" Tasten:
- 1. Ebene Aktualisieren
- 2. Abhängig von den Variablen "Ebene" und "PriorDeadKey" Zeichen ausgeben
- 3. "PriorDeadKey" mit leerem String überschreiben
-
- ------------------------------------------------------
- Reihe 1
- ------------------------------------------------------
-*/
-
-
-neo_tot1:
- EbeneAktualisieren()
- if Ebene = 1
- {
- SendUnicodeChar(0x02C6) ; circumflex, tot
- PriorDeadKey := "c1"
- }
- else if Ebene = 2
- {
- SendUnicodeChar(0x02C7) ; caron, tot
- PriorDeadKey := "c2"
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x02D8) ; brevis
- PriorDeadKey := "c3"
- }
- else if Ebene = 4
- {
- SendUnicodeChar(0x00B7) ; Mittenpunkt, tot
- PriorDeadKey := "c5"
- }
- else if Ebene = 5
- {
- send - ; querstrich, tot
- PriorDeadKey := "c4"
- }
- else if Ebene = 6
- {
- Send . ; punkt darunter (colon)
- PriorDeadKey := "c6"
- }
-return
-
-neo_1:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex 1
- BSSendUnicodeChar(0x00B9)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2081)
- else if (CompKey = "r_small_1")
- Comp3UnicodeChar(0x217A) ; römisch xi
- else if (CompKey = "r_capital_1")
- Comp3UnicodeChar(0x216A) ; römisch XI
- else
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}1
- }
- else
- {
- send 1
- }
- }
- else {
- if ( not(lernModus) or (lernModus_std_ZahlenReihe) )
- {
- send {blind}1
- }
- }
- }
- if (PriorDeadKey = "comp")
- CompKey := "1"
- else if (CompKey = "r_small")
- CompKey := "r_small_1"
- else if (CompKey = "r_capital")
- CompKey := "r_capital_1"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send °
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x00B9) ; 2 Hochgestellte
- CompKey := ""
- }
- else if Ebene = 4
- {
- SendUnicodeChar(0x2022) ; bullet
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x2640) ; Piktogramm weiblich
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x00AC) ; Nicht-Symbol
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_2:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00B2)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2082)
- else if (CompKey = "r_small")
- CompUnicodeChar(0x2171) ; römisch ii
- else if (CompKey = "r_capital")
- CompUnicodeChar(0x2161) ; römisch II
- else if (CompKey = "r_small_1")
- Comp3UnicodeChar(0x217B) ; römisch xii
- else if (CompKey = "r_capital_1")
- Comp3UnicodeChar(0x216B) ; römisch XII
- else
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}2
- }
- else
- {
- send 2
- }
-
- }
- else {
- if ( not(lernModus) or (lernModus_std_ZahlenReihe) )
- {
- send {blind}2
- }
- }
- }
- if (PriorDeadKey = "comp")
- CompKey := "2"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- SendUnicodeChar(0x2116) ; numero
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x00B2) ; 2 Hochgestellte
- CompKey := ""
- }
- else if Ebene = 4
- {
- SendUnicodeChar(0x2023) ; aufzaehlungspfeil
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x26A5) ; Piktogramm Zwitter
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x2228) ; Logisches Oder
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_3:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00B3)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2083)
- else if (CompKey = "1")
- CompUnicodeChar(0x2153) ; 1/3
- else if (CompKey = "2")
- CompUnicodeChar(0x2154) ; 2/3
- else if (CompKey = "r_small")
- CompUnicodeChar(0x2172) ; römisch iii
- else if (CompKey = "r_capital")
- CompUnicodeChar(0x2162) ; römisch III
- else
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}3
- }
- else
- {
- send 3
- }
- }
- else {
- if ( not(lernModus) or (lernModus_std_ZahlenReihe) )
- {
- send {blind}3
- }
- }
- }
- if (PriorDeadKey = "comp")
- CompKey := "3"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send §
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x00B3) ; 3 Hochgestellte
- CompKey := ""
- }
- else if Ebene = 4
- { } ; leer
- else if Ebene = 5
- {
- SendUnicodeChar(0x2642) ; Piktogramm Mann
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x2227) ; Logisches Und
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_4:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2074)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2084)
- else if (CompKey = "r_small")
- CompUnicodeChar(0x2173) ; römisch iv
- else if (CompKey = "r_capital")
- CompUnicodeChar(0x2163) ; römisch IV
- else
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}4
- }
- else
- {
- send 4
- }
-
- }
- else
- {
- if ( not(lernModus) or (lernModus_std_ZahlenReihe) )
- {
- send {blind}4
- }
- }
- }
- if (PriorDeadKey = "comp")
- CompKey := "4"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send »
- CompKey := ""
- }
- else if Ebene = 3
- {
- send ›
- CompKey := ""
- }
- else if Ebene = 4
- {
- Send {PgUp} ; Prev
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x2113) ; Script small L
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x22A5) ; Senkrecht
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_5:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2075)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2085)
- else if (CompKey = "1")
- CompUnicodeChar(0x2155) ; 1/5
- else if (CompKey = "2")
- CompUnicodeChar(0x2156) ; 2/5
- else if (CompKey = "3")
- CompUnicodeChar(0x2157) ; 3/5
- else if (CompKey = "4")
- CompUnicodeChar(0x2158) ; 4/5
- else if (CompKey = "r_small")
- CompUnicodeChar(0x2174) ; römisch v
- else if (CompKey = "r_capital")
- CompUnicodeChar(0x2164) ; römisch V
- else
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}5
- }
- else
- {
- send 5
- }
-
- }
- else {
- if ( not(lernModus) or (lernModus_std_ZahlenReihe) )
- {
- send {blind}5
- }
- }
- }
- if (PriorDeadKey = "comp")
- CompKey := "5"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send «
- CompKey := ""
- }
- else if Ebene = 3
- {
- send ‹
- CompKey := ""
- }
- else if Ebene = 4
- { } ; leer
- else if Ebene = 5
- {
- SendUnicodeChar(0x2020) ; Kreuz (Dagger)
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x2221) ; Winkel
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_6:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2076)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2086)
- else if (CompKey = "1")
- CompUnicodeChar(0x2159) ; 1/6
- else if (CompKey = "5")
- CompUnicodeChar(0x215A) ; 5/6
- else if (CompKey = "r_small")
- CompUnicodeChar(0x2175) ; römisch vi
- else if (CompKey = "r_capital")
- CompUnicodeChar(0x2165) ; römisch VI
- else
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}6
- }
- else
- {
- send 6
- }
-
- }
- else {
- if ( not(lernModus) or (lernModus_std_ZahlenReihe) )
- {
- send {blind}6
- }
- }
- }
- if (PriorDeadKey = "comp")
- CompKey := "6"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send €
- CompKey := ""
- }
- else if Ebene = 3
- {
- send ¢
- CompKey := ""
- }
- else if Ebene = 4
- {
- send £
- CompKey := ""
- }
- else if Ebene = 5
- { } ; leer
- else if Ebene = 6
- {
- SendUnicodeChar(0x2225) ; parallel
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_7:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2077)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2087)
- else if (CompKey = "r_small")
- CompUnicodeChar(0x2176) ; römisch vii
- else if (CompKey = "r_capital")
- CompUnicodeChar(0x2166) ; römisch VII
- else
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}7
- }
- else
- {
- send 7
- }
-
- }
- else {
- if ( not(lernModus) or (lernModus_std_ZahlenReihe) )
- {
- send {blind}7
- }
- }
- }
- if (PriorDeadKey = "comp")
- CompKey := "7"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send $
- CompKey := ""
- }
- else if Ebene = 3
- {
- send ¥
- CompKey := ""
- }
- else if Ebene = 4
- {
- send ¤
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x03BA) ; greek small letter kappa
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x2209) ; nicht Element von
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_8:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2078)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2088)
- else if (CompKey = "1")
- CompUnicodeChar(0x215B) ; 1/8
- else if (CompKey = "3")
- CompUnicodeChar(0x215C) ; 3/8
- else if (CompKey = "5")
- CompUnicodeChar(0x215D) ; 5/8
- else if (CompKey = "7")
- CompUnicodeChar(0x215E) ; 7/8
- else if (CompKey = "r_small")
- CompUnicodeChar(0x2177) ; römisch viii
- else if (CompKey = "r_capital")
- CompUnicodeChar(0x2167) ; römisch VIII
- else
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}8
- }
- else
- {
- send 8
- }
-
- }
- else {
- if ( not(lernModus) or (lernModus_std_ZahlenReihe) )
- {
- send {blind}8
- }
- }
- }
- if (PriorDeadKey = "comp")
- CompKey := "8"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send „
- CompKey := ""
- }
- else if Ebene = 3
- {
- send ‚
- CompKey := ""
- }
- else if Ebene = 4
- {
- Send /
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x27E8) ;bra (öffnende spitze klammer)
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x2204) ; es existiert nicht
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_9:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2079)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2089)
- else if (CompKey = "r_small")
- CompUnicodeChar(0x2178) ; römisch ix
- else if (CompKey = "r_capital")
- CompUnicodeChar(0x2168) ; römisch IX
- else
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}9
- }
- else
- {
- send 9
- }
-
- }
- else {
- if ( not(lernModus) or (lernModus_std_ZahlenReihe) )
- {
- send {blind}9
- }
- }
- }
- if (PriorDeadKey = "comp")
- CompKey := "9"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send “
- CompKey := ""
- }
- else if Ebene = 3
- {
- send ‘
- CompKey := ""
- }
- else if Ebene = 4
- {
- Send *
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x27E9) ;ket (schließende spitze klammer)
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x2226) ; nicht parallel
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_0:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2070)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2080)
- else if (CompKey = "r_small_1")
- Comp3UnicodeChar(0x2179) ; römisch x
- else if (CompKey = "r_capital_1")
- Comp3UnicodeChar(0x2169) ; römisch X
- else
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}0
- }
- else
- {
- send 0
- }
-
- }
- else {
- if ( not(lernModus) or (lernModus_std_ZahlenReihe) )
- {
- send {blind}0
- }
- }
- }
- if (PriorDeadKey = "comp")
- CompKey := "0"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send ”
- CompKey := ""
- }
- else if Ebene = 3
- {
- send ’
- CompKey := ""
- }
- else if Ebene = 4
- {
- Send -
- CompKey := ""
- }
- else if Ebene = 5
- { } ; leer
- else if Ebene = 6
- {
- SendUnicodeChar(0x2205) ; leere Menge
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_strich:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}-
- }
- else
- {
- send -
- }
-
- }
- else {
- send {blind}- ;Bindestrich
- }
- }
- else if Ebene = 2
- SendUnicodeChar(0x2013) ; Gedankenstrich
- else if Ebene = 3
- SendUnicodeChar(0x2014) ; Englische Gedankenstrich
- else if Ebene = 4
- { } ; leer ... SendUnicodeChar(0x254C)
- else if Ebene = 5
- SendUnicodeChar(0x2011) ; geschützter Bindestrich
- else if Ebene = 6
- SendUnicodeChar(0x00AD) ; weicher Trennstrich
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_tot2:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {´}{space} ; akut, tot
- PriorDeadKey := "a1"
- }
- else if Ebene = 2
- {
- send ``{space}
- PriorDeadKey := "a2"
- }
- else if Ebene = 3
- {
- send ¸ ; cedilla
- PriorDeadKey := "a3"
- }
- else if Ebene = 4
- {
- SendUnicodeChar(0x02D9) ; punkt oben drüber
- PriorDeadKey := "a5"
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x02DB) ; ogonek
- PriorDeadKey := "a4"
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x02DA) ; ring obendrauf
- PriorDeadKey := "a6"
- }
-return
-
-
-/*
- ------------------------------------------------------
- Reihe 2
- ------------------------------------------------------
-*/
-
-neo_x:
- EbeneAktualisieren()
- if Ebene = 1
- sendinput {blind}x
- else if Ebene = 2
- sendinput {blind}X
- else if Ebene = 3
- SendUnicodeChar(0x2026) ;Ellipse
- else if Ebene = 5
- SendUnicodeChar(0x03BE) ;xi
- else if Ebene = 6
- SendUnicodeChar(0x039E) ; Xi
- PriorDeadKey := "" CompKey := ""
-return
-
-
-neo_v:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E7F)
- else
- sendinput {blind}v
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E7E)
- else
- sendinput {blind}V
- }
- else if Ebene = 3
- send _
- else if Ebene = 4
- if ( not(lernModus) or (lernModus_neo_Backspace) )
- {
- Send {Backspace}
- }
- else
- {} ; leer
- else if Ebene = 6
- SendUnicodeChar(0x2259) ; estimates
- PriorDeadKey := "" CompKey := ""
-return
-
-
-
-neo_l:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "t5") ; Schrägstrich
- BSSendUnicodeChar(0x0142)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x013A)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x013E)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x013C)
- else if (PriorDeadKey = "c5") ; Mittenpunkt
- BSSendUnicodeChar(0x0140)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E37)
- else
- sendinput {blind}l
- if (PriorDeadKey = "comp") ; compose
- CompKey := "l_small"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x0139)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x013D)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x013B)
- else if (PriorDeadKey = "t5") ; Schrägstrich
- BSSendUnicodeChar(0x0141)
- else if (PriorDeadKey = "c5") ; Mittenpunkt
- BSSendUnicodeChar(0x013F)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E36)
- else
- sendinput {blind}L
- if (PriorDeadKey = "comp") ; compose
- CompKey := "l_capital"
- else CompKey := ""
- }
- else if Ebene = 3
- {
- send [
- CompKey := ""
- }
- else if Ebene = 4
- {
- Sendinput {Blind}{Up}
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x03BB) ; lambda
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x039B) ; Lambda
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-
-neo_c:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x0109)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x010D)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x0107)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x00E7)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x010B)
- else if ( (CompKey = "o_small") or (CompKey = "o_capital") )
- Send {bs}©
- else
- {
- sendinput {blind}c
- }
- if (PriorDeadKey = "comp")
- CompKey := "c_small"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x0108)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x010C)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x0106)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x00E6)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x010A)
- else if ( (CompKey = "o_small") or (CompKey = "o_capital") )
- Send {bs}©
- else
- sendinput {blind}C
- if (PriorDeadKey = "comp")
- CompKey = "c_capital"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- send ]
- CompKey := ""
- }
- else if Ebene = 4
- {
- if ( not(lernModus) or (lernModus_neo_Entf) )
- {
- Send {Del}
- CompKey := ""
- }
- else
- {} ; leer
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x03C7) ;chi
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x2102) ; C (Komplexe Zahlen)
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_w:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x0175)
- else
- sendinput {blind}w
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x0174)
- else
- sendinput {blind}W
- }
- else if Ebene = 3
- send {^}{space} ; untot
- else if Ebene = 4
- Send {Insert}
- else if Ebene = 5
- SendUnicodeChar(0x03C9) ; omega
- else if Ebene = 6
- SendUnicodeChar(0x03A9) ; Omega
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_k:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x0137)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E33)
- else
- sendinput {blind}k
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x0136)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E32)
- else
- sendinput {blind}K
- }
- else if Ebene = 3
- sendraw !
- else if Ebene = 4
- Send ¡
- else if Ebene = 5
- SendUnicodeChar(0x03F0) ;kappa symbol (varkappa)
- else if Ebene = 6
- SendUnicodeChar(0x221A) ; Wurzel
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_h:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x0125)
- else if (PriorDeadKey = "c4") ; Querstrich
- BSSendUnicodeChar(0x0127)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E23)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E25)
- else sendinput {blind}h
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x0124)
- else if (PriorDeadKey = "c4") ; Querstrich
- BSSendUnicodeChar(0x0126)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E22)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E24)
- else sendinput {blind}H
- }
- else if Ebene = 3
- {
- if (PriorDeadKey = "c4") ; Querstrich
- BSSendUnicodeChar(0x2264) ; kleiner gleich
- else
- send {blind}<
- }
- else if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2077)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2087)
- else
- Send 7
- }
- else if Ebene = 5
- SendUnicodeChar(0x03C8) ;psi
- else if Ebene = 6
- SendUnicodeChar(0x03A8) ; Psi
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_g:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x011D)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x011F)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x0123)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x0121)
- else sendinput {blind}g
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x011C)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x011E)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x0122)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x0120)
- else sendinput {blind}G
- }
- else if Ebene = 3
- {
- if (PriorDeadKey = "c4") ; Querstrich
- SendUnicodeChar(0x2265) ; größer gleich
- else
- send >
- }
- else if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2078)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2088)
- else
- Send 8
- }
- else if Ebene = 5
- SendUnicodeChar(0x03B3) ;gamma
- else if Ebene = 6
- SendUnicodeChar(0x0393) ; Gamma
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_f:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "t5") ; durchgestrichen
- BSSendUnicodeChar(0x0192)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E1F)
- else sendinput {blind}f
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "t5") ; durchgestrichen
- BSSendUnicodeChar(0x0191)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E1E)
- else sendinput {blind}F
- }
- else if Ebene = 3
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2259) ; entspricht
- else if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x2245) ; ungefähr gleich
- else if (PriorDeadKey = "t5") ; Schrägstrich
- BSSendUnicodeChar(0x2260) ; ungleich
- else if (PriorDeadKey = "c4") ; Querstrich
- BSSendUnicodeChar(0x2261) ; identisch
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x225A) ; EQUIANGULAR TO
- else if (PriorDeadKey = "a6") ; ring drüber
- BSSendUnicodeChar(0x2257) ; ring equal to
- else
- send `=
- }
- else if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2079)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2089)
- else
- Send 9
- }
- else if Ebene = 5
- SendUnicodeChar(0x03C6) ; phi
- else if Ebene = 6
- SendUnicodeChar(0x03A6) ; Phi
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_q:
- EbeneAktualisieren()
- if Ebene = 1
- sendinput {blind}q
- else if Ebene = 2
- sendinput {blind}Q
- else if Ebene = 3
- send {&}
- else if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x207A)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x208A)
- else
- Send {+}
- }
- else if Ebene = 5
- SendUnicodeChar(0x03D5) ; phi symbol (varphi)
- else if Ebene = 6
- SendUnicodeChar(0x211A) ; Q (rationale Zahlen)
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_sz:
- EbeneAktualisieren()
- if Ebene = 1
- if GetKeyState("CapsLock","T")
- {
- SendUnicodeChar(0x1E9E) ; verssal-ß
- }
- else
- {
- if (LangSTastatur = 1)
- {
- sendinput {blind}s
- }
- else
- {
- send ß
- }
- }
- else if Ebene = 2
- if GetKeyState("CapsLock","T")
- {
- if (LangSTastatur = 1)
- {
- sendinput {blind}s
- }
- else
- {
- send ß
- }
- }
- else
- {
- SendUnicodeChar(0x1E9E) ; versal-ß
- }
- else if Ebene = 3
- {
- if (LangSTastatur = 1)
- send ß
- else
- SendUnicodeChar(0x017F) ; langes s
- }
- else if Ebene = 5
- SendUnicodeChar(0x03C2) ; varsigma
- else if Ebene = 6
- SendUnicodeChar(0x2218) ; Verknüpfungsoperator
- PriorDeadKey := "" CompKey := ""
-return
-
-
-neo_tot3:
- EbeneAktualisieren()
- if Ebene = 1
- {
- SendUnicodeChar(0x02DC) ; tilde, tot
- PriorDeadKey := "t1"
- }
- else if Ebene = 2
- {
- SendUnicodeChar(0x00AF) ; macron, tot
- PriorDeadKey := "t2"
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x00A8) ; Diaerese
- PriorDeadKey := "t3"
- }
- else if Ebene = 4
- {
- SendUnicodeChar(0x002F) ; Schrägstrich, tot
- PriorDeadKey := "t5"
- }
- else if Ebene = 5
- {
- send " ;doppelakut
- PriorDeadKey := "t4"
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x02CF) ; komma drunter, tot
- PriorDeadKey := "t6"
- }
-return
-
-
-/*
- ------------------------------------------------------
- Reihe 3
- ------------------------------------------------------
-*/
-
-neo_u:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00FB)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00FA)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x00F9)
- else if (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}ü
- else if (PriorDeadKey = "t4") ; doppelakut
- BSSendUnicodeChar(0x0171)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x016D)
- else if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x016B)
- else if (PriorDeadKey = "a4") ; ogonek
- BSSendUnicodeChar(0x0173)
- else if (PriorDeadKey = "a6") ; Ring
- BSSendUnicodeChar(0x016F)
- else if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x0169)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x01D4)
- else
- sendinput {blind}u
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00DB)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00DA)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x00D9)
- else if (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}Ü
- else if (PriorDeadKey = "a6") ; Ring
- BSSendUnicodeChar(0x016E)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x016C)
- else if (PriorDeadKey = "t4") ; doppelakut
- BSSendUnicodeChar(0x0170)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x01D3)
- else if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x016A)
- else if (PriorDeadKey = "a4") ; ogonek
- BSSendUnicodeChar(0x0172)
- else if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x0168)
- else
- sendinput {blind}U
- }
- else if Ebene = 3
- send \
- else if Ebene = 4
- Send {blind}{Home}
- else if Ebene = 5
- { } ; leer
- else if Ebene = 6
- SendUnicodeChar(0x222E) ; contour integral
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_i:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00EE)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00ED)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x00EC)
- else if (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}ï
- else if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x012B)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x012D)
- else if (PriorDeadKey = "a4") ; ogonek
- BSSendUnicodeChar(0x012F)
- else if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x0129)
- else if (PriorDeadKey = "a5") ; (ohne) punkt darüber
- BSSendUnicodeChar(0x0131)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x01D0)
- else
- sendinput {blind}i
- if (PriorDeadKey = "comp") ; compose
- CompKey := "i_small"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00CE)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00CD)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x00CC)
- else if (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}Ï
- else if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x012A)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x012C)
- else if (PriorDeadKey = "a4") ; ogonek
- BSSendUnicodeChar(0x012E)
- else if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x0128)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x0130)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x01CF)
- else
- sendinput {blind}I
- if (PriorDeadKey = "comp") ; compose
- CompKey := "i_capital"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- send `/
- CompKey := ""
- }
- else if Ebene = 4
- {
- Sendinput {Blind}{Left}
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x03B9) ; iota
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x222B) ; integral
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_a:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00E2)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00E1)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x00E0)
- else if (PriorDeadKey = "t3") ; Diaerese
- send {bs}ä
- else if (PriorDeadKey = "a6") ; Ring
- Send {bs}å
- else if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x00E3)
- else if (PriorDeadKey = "a4") ; ogonek
- BSSendUnicodeChar(0x0105)
- else if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x0101)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x0103)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x01CE)
- else
- sendinput {blind}a
- if (PriorDeadKey = "comp") ; compose
- CompKey := "a_small"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00C2)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00C1)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x00C0)
- else if (PriorDeadKey = "t3") ; Diaerese
- send {bs}Ä
- else if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x00C3)
- else if (PriorDeadKey = "a6") ; Ring
- Send {bs}Å
- else if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x0100)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x0102)
- else if (PriorDeadKey = "a4") ; ogonek
- BSSendUnicodeChar(0x0104)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x01CD)
- else
- sendinput {blind}A
- if (PriorDeadKey = "comp") ; compose
- CompKey := "a_capital"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- sendraw {
- CompKey := ""
- }
- else if Ebene = 4
- {
- Sendinput {Blind}{Down}
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x03B1) ;alpha
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x2200) ;fuer alle
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_e:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00EA)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00E9)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x00E8)
- else if (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}ë
- else if (PriorDeadKey = "a4") ; ogonek
- BSSendUnicodeChar(0x0119)
- else if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x0113)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x0115)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x011B)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x0117)
- else if (CompKey = "a_small") ; compose
- {
- Send {bs}æ
- CompKey := ""
- }
- else if (CompKey = "o_small") ; compose
- {
- Send {bs}œ
- CompKey := ""
- }
- else
- sendinput {blind}e
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00CA)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00C9)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x00C8)
- else if (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}Ë
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x011A)
- else if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x0112)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x0114)
- else if (PriorDeadKey = "a4") ; ogonek
- BSSendUnicodeChar(0x0118)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x0116)
- else if (CompKey = "a_capital") ; compose
- {
- Send {bs}Æ
- CompKey := ""
- }
- else if (CompKey = "o_capital") ; compose
- {
- Send {bs}Œ
- CompKey := ""
- }
- else
- sendinput {blind}E
- }
- else if Ebene = 3
- sendraw }
- else if Ebene = 4
- Sendinput {Blind}{Right}
- else if Ebene = 5
- SendUnicodeChar(0x03B5) ;epsilon
- else if Ebene = 6
- SendUnicodeChar(0x2203) ;es existiert
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_o:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00F4)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00F3)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x00F2)
- else if (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}ö
- else if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x00F5)
- else if (PriorDeadKey = "t4") ; doppelakut
- BSSendUnicodeChar(0x0151)
- else if (PriorDeadKey = "t5") ; Schrägstrich
- BSSendUnicodeChar(0x00F8)
- else if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x014D)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x014F)
- else if (PriorDeadKey = "a4") ; ogonek
- BSSendUnicodeChar(0x01EB)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x01D2)
- else
- sendinput {blind}o
- if (PriorDeadKey = "comp") ; compose
- CompKey := "o_small"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00D4)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00D3)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x00D2)
- else if (PriorDeadKey = "t5") ; Schrägstrich
- BSSendUnicodeChar(0x00D8)
- else if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x00D5)
- else if (PriorDeadKey = "t4") ; doppelakut
- BSSendUnicodeChar(0x0150)
- else if (PriorDeadKey = "t3") ; Diaerese
- send {bs}Ö
- else if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x014C)
- else if (PriorDeadKey = "c3") ; brevis
- BSSendUnicodeChar(0x014E)
- else if (PriorDeadKey = "a4") ; ogonek
- BSSendUnicodeChar(0x01EA)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x01D1)
- else
- sendinput {blind}O
- if (PriorDeadKey = "comp") ; compose
- CompKey := "o_capital"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- send *
- CompKey := ""
- }
- else if Ebene = 4
- {
- Send {blind}{End}
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x03BF) ; omicron
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x2208) ; element of
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_s:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x015D)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x015B)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x0161)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x015F)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E61)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E63)
- else
- {
- if (LangSTastatur = 1)
- {
- if GetKeyState("CapsLock","T")
- sendinput {blind}s
- else
- SendUnicodeChar(0x017F) ; langes s
- }
- else
- sendinput {blind}s
- }
- if (PriorDeadKey = "comp")
- CompKey := "s_small"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x015C)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x0160)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x015A)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x015E)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E60)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E62)
- else
- {
- if GetKeyState("CapsLock","T") && (LangSTastatur = 1)
- SendUnicodeChar(0x017F)
- else
- sendinput {blind}S
- }
- if (PriorDeadKey = "comp")
- CompKey := "s_capital"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- send ?
- CompKey := ""
- }
- else if Ebene = 4
- {
- Send ¿
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x03C3) ;sigma
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x03A3) ; Sigma
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_n:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x0144)
- else if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x00F1)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x0148)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x0146)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E45)
- else
- sendinput {blind}n
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x0147)
- else if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x00D1)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x0143)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x0145)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E44)
- else
- sendinput {blind}N
- }
- else if Ebene = 3
- send (
- else if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2074)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2084)
- else
- Send 4
- }
- else if Ebene = 5
- SendUnicodeChar(0x03BD) ; nu
- else if Ebene = 6
- SendUnicodeChar(0x2115) ; N (natürliche Zahlen)
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_r:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x0155)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x0159)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x0157)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x0E59)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E5B)
- else
- sendinput {blind}r
- if (PriorDeadKey = "comp")
- CompKey := "r_small"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x0158)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x0154)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x0156)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E58)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E5A)
- else
- sendinput {blind}R
- if (PriorDeadKey = "comp")
- CompKey := "r_capital"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- send )
- CompKey := ""
- }
- else if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2075)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2085)
- else
- Send 5
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x03F1) ; rho symbol (varrho)
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x211D) ; R (reelle Zahlen)
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_t:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x0165)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x0163)
- else if (PriorDeadKey = "c4") ; Querstrich
- BSSendUnicodeChar(0x0167)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E6B)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E6D)
- else
- sendinput {blind}t
- if (PriorDeadKey = "comp")
- CompKey := "t_small"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x0164)
- else if (PriorDeadKey = "a3") ; cedilla
- BSSendUnicodeChar(0x0162)
- else if (PriorDeadKey = "c4") ; Querstrich
- BSSendUnicodeChar(0x0166)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E6A)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E6C)
- else
- sendinput {blind}T
- if (PriorDeadKey = "comp")
- CompKey := "t_capital"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- send {blind}- ; Bis
- CompKey := ""
- }
- else if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2076)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2086)
- else
- Send 6
- CompKey := ""
- }
- else if Ebene = 5
- {
- SendUnicodeChar(0x03C4) ; tau
- CompKey := ""
- }
- else if Ebene = 6
- {
- SendUnicodeChar(0x2202 ) ; partielle Ableitung
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_d:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c4") ; Querstrich
- BSSendUnicodeChar(0x0111)
- else if (PriorDeadKey = "t5") ; Schrägstrich
- BSSendUnicodeChar(0x00F0)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x010F)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E0B)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E0D)
- else
- sendinput {blind}d
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c4") ; Querstrich
- BSSendUnicodeChar(0x0110)
- else if (PriorDeadKey = "t5") ; Schrägstrich
- BSSendUnicodeChar(0x00D0)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x010E)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E0A)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E0D)
- else sendinput {blind}D
- }
- else if Ebene = 3
- send :
- else if Ebene = 4
- Send `,
- else if Ebene = 5
- SendUnicodeChar(0x03B4) ;delta
- else if Ebene = 6
- SendUnicodeChar(0x0394) ; Delta
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_y:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "t3") ; Diaerese
- Send {bs}ÿ
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00FD)
- else if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x0177)
- else
- sendinput {blind}y
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x00DD)
- else if (PriorDeadKey = "t3") ; Diaerese
- Send {bs}Ÿ
- else if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x0176)
- else
- sendinput {blind}Y
- }
- else if Ebene = 3
- send @
- else if Ebene = 4
- Send .
- else if Ebene = 5
- SendUnicodeChar(0x03C5) ; upsilon
- else if Ebene = 6
- SendUnicodeChar(0x2207) ; nabla
- PriorDeadKey := "" CompKey := ""
-return
-
-;SC02B (#) wird zu Mod3
-
-
-/*
- ------------------------------------------------------
- Reihe 4
- ------------------------------------------------------
-*/
-
-;SC056 (<) wird zu Mod4
-
-neo_ü:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x01D6)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x01D8)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x01DC)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x01DA)
- else
- sendinput {blind}ü
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x01D5)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x01D7)
- else if (PriorDeadKey = "a2") ; grave
- BSSendUnicodeChar(0x01DB)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x01D9)
- else
- sendinput {blind}Ü
- }
- else if Ebene = 3
- send {blind}{#}
- else if Ebene = 4
- Send {Esc}
- else if Ebene = 5
- {} ; leer
- else if Ebene = 6
- SendUnicodeChar(0x221D) ; proportional
-
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_ö:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x022B)
- else
- sendinput {blind}ö
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x022A)
- else
- sendinput {blind}Ö
- }
- else if Ebene = 3
- send $
- else if Ebene = 4
- goto neo_tab
- else if Ebene = 5
- {} ;leer
- else if Ebene = 6
- SendUnicodeChar(0x2111) ; Fraktur I
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_ä:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x01DF)
- else
- sendinput {blind}ä
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "t2") ; macron
- BSSendUnicodeChar(0x001DE)
- else
- sendinput {blind}Ä
- }
- else if Ebene = 3
- send |
- else if Ebene = 4
- Send {PgDn} ; Next
- else if Ebene = 5
- SendUnicodeChar(0x03B7) ; eta
- else if Ebene = 6
- SendUnicodeChar(0x211C) ; altes R
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_p:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E57)
- else
- sendinput {blind}p
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E56)
- else
- sendinput {blind}P
- }
- else if Ebene = 3
- {
- if (PriorDeadKey = "t1") ; tilde
- BSSendUnicodeChar(0x2248)
- else
- sendraw ~
- }
- else if Ebene = 4
- Send {Enter}
- else if Ebene = 5
- SendUnicodeChar(0x03C0) ;pi
- else if Ebene = 6
- SendUnicodeChar(0x03A0) ; Pi
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_z:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x017E)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x017A)
- else if (PriorDeadKey = "a5") ; punkt drüber
- BSSendUnicodeChar(0x017C)
- else if (PriorDeadKey = "c6") ; punkt drunter
- BSSendUnicodeChar(0x1E93)
- else
- sendinput {blind}z
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x017D)
- else if (PriorDeadKey = "a1") ; akut
- BSSendUnicodeChar(0x0179)
- else if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x017B)
- else if (PriorDeadKey = "c6") ; punkt drunter
- BSSendUnicodeChar(0x1E92)
- else
- sendinput {blind}Z
- }
- else if Ebene = 3
- send ``{space} ; untot
- else if Ebene = 4
- {} ; leer
- else if Ebene = 5
- SendUnicodeChar(0x03B6) ;zeta
- else if Ebene = 6
- SendUnicodeChar(0x2124) ; Z (ganze Zahlen)
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_b:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E03)
- else
- sendinput {blind}b
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E02)
- else
- sendinput {blind}B
- }
- else if Ebene = 3
- send {blind}{+}
- else if Ebene = 4
- send :
- else if Ebene = 5
- SendUnicodeChar(0x03B2) ; beta
- else if Ebene = 6
- SendUnicodeChar(0x21D2) ; Doppel-Pfeil rechts
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_m:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E41)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E43)
- else if ( (CompKey = "t_small") or (CompKey = "t_capital") ) ; compose
- CompUnicodeChar(0x2122) ; TM
- else if ( (CompKey = "s_small") or (CompKey = "s_capital") ) ; compose
- CompUnicodeChar(0x2120) ; SM
- else
- sendinput {blind}m
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "a5") ; punkt darüber
- BSSendUnicodeChar(0x1E40)
- else if (PriorDeadKey = "c6") ; punkt darunter
- BSSendUnicodeChar(0x1E42)
- else if ( (CompKey = "t_capital") or (CompKey = "t_small") ) ; compose
- CompUnicodeChar(0x2122) ; TM
- else if ( (CompKey = "s_capital") or (CompKey = "s_small") ) ; compose
- CompUnicodeChar(0x2120) ; SM
- else
- sendinput {blind}M
- }
- else if Ebene = 3
- send `%
- else if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00B9)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2081)
- else
- Send 1
- }
- else if Ebene = 5
- SendUnicodeChar(0x03BC) ; griechisch mu, micro wäre 0x00B5
- else if Ebene = 6
- SendUnicodeChar(0x21D4) ; doppelter Doppelpfeil (genau dann wenn)
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_komma:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind},
- }
- else
- {
- send `,
- }
-
- }
- else
- {
- send {blind},
- }
- }
- else if Ebene = 2
- SendUnicodeChar(0x22EE) ; vertikale ellipse
- else if Ebene = 3
- send "
- else if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00B2)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2082)
- else
- Send 2
- }
- else if Ebene = 5
- SendUnicodeChar(0x03C1) ; rho
- else if Ebene = 6
- SendUnicodeChar(0x21D0) ; Doppelpfeil links
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_punkt:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if GetKeyState("CapsLock","T")
- {
- if (IsModifierPressed())
- {
- send {blind}.
- }
- else
- {
- send .
- }
-
- }
- else {
- send {blind}.
- }
- }
- else if Ebene = 2
- SendUnicodeChar(0x2026) ; ellipse
- else if Ebene = 3
- send '
- else if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x00B3)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2083)
- else
- Send 3
- }
- else if Ebene = 5
- SendUnicodeChar(0x03D1) ; theta symbol (vartheta)
- else if Ebene = 6
- SendUnicodeChar(0x0398) ; Theta
- PriorDeadKey := "" CompKey := ""
-return
-
-
-neo_j:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x0135)
- else if (PriorDeadKey = "c2") ; caron
- BSSendUnicodeChar(0x01F0)
- else if (CompKey = "i_small") ; compose
- CompUnicodeChar(0x0133) ; ij
- else if (CompKey = "l_small") ; compose
- CompUnicodeChar(0x01C9) ; lj
- else if (CompKey = "l_capital") ; compose
- CompUnicodeChar(0x01C8) ; Lj
- else
- sendinput {blind}j
- }
- else if Ebene = 2
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x0134)
- else if (CompKey = "i_capital") ; compose
- CompUnicodeChar(0x0132) ; IJ
- else if (CompKey = "l_capital") ; compose
- CompUnicodeChar(0x01C7) ; LJ
- else
- sendinput {blind}J
- }
- else if Ebene = 3
- send `;
- else if Ebene = 4
- Send `;
- else if Ebene = 5
- SendUnicodeChar(0x03B8) ; theta
- else if Ebene = 6
- SendUnicodeChar(0x2261) ; identisch
- PriorDeadKey := "" CompKey := ""
-return
-
-/*
- ------------------------------------------------------
- Numpad
- ------------------------------------------------------
-
- folgende Tasten verhalten sich bei ein- und ausgeschaltetem
- NumLock gleich:
-*/
-
-neo_NumpadDiv:
- EbeneAktualisieren()
- if ( (Ebene = 1) or (Ebene = 2) )
- send {NumpadDiv}
- else if Ebene = 3
- send ÷
- else if ( (Ebene = 4) or (Ebene = 5) )
- SendUnicodeChar(0x2215) ; slash
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_NumpadMult:
- EbeneAktualisieren()
- if ( (Ebene = 1) or (Ebene = 2) )
- send {NumpadMult}
- else if Ebene = 3
- send ×
- else if ( (Ebene = 4) or (Ebene = 5) )
- SendUnicodeChar(0x22C5) ; cdot
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_NumpadSub:
- EbeneAktualisieren()
- if ( (Ebene = 1) or (Ebene = 2) )
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x207B)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x208B)
- else
- send {blind}{NumpadSub}
- }
- else if Ebene = 3
- SendUnicodeChar(0x2212) ; echtes minus
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_NumpadAdd:
- EbeneAktualisieren()
- if ( (Ebene = 1) or (Ebene = 2) )
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x207A)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x208A)
- else
- send {blind}{NumpadAdd}
- }
- else if Ebene = 3
- send ±
- else if ( (Ebene = 4) or (Ebene = 5) )
- SendUnicodeChar(0x2213) ; -+
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_NumpadEnter:
- EbeneAktualisieren()
- if ( (Ebene = 1) or (Ebene = 2) )
- send {NumpadEnter}
- else if Ebene = 3
- SendUnicodeChar(0x2260) ; neq
- else if ( (Ebene = 4) or (Ebene = 5) )
- SendUnicodeChar(0x2248) ; approx
- PriorDeadKey := "" CompKey := ""
-return
-
-/*
- folgende Tasten verhalten sich bei ein- und ausgeschaltetem NumLock
- unterschiedlich:
-
- bei NumLock ein
-*/
-
-
-
-neo_Numpad7:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {blind}{Numpad7}
- if (PriorDeadKey = "comp")
- CompKey := "Num_7"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {NumpadHome}
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x2195) ; Hoch-Runter-Pfeil
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x226A) ; ll
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_Numpad8:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x215B) ; 1/8
- else if (CompKey = "Num_3")
- CompUnicodeChar(0x215C) ; 3/8
- else if (CompKey = "Num_5")
- CompUnicodeChar(0x215D) ; 5/8
- else if (CompKey = "Num_7")
- CompUnicodeChar(0x215E) ; 7/8
- else
- send {blind}{Numpad8}
- if (PriorDeadKey = "comp")
- CompKey := "Num_8"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {NumpadUp}
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x2191) ; uparrow
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x2229) ; intersection
- CompKey := ""
- }
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_Numpad9:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {blind}{Numpad9}
- if (PriorDeadKey = "comp")
- CompKey := "Num_9"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {NumpadPgUp}
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x2297) ; Tensorprodukt ; Vektor in die Ebene zeigend
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x226B) ; gg
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-
-
-neo_Numpad4:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x00BC) ; 1/4
- else if (CompKey = "Num_3")
- CompUnicodeChar(0x00BE) ; 3/4
- else
- send {blind}{Numpad4}
- if (PriorDeadKey = "comp")
- CompKey := "Num_4"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {NumpadLeft}
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x2190) ; leftarrow
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x2282) ; subset of
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_Numpad5:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x2155) ; 1/5
- else if (CompKey = "Num_2")
- CompUnicodeChar(0x2156) ; 2/5
- else if (CompKey = "Num_3")
- CompUnicodeChar(0x2157) ; 3/5
- else if (CompKey = "Num_4")
- CompUnicodeChar(0x2158) ; 4/5
- else
- send {blind}{Numpad5}
- if (PriorDeadKey = "comp")
- CompKey := "Num_5"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {NumpadClear}
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x221E) ; INFINITY
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x220B) ; enthält das Element
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_Numpad6:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x2159) ; 1/6
- else if (CompKey = "Num_5")
- CompUnicodeChar(0x215A) ; 5/6
- else
- send {blind}{Numpad6}
- if (PriorDeadKey = "comp")
- CompKey := "Num_6"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {NumpadRight}
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x2192) ; rightarrow
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x2283) ; superset of
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_Numpad1:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {blind}{Numpad1}
- if (PriorDeadKey = "comp")
- CompKey := "Num_1"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {NumpadEnd}
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x2194) ; Links-Rechts-Pfeil
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x2264) ; leq
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_Numpad2:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x00BD) ; 1/2
- else
- send {blind}{Numpad2}
- if (PriorDeadKey = "comp")
- CompKey := "Num_2"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {NumpadDown}
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x2193) ; downarrow
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x222A) ; vereinigt
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_Numpad3:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x2153) ; 1/3
- else if (CompKey = "Num_2")
- CompUnicodeChar(0x2154) ; 2/3
- else
- send {blind}{Numpad3}
- if (PriorDeadKey = "comp")
- CompKey := "Num_3"
- else
- CompKey := ""
- }
- else if Ebene = 2
- send {NumpadPgDn}
- else if Ebene = 3
- SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
- else if ( (Ebene = 4) or (Ebene = 5) )
- SendUnicodeChar(0x2265) ; geq
- PriorDeadKey := "" CompKey := ""
-return
-
-neo_Numpad0:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {blind}{Numpad0}
- if (PriorDeadKey = "comp")
- CompKey := "Num_0"
- else
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {NumpadIns}
- CompKey := ""
- }
- else if Ebene = 3
- {
- send `%
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- send ‰
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_NumpadDot:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadDot}
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {NumpadDel}
- CompKey := ""
- }
- else if Ebene = 3
- {
- send .
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- send `,
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-/*
- bei NumLock aus
-*/
-
-neo_NumpadHome:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadHome}
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {Numpad7}
- if (PriorDeadKey = "comp")
- CompKey := "Num_7"
- else
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x226A) ; ll
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_NumpadUp:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadUp}
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x215B) ; 1/8
- else if (CompKey = "Num_3")
- CompUnicodeChar(0x215C) ; 3/8
- else if (CompKey = "Num_5")
- CompUnicodeChar(0x215D) ; 5/8
- else if (CompKey = "Num_7")
- CompUnicodeChar(0x215E) ; 7/8
- else
- send {Numpad8}
- if (PriorDeadKey = "comp")
- CompKey := "Num_8"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x2191) ; uparrow
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x2229) ; intersection
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_NumpadPgUp:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadPgUp}
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {Numpad9}
- if (PriorDeadKey = "comp")
- CompKey := "Num_9"
- else
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
-
- SendUnicodeChar(0x226B) ; gg
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_NumpadLeft:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadLeft}
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x00BC) ; 1/4
- else if (CompKey = "Num_3")
- CompUnicodeChar(0x00BE) ; 3/4
- else
- send {Numpad4}
- if (PriorDeadKey = "comp")
- CompKey := "Num_4"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x2190) ; leftarrow
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x2282) ; subset of
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_NumpadClear:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadClear}
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x2155) ; 1/5
- else if (CompKey = "Num_2")
- CompUnicodeChar(0x2156) ; 2/5
- else if (CompKey = "Num_3")
- CompUnicodeChar(0x2157) ; 3/5
- else if (CompKey = "Num_4")
- CompUnicodeChar(0x2158) ; 4/5
- else
- send {Numpad5}
- if (PriorDeadKey = "comp")
- CompKey := "Num_5"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- send †
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x220A) ; small element of
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_NumpadRight:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadRight}
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x2159) ; 1/6
- else if (CompKey = "Num_5")
- CompUnicodeChar(0x215A) ; 5/6
- else
- send {Numpad6}
- if (PriorDeadKey = "comp")
- CompKey := "Num_6"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x2192) ; rightarrow
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x2283) ; superset of
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_NumpadEnd:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadEnd}
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {Numpad1}
- if (PriorDeadKey = "comp")
- CompKey := "Num_1"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x21CB) ; LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x2264) ; leq
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_NumpadDown:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadDown}
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x00BD) ; 1/2
- else
- send {Numpad2}
- if (PriorDeadKey = "comp")
- CompKey := "Num_2"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x2193) ; downarrow
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x222A) ; vereinigt
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_NumpadPgDn:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadPgDn}
- CompKey := ""
- }
- else if Ebene = 2
- {
- if (CompKey = "Num_1")
- CompUnicodeChar(0x2153) ; 1/3
- else if (CompKey = "Num_2")
- CompUnicodeChar(0x2154) ; 2/3
- else
- send {Numpad3}
- if (PriorDeadKey = "comp")
- CompKey := "Num_3"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- SendUnicodeChar(0x2265) ; geq
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_NumpadIns:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadIns}
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {Numpad0}
- if (PriorDeadKey = "comp")
- CompKey := "Num_0"
- else
- CompKey := ""
- }
- else if Ebene = 3
- {
- send `%
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- send ‰
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-neo_NumpadDel:
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {NumpadDel}
- CompKey := ""
- }
- else if Ebene = 2
- {
- send {NumpadDot}
- CompKey := ""
- }
- else if Ebene = 3
- {
- send .
- CompKey := ""
- }
- else if ( (Ebene = 4) or (Ebene = 5) )
- {
- send `,
- CompKey := ""
- }
- PriorDeadKey := ""
-return
-
-
-/*
- ------------------------------------------------------
- Sondertasten
- ------------------------------------------------------
-*/
-*space::
- if (einHandNeo)
- spacepressed := 1
- else
- goto neo_SpaceUp
-return
-
-*space up::
- if (einHandNeo)
- {
- if (keypressed)
- {
- keypressed := 0
- spacepressed := 0
- }
- else
- {
- goto neo_SpaceUp
- }
- }
- else
- { } ;do nothing
-return
-
-neo_SpaceUp:
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (CompKey = "r_small_1")
- Comp3UnicodeChar(0x2170) ; römisch i
- else if (CompKey = "r_capital_1")
- Comp3UnicodeChar(0x2160) ; römisch I
- else
- Send {blind}{Space}
- }
- if Ebene = 2
- Send {blind}{Space}
- if Ebene = 3
- Send {blind}{Space}
- if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2070)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2080)
- else
- Send 0
- }
- else if Ebene = 5
- SendUnicodeChar(0x00A0) ; geschütztes Leerzeichen
- else if Ebene = 6
- SendUnicodeChar(0x202F) ; schmales Leerzeichen
- PriorDeadKey := "" CompKey := ""
- spacepressed := 0
- keypressed := 0
-return
-
-/*
-*Space::
- EbeneAktualisieren()
- if Ebene = 1
- {
- if (CompKey = "r_small_1")
- Comp3UnicodeChar(0x2170) ; römisch i
- else if (CompKey = "r_capital_1")
- Comp3UnicodeChar(0x2160) ; römisch I
- else
- Send {blind}{Space}
- }
- if Ebene = 2
- Send {blind}{Space}
- if Ebene = 3
- Send {blind}{Space}
- if Ebene = 4
- {
- if (PriorDeadKey = "c1") ; circumflex
- BSSendUnicodeChar(0x2070)
- else if (PriorDeadKey = "c4") ; toter -
- BSSendUnicodeChar(0x2080)
- else
- Send 0
- }
- else if Ebene = 5
- SendUnicodeChar(0x00A0) ; geschütztes Leerzeichen
- else if Ebene = 6
- SendUnicodeChar(0x202F) ; schmales Leerzeichen
- PriorDeadKey := "" CompKey := ""
-return
-*/
-/*
- Folgende Tasten sind nur aufgeführt, um PriorDeadKey zu leeren.
- Irgendwie sieht das noch nicht schön aus. Vielleicht lässt sich dieses
- Problem irgendwie eleganter lösen...
-
- Nachtrag:
- Weil es mit Alt+Tab Probleme gab, wird hier jetzt erstmal rumgeflickschustert,
- bis eine allgemeinere Lösung gefunden wurde.
-*/
-
-*Enter::
- if ( not(lernModus) or (lernModus_std_Return) )
- {
- sendinput {Blind}{Enter}
- PriorDeadKey := "" CompKey := ""
- }
-return
-
-*Backspace::
- if ( not(lernModus) or (lernModus_std_Backspace) )
- {
- sendinput {Blind}{Backspace}
- PriorDeadKey := "" CompKey := ""
- }
-return
-
-*Del::
- if ( not(lernModus) or (lernModus_std_Entf) )
- {
- sendinput {Blind}{Del}
- }
-return
-
-*Ins::
- if ( not(lernModus) or (lernModus_std_Einf) )
- {
- sendinput {Blind}{Ins}
- }
-return
-
-
-
-
-
-/*
-Auf Mod3+Tab liegt Compose. AltTab funktioniert, jedoch ShiftAltTab nicht.
-Wenigstens kommt es jetzt nicht mehr zu komischen Ergebnissen, wenn man Tab
-nach einem DeadKey drückt...
-*/
-
-neo_tab:
- if ( GetKeyState("SC038","P") )
- {
- Send,{Blind}{AltDown}{tab}
-
-/*
- if (isShiftPressed())
- {
- Send,{ShiftDown}{AltDown}{tab}
- }
- else
- {
-; msgbox alt+tab
- Send,{AltDown}{tab}
- ; SC038 & Tab::AltTab ; http://de.autohotkey.com/docs/Hotkeys.htm#AltTabDetail
- }
-*/
- }
- else if (IsMod3Pressed()) ;#
- {
- #Include *i %a_scriptdir%\ComposeLaunch.ahk
- #Include *i %a_scriptdir%\Source\ComposeLaunch.ahk
- PriorDeadKey := "comp"
- CompKey := ""
- }
- else
- {
- send {blind}{Tab}
- PriorDeadKey := ""
- CompKey := ""
- }
-return
-
-*SC038 up::
- PriorDeadKey := "" CompKey := ""
- send {blind}{AltUp}
-return
-
-*SC038 down:: ; LAlt, damit AltTab funktioniert
- Send,{Blind}{AltDown}
- PriorDeadKey := "" CompKey := ""
-return
-
-*Home::
- if ( not(lernModus) or (lernModus_std_Pos1) )
- {
- sendinput {Blind}{Home}
- PriorDeadKey := "" CompKey := ""
- }
-return
-
-*End::
- if ( not(lernModus) or (lernModus_std_Ende) )
- {
- sendinput {Blind}{End}
- PriorDeadKey := "" CompKey := ""
- }
-return
-
-*PgUp::
- if ( not(lernModus) or (lernModus_std_PgUp) )
- {
- sendinput {Blind}{PgUp}
- PriorDeadKey := "" CompKey := ""
- }
-return
-
-*PgDn::
- if ( not(lernModus) or (lernModus_std_PgDn) )
- {
- sendinput {Blind}{PgDn}
- PriorDeadKey := "" CompKey := ""
- }
-return
-
-*Up::
- if ( not(lernModus) or (lernModus_std_Hoch) )
- {
- sendinput {Blind}{Up}
- PriorDeadKey := "" CompKey := ""
- }
-return
-
-*Down::
- if ( not(lernModus) or (lernModus_std_Runter) )
- {
- sendinput {Blind}{Down}
- PriorDeadKey := "" CompKey := ""
- }
-return
-
-*Left::
- if ( not(lernModus) or (lernModus_std_Links) )
- {
- sendinput {Blind}{Left}
- PriorDeadKey := "" CompKey := ""
- }
-return
-
-*Right::
- if ( not(lernModus) or (lernModus_std_Rechts) )
- {
- sendinput {Blind}{Right}
- PriorDeadKey := "" CompKey := ""
- }
-return
-
-
-
-
-/*
- ------------------------------------------------------
- Methode KeyboardLED zur Steuerung der Keyboard-LEDs
- (NumLock/CapsLock/ScrollLock-Lichter)
-
- Benutzungshinweise: Man benutze
- KeyboardLED(LEDvalue,"Cmd"), wobei
- Cmd = on/off/switch,
- LEDvalue: ScrollLock=1, NumLock=2, CapsLock=4
- bzw. eine beliebige Summe dieser Werte:
- AlleAus=0, CapsLock+NumLock=6, etc.
-
- Der folgende Code wurde übernommen von:
- http://www.autohotkey.com/forum/viewtopic.php?t=10532
-
- Um eventuelle Wechselwirkungen mit dem bestehenden
- Code (insb. der Unicode-Konvertierung) auszuschießen,
- sind auch alle (Hilfsmethoden) mit dem Postfix LED
- versehen worden.
- ------------------------------------------------------
-*/
-
-KeyboardLED(LEDvalue, Cmd) ; LEDvalue: ScrollLock=1, NumLock=2, CapsLock=4 ; Cmd = on/off/switch
-{
- Static h_device
- If ! h_device ; initialise
- {
- device =\Device\KeyBoardClass0
- SetUnicodeStrLED(fn,device)
- h_device:=NtCreateFileLED(fn,0+0x00000100+0x00000080+0x00100000,1,1,0x00000040+0x00000020,0)
- }
-
- VarSetCapacity( output_actual, 4, 0 )
- input_size = 4
- VarSetCapacity( input, input_size, 0 )
-
- If Cmd= switch ;switches every LED according to LEDvalue
- KeyLED:= LEDvalue
- If Cmd= on ;forces all choosen LED's to ON (LEDvalue= 0 ->LED's according to keystate)
- KeyLED:= LEDvalue | (GetKeyState("ScrollLock", "T") + 2*GetKeyState("NumLock", "T") + 4*GetKeyState("CapsLock", "T"))
- If Cmd= off ;forces all choosen LED's to OFF (LEDvalue= 0 ->LED's according to keystate)
- {
- LEDvalue:= LEDvalue ^ 7
- KeyLED:= LEDvalue & (GetKeyState("ScrollLock", "T") + 2*GetKeyState("NumLock", "T") + 4*GetKeyState("CapsLock", "T"))
- }
- ; EncodeIntegerLED( KeyLED, 1, &input, 2 ) ;input bit pattern (KeyLED): bit 0 = scrolllock ;bit 1 = numlock ;bit 2 = capslock
- input := Chr(1) Chr(1) Chr(KeyLED)
- input := Chr(1)
- input=
- success := DllCall( "DeviceIoControl"
- , "uint", h_device
- , "uint", CTL_CODE_LED( 0x0000000b ; FILE_DEVICE_KEYBOARD
- , 2
- , 0 ; METHOD_BUFFERED
- , 0 ) ; FILE_ANY_ACCESS
- , "uint", &input
- , "uint", input_size
- , "uint", 0
- , "uint", 0
- , "uint", &output_actual
- , "uint", 0 )
-}
-
-CTL_CODE_LED( p_device_type, p_function, p_method, p_access )
-{
- Return, ( p_device_type << 16 ) | ( p_access << 14 ) | ( p_function << 2 ) | p_method
-}
-
-
-NtCreateFileLED(ByRef wfilename,desiredaccess,sharemode,createdist,flags,fattribs)
-{
- VarSetCapacity(fh,4,0)
- VarSetCapacity(objattrib,24,0)
- VarSetCapacity(io,8,0)
- VarSetCapacity(pus,8)
- uslen:=DllCall("lstrlenW","str",wfilename)*2
- InsertIntegerLED(uslen,pus,0,2)
- InsertIntegerLED(uslen,pus,2,2)
- InsertIntegerLED(&wfilename,pus,4)
- InsertIntegerLED(24,objattrib,0)
- InsertIntegerLED(&pus,objattrib,8)
- status:=DllCall("ntdll\ZwCreateFile","str",fh,"UInt",desiredaccess,"str",objattrib,"str",io,"UInt",0,"UInt",fattribs
- ,"UInt",sharemode,"UInt",createdist,"UInt",flags,"UInt",0,"UInt",0, "UInt")
- return ExtractIntegerLED(fh)
-}
-
-
-SetUnicodeStrLED(ByRef out, str_)
-{
- VarSetCapacity(st1, 8, 0)
- InsertIntegerLED(0x530025, st1)
- VarSetCapacity(out, (StrLen(str_)+1)*2, 0)
- DllCall("wsprintfW", "str", out, "str", st1, "str", str_, "Cdecl UInt")
-}
-
-
-ExtractIntegerLED(ByRef pSource, pOffset = 0, pIsSigned = false, pSize = 4)
-; pSource is a string (buffer) whose memory area contains a raw/binary integer at pOffset.
-; The caller should pass true for pSigned to interpret the result as signed vs. unsigned.
-; pSize is the size of PSource's integer in bytes (e.g. 4 bytes for a DWORD or Int).
-; pSource must be ByRef to avoid corruption during the formal-to-actual copying process
-; (since pSource might contain valid data beyond its first binary zero).
-{
- Loop %pSize% ; Build the integer by adding up its bytes.
- result += *(&pSource + pOffset + A_Index-1) << 8*(A_Index-1)
- if (!pIsSigned OR pSize > 4 OR result < 0x80000000)
- return result ; Signed vs. unsigned doesn't matter in these cases.
- ; Otherwise, convert the value (now known to be 32-bit) to its signed counterpart:
- return -(0xFFFFFFFF - result + 1)
-}
-
-
-InsertIntegerLED(pInteger, ByRef pDest, pOffset = 0, pSize = 4)
-; The caller must ensure that pDest has sufficient capacity. To preserve any existing contents in pDest,
-; only pSize number of bytes starting at pOffset are altered in it.
-{
- Loop %pSize% ; Copy each byte in the integer into the structure as raw binary data.
- DllCall("RtlFillMemory", "UInt", &pDest + pOffset + A_Index-1, "UInt", 1, "UChar", pInteger >> 8*(A_Index-1) & 0xFF)
-}
-
-
-
-
-/*
- ------------------------------------------------------
- Funktionen
- ------------------------------------------------------
-*/
-
-/*
-Ebenen laut Referenz:
-1. Ebene (kein Mod) 4. Ebene (Mod4)
-2. Ebene (Umschalt) 5. Ebene (Umschalt+Mod3)
-3. Ebene (Mod3) 6. Ebene (Mod3+Mod4)
-*/
-
-EbeneAktualisieren()
-{
- global
- if (ahkTreiberKombi)
- {
- if ( IsMod4Pressed() and not(IsShiftPressed()) and not(IsMod3Pressed()))
- {
- Ebene = 6
- }
- else
- {
- Ebene = -1
- }
- }
- else
- {
- if ( IsShiftPressed() )
- { ; Umschalt
- if ( IsMod3Pressed() )
- { ; Umschalt UND Mod3
- if ( IsMod4Pressed() )
- { ; Umschalt UND Mod3 UND Mod4
- ; Ebene 8 impliziert Ebene 6
- Ebene = 6
- }
- else
- { ; Umschald UND Mod3 NICHT Mod4
- Ebene = 5
- }
- }
- else
- { ; Umschalt NICHT Mod3
- if ( IsMod4Pressed() )
- { ; Umschalt UND Mod4 NICHT Mod3
- ; Ebene 7 impliziert Ebene 4
- Ebene = 4
- }
- else
- { ; Umschalt NICHT Mod3 NICHT Mod4
- Ebene = 2
- }
- }
- }
- else
- { ; NICHT Umschalt
- if ( IsMod3Pressed() )
- { ; Mod3 NICHT Umschalt
- if ( IsMod4Pressed() )
- { ; Mod3 UND Mod4 NICHT Umschalt
- Ebene = 6
- }
- else
- { ; Mod3 NICHT Mod4 NICHT Umschalt
- Ebene = 3
- }
- }
- else
- { ; NICHT Umschalt NICHT Mod3
- if ( IsMod4Pressed() )
- { ; Mod4 NICHT Umschalt NICHT Mod3
- Ebene = 4
- }
- else
- { ; NICHT Umschalt NICHT Mod3 NICHT Mod4
- Ebene = 1
- }
- }
- }
- }
-}
-
-
-
-IsShiftPressed()
-{
- return GetKeyState("Shift","P")
-}
-
-IsMod3Pressed()
-{
- global
- if (IsMod3Locked)
- {
- return (not ( GetKeyState("CapsLock","P") or GetKeyState("#","P") )) ; # = SC02B
- }
- else {
- return ( GetKeyState("CapsLock","P") or GetKeyState("#","P") ) ; # = SC02B
- }
-}
-
-IsMod4Pressed()
-{
- global
- if( not(einHandNeo) or not(spacepressed) )
- {
- if (IsMod4Locked)
- {
- return (not ( GetKeyState("<","P") or GetKeyState("SC138","P") or altGrPressed ))
- }
- else {
- return ( GetKeyState("<","P") or GetKeyState("SC138","P") or altGrPressed )
- }
- }
- else
- {
- if (IsMod4Locked)
- {
- return (not ( GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P") or altGrPressed ))
- }
- else {
- return ( GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P") or altGrPressed )
- }
- }
-
-}
-
-
-/*************************
- Alte Methoden
-*************************/
-
-/*
-Unicode(code)
-{
- saved_clipboard := ClipboardAll
- Transform, Clipboard, Unicode, %code%
- sendplay ^v
- Clipboard := saved_clipboard
-}
-
-BSUnicode(code)
-{
- saved_clipboard := ClipboardAll
- Transform, Clipboard, Unicode, %code%
- sendplay {bs}^v
- Clipboard := saved_clipboard
-}
-*/
-
-IsModifierPressed()
-{
- if (GetKeyState("LControl","P") or GetKeyState("RControl","P") or GetKeyState("LAlt","P") or GetKeyState("RAltl","P") or GetKeyState("LWin","P") or GetKeyState("RWin","P") or GetKeyState("LShift","P") or GetKeyState("RShift","P") or GetKeyState("AltGr","P") )
- {
- return 1
- }
- else
- {
- return 0
- }
-}
-
-SendUnicodeChar(charCode)
-{
- VarSetCapacity(ki, 28 * 2, 0)
-
- EncodeInteger(&ki + 0, 1)
- EncodeInteger(&ki + 6, charCode)
- EncodeInteger(&ki + 8, 4)
- EncodeInteger(&ki +28, 1)
- EncodeInteger(&ki +34, charCode)
- EncodeInteger(&ki +36, 4|2)
-
- DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28)
-}
-
-BSSendUnicodeChar(charCode)
-{
- send {bs}
- SendUnicodeChar(charCode)
-}
-
-CompUnicodeChar(charCode)
-{
- send {bs}
- SendUnicodeChar(charCode)
-}
-
-Comp3UnicodeChar(charCode)
-{
- send {bs}
- send {bs}
- SendUnicodeChar(charCode)
-}
-
-
-EncodeInteger(ref, val)
-{
- DllCall("ntdll\RtlFillMemoryUlong", "Uint", ref, "Uint", 4, "Uint", val)
-}
-
-
-;Lang-s-Tastatur:
-{
-SC056 & *Esc::
-LangSTastatur := not(LangSTastatur) ; schaltet die Lang-s-Tastatur ein und aus
-;if (LangSTastatur) SoundBeep ;auskommentieren, um Warnton zu erzeugen
-return
-}
-
-
-/*
- ------------------------------------------------------
- BildschirmTastatur
- ------------------------------------------------------
-*/
-guiErstellt = 0
-alwaysOnTop = 1
-aktuellesBild = ebene1.png
-SC056 & *F1::
-SC138 & *F1::
-{
- if (zeigeBildschirmTastatur)
- goto Switch1
- return
-}
-SC056 & *F2::
-SC138 & *F2::
-{
- if (zeigeBildschirmTastatur)
- goto Switch2
- return
-}
-SC056 & *F3::
-SC138 & *F3::
-{
- if (zeigeBildschirmTastatur)
- goto Switch3
- return
-}
-SC056 & *F4::
-SC138 & *F4::
-{
- if (zeigeBildschirmTastatur)
- goto Switch4
- return
-}
-SC056 & *F5::
-SC138 & *F5::
-{
- if (zeigeBildschirmTastatur)
- goto Switch5
- return
-}
-SC056 & *F6::
-SC138 & *F6::
-{
- if (zeigeBildschirmTastatur)
- goto Switch6
- return
-}
-SC056 & *F7::
-SC138 & *F7::
-{
- if (zeigeBildschirmTastatur)
- goto Show
- return
-}
-SC056 & *F8::
-SC138 & *F8::
-{
- if (zeigeBildschirmTastatur)
- goto ToggleAlwaysOnTop
- return
-}
-Switch1:
- if (guiErstellt)
- {
- if (Image == "ebene1.png")
- goto Close
- else
- {
- Image = ebene1.png
- SetTimer, Refresh
- }
- }
- else
- {
- Image = ebene1.png
- goto Show
- }
-Return
-
-Switch2:
- if (guiErstellt)
- {
- if (Image == "ebene2.png")
- goto Close
- else
- {
- Image = ebene2.png
- SetTimer, Refresh
- }
- }
- else
- {
- Image = ebene2.png
- goto Show
- }
-Return
-
-Switch3:
- if (guiErstellt)
- {
- if (Image == "ebene3.png")
- goto Close
- else
- {
- Image = ebene3.png
- SetTimer, Refresh
- }
- }
- else
- {
- Image = ebene3.png
- goto Show
- }
-Return
-
-Switch4:
- if (guiErstellt)
- {
- if (Image == "ebene4.png")
- goto Close
- else
- {
- Image = ebene4.png
- SetTimer, Refresh
- }
- }
- else
- {
- Image = ebene4.png
- goto Show
- }
-Return
-
-Switch5:
- if (guiErstellt)
- {
- if (Image == "ebene5.png")
- goto Close
- else
- {
- Image = ebene5.png
- SetTimer, Refresh
- }
- }
- else
- {
- Image = ebene5.png
- goto Show
- }
-Return
-
-Switch6:
- if (guiErstellt)
- {
- if (Image == "ebene6.png")
- goto Close
- else
- {
- Image = ebene6.png
- SetTimer, Refresh
- }
- }
- else
- {
- Image = ebene6.png
- goto Show
- }
-Return
-
-Show:
- if (guiErstellt)
- {
- goto Close
- }
- else
- {
- if (Image = "")
- {
- Image = ebene1.png
- }
- yPosition := A_ScreenHeight -270
- Gui, Color, FFFFFF
- Gui, Add, Button, xm+5 gSwitch1, F1
- Gui, Add, Text, x+5, kleine Buchstaben
- Gui, Add, Button, xm+5 gSwitch2, F2
- Gui, Add, Text, x+5, große Buchstaben
- Gui, Add, Button, xm+5 gSwitch3, F3
- Gui, Add, Text, x+5, Satz-/Sonderzeichen
- Gui, Add, Button, xm+5 gSwitch4, F4
- Gui, Add, Text, x+5, Zahlen / Steuerung
- Gui, Add, Button, xm+5 gSwitch5, F5
- Gui, Add, Text, x+5, Sprachen
- Gui, Add, Button, xm+5 gSwitch6, F6
- Gui, Add, Text, x+5, Mathesymbole
- Gui, Add, Button, xm+5 gShow, F7
- Gui, Add, Text, x+5, An /
- Gui, Add, Text, y+3, Aus
- Gui, Add, Button, x+10 y+-30 gShow, F8
- Gui, Add, Text, x+5, OnTop
- Gui, Add, Picture,AltSubmit ys w564 h200 vPicture, %Image%
- Gui, +AlwaysOnTop
- Gui, Show, y%yposition% Autosize
- SetTimer, Refresh
- guiErstellt = 1
- }
-Return
-
-Close:
- guiErstellt = 0
- Gui, Destroy
-Return
-
-Refresh:
- If (Image != OldImage)
- {
- GuiControl, , Picture, %Image%
- OldImage := Image
- }
-Return
-
-ToggleAlwaysOnTop:
- if (alwaysOnTop)
- {
- Gui, -AlwaysOnTop
- alwaysOnTop = 0
- }
- else
- {
- Gui, +AlwaysOnTop
- alwaysOnTop = 1
- }
-Return
- ; Ende der BildschirmTastatur
-
-
-/*
- ------------------------------------------------------
- Shift+Pause "pausiert" das Script.
- ------------------------------------------------------
-*/
-
-+pause::
-Suspend, Permit
- goto togglesuspend
-return
-
-; ------------------------------------
-
-^SC034::einHandNeo := not(einHandNeo) ; Punkt
-^SC033::lernModus := not(lernModus) ; Komma
-
-
-
-togglesuspend:
- if A_IsSuspended
- {
- menu, tray, rename, %enable%, %disable%
- menu, tray, tip, %name%
- if (iconBenutzen)
- menu, tray, icon, neo.ico,,1
- suspend , off ; Schaltet Suspend aus -> NEO
- }
- else
- {
- menu, tray, rename, %disable%, %enable%
- menu, tray, tip, %name% : Deaktiviert
- if (iconBenutzen)
- menu, tray, icon, neo_disabled.ico,,1
- suspend , on ; Schaltet Suspend ein -> QWERTZ
- }
-
-return
-
-
-help:
- Run, %A_WinDir%\hh mk:@MSITStore:autohotkey.chm
-return
-
-
-about:
- msgbox, 64, %name% – Ergonomische Tastaturbelegung,
- (
- %name%
- `nDas Neo-Layout ersetzt das übliche deutsche
- Tastaturlayout mit der Alternative Neo,
- beschrieben auf http://neo-layout.org/.
- `nDazu sind keine Administratorrechte nötig.
- `nWenn Autohotkey aktiviert ist, werden alle Tastendrucke
- abgefangen und statt dessen eine Übersetzung weitergeschickt.
- `nDies geschieht transparent für den Anwender,
- es muss nichts installiert werden.
- `nDie Zeichenübersetzung kann leicht über das Icon im
- Systemtray deaktiviert werden. `n
- )
-return
-
-
-neo:
- run http://neo-layout.org/
-return
-
-autohotkey:
- run http://autohotkey.com/
-return
-
-open:
- ListLines ; shows the Autohotkey window
-return
-
-edit:
- edit
-return
-
-reload:
- Reload
-return
-
-hide:
- menu, tray, noicon
-return
-
-exitprogram:
- exitapp
-return
-
-
-
-
-
- \ No newline at end of file