From d3e392d6ef243eea84b7b8717ffdaea404742c05 Mon Sep 17 00:00:00 2001 From: martin_r Date: Mon, 15 Sep 2008 14:31:38 +0000 Subject: git-svn-id: https://svn.neo-layout.org@882 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/README.txt | 6 +- windows/autohotkey/Compose/AutoComp2.bas | 19 +- .../autohotkey/Compose/Compose-Combinations.ahk | 116 -------- windows/autohotkey/Compose/Compose-Merge.bat | 1 - windows/autohotkey/Compose/Compose-Methods.ahk | 170 ----------- windows/autohotkey/Compose/Compose-Warning.ahk | 26 -- windows/autohotkey/Compose/Compose-all-in-one.ahk | 310 --------------------- 7 files changed, 12 insertions(+), 636 deletions(-) delete mode 100644 windows/autohotkey/Compose/Compose-Combinations.ahk delete mode 100644 windows/autohotkey/Compose/Compose-Merge.bat delete mode 100644 windows/autohotkey/Compose/Compose-Methods.ahk delete mode 100644 windows/autohotkey/Compose/Compose-Warning.ahk delete mode 100644 windows/autohotkey/Compose/Compose-all-in-one.ahk (limited to 'windows') diff --git a/windows/README.txt b/windows/README.txt index ac97b5b..d91e8dd 100644 --- a/windows/README.txt +++ b/windows/README.txt @@ -2,8 +2,8 @@ Für viele Windowsversionen sind hier Treiber zu finden. == autohotkey == -Hier befindet sich ein Treiber, der mit der Autohotkey-Scriptsprache (http://www.autohotkey.com) erstellt wurde. Hierfür muss lediglich eine ausführbare EXE-Datei heruntergeladen und gestartet werden. -Dazu benötigt man insbesondere keine Administratorrechte, wenn man das Programm beispielsweise in dem Verzeichnis „Eigene Dateien“ abspeichert, so dass sich dieser Treiber gut zum schnellen ausprobieren von NEO eignet. Zudem kann man diesen Treiber etwa von einem USB-Stick aus starten, wenn man auf einem fremden Rechner arbeiten muss/will: +Hier befindet sich ein Treiber, der mit der Autohotkey-Skriptsprache (http://www.autohotkey.com) erstellt wurde. Hierfür muss lediglich eine ausführbare EXE-Datei heruntergeladen und gestartet werden. +Dazu benötigt man insbesondere keine Administratorrechte, wenn man das Programm beispielsweise in dem Verzeichnis „Eigene Dateien“ abspeichert, so dass sich dieser Treiber gut zum schnellen Ausprobieren von NEO eignet. Zudem kann man diesen Treiber etwa von einem USB-Stick aus starten, wenn man auf einem fremden Rechner arbeiten muss/will: == neo_portable.zip == Wenn man den Inhalt dieses zip-Archives auf einen USB-Stick entpackt, startet sich der Autohotkey-Treiber automatisch, sobald man den USB-Stick in den USB-Port steckt. @@ -32,5 +32,5 @@ Für Windows 95 und 98 gibt es nur die Version 1 von NEO. Und zwar hier: [Link f [Zu klären/testen: Funktioniert der ahk oder der kbdneo2 auch noch unter Windows 95? Benutzt das noch jemand?] - +Der AHK funktioniert afaik nicht unter Windows 95/98. diff --git a/windows/autohotkey/Compose/AutoComp2.bas b/windows/autohotkey/Compose/AutoComp2.bas index dde2bae..7f77356 100644 --- a/windows/autohotkey/Compose/AutoComp2.bas +++ b/windows/autohotkey/Compose/AutoComp2.bas @@ -1,33 +1,32 @@ REM ***** BASIC ***** 'Programm zur Umwandlung einer ComposeList.txt-Datei in eine Compose.ahk-Datei. -'© 14. und 15. Sept. 2008 Martin Paul Roppelt (m.p.roppelt@web.de) – GPL 2/3 +'© 14. - 16. Sept. 2008, Martin Paul Roppelt (m.p.roppelt@web.de) – GPL 2/3 'Anleitung: 'Pfade anpassen :-) 'Alle Tabulatoren durch ein /einzelnes/ Leerzeichen ersetzen. +'Quelldatei als UTF16-Little-Endian speichern. 'Skript ausführen. -'Korrektur von ein paar ungelösten kleinen Problemchen: +'Korrektur von ein paar ungelösten Problemen: 'Letzte Zeile der Ausgabedatei durch "}" ersetzen. -'Folgende Zeilen abändern (muss man in der Quelldatei suchen!): -'CheckCompUni(" ", 0xE04A", 0x) -> -'CheckCompUni(" +'Folgende Zeilen abändern: +'CheckCompUni(" ", 0xE04A", 0x) -> +'CheckCompUni(" :????) -> 'CheckCompUni(" ", 0xE04A) 'CheckCompUni(" ", 0x????) -'Compose unter Windows genießen! Sub Main Open "C:\Users\Martin_2\Programmieren\NEO\ComposeList16.txt" For Binary Lock Write As #1 - Open "C:\Users\Martin_2\NEO\windows\autohotkey\Source\Compose.ahk" For Output Lock Read Write As #2 + Open "C:\Users\Martin_2\NEO\windows\autohotkey\Source\Composet.ahk" For Output Lock Read Write As #2 Print #2, "CheckCompose() {" Print #2, "CheckCompUni("; chr(34); - Position& = -2 For Position& = 1 To Lof(1) Step 2 Get #1, Position&, a% If a% = 10 Then Print #2, ")" : Klammer% = 0: Kommentar% = 0: Quotedbl% = 0 Print #2, "CheckCompUni("; chr(34); - ElseIf a%=asc(":") Then + ElseIf a%=asc(":") and Zeichen% <> 1 Then Print #2, chr(34); ", 0x"; Zeichen% = 1 ElseIf a%=asc(" ") Then @@ -41,7 +40,7 @@ Sub Main Kommentar% = 1 Zeichen = 0 EndIf - ElseIf Klammer% <> 1 and a% < 255 and a% > 0 and Kommentar% <> 1 and Zeichen% <> 1 Then + ElseIf Klammer% <> 1 and a% < 255 and a% > 0 and Kommentar% <> 1 Then Print #2, Chr(a%); ElseIf Klammer% <> 1 and Kommentar% <> 1 Then If a% <> -257 Then Print #2, Iif(Len(Hex(a%))>4, Right(Hex(a%),4),Hex(a%)); diff --git a/windows/autohotkey/Compose/Compose-Combinations.ahk b/windows/autohotkey/Compose/Compose-Combinations.ahk deleted file mode 100644 index 4be944b..0000000 --- a/windows/autohotkey/Compose/Compose-Combinations.ahk +++ /dev/null @@ -1,116 +0,0 @@ -/* -******************************************* - Compose-Kombinationen -******************************************* - -Diese sollen später automatisch generiert werden. - - -******************************************** -* Zu Testzwecken aufgenommene Kombinationen -* (in der Linux-Schreibweise) -******************************************** - - "©" # copyright - <1> <2> "½" # FRACTION 1/2 - <2> <0> "xx" # SMALL ROMAN NUMERAL 20 - <2> <0> <0> "cc" # SMALL ROMAN NUMERAL 200 - <2> <0> <0> <0> "mm" # SMALL ROMAN NUMERAL 2000 - <3> <9> <9> <9> "mmmcmxcix" # SMALL ROMAN NUMERAL 3999 - <2> <0> <0> <0> "\u216f\u216f" # ROMAN NUMERAL 2000 - - -******************************************** -* Bedeutung der Parameter im Keystring -* (Quelle: http://www.autohotkey.com/docs/Hotstrings.htm) -******************************************** - -* (asterisk): An ending character (e.g. space, period, or enter) is not required to trigger the hotstring. -O: Omit the ending character of auto-replace hotstrings when the replacement is produced. This is useful when you want a hotstring to be kept unambiguous by still requiring an ending character, but don't actually want the ending character to be shown on the screen. -? (question mark): The hotstring will be triggered even when it is inside another word; that is, when the character typed immediately before it is alphanumeric. -Z: This rarely-used option resets the hotstring recognizer after each triggering of the hotstring. In other words, the script will begin waiting for an entirely new hotstring, eliminating from consideration anything you previously typed. This can prevent unwanted triggerings of hotstrings. -ob * und O gleichzeitig gebraucht werden... vielleicht ist das O überflüssig :) -Beim Z bin ich mir auch nicht ganz sicher. Aber es funktioniert halt ;) - -******************************************* - Hier beginnt der eigentliche Code -******************************************* -*/ - - -; "©" # copyright -:*O?ZC:oc:: - if (composeActive) { - send © - composeActive := 0 - } else { - send oc - } -Return - -; <1> <2> "½" # FRACTION 1/2 -:*O?ZC:12:: - if (composeActive) { - send ½ - composeActive := 0 - } else { - send 12 - } -Return - - -; <2> <0> "xx" # SMALL ROMAN NUMERAL 20 -:*O?ZC:r20:: - if (composeActive) { - send xx - composeActive := 0 - } else { - send 20 - } -Return - -; <2> <0> <0> "cc" # SMALL ROMAN NUMERAL 200 -:*O?ZC:r200:: - if (composeActive) { - send cc - composeActive := 0 - } else { - send 200 - } -Return - -; <2> <0> <0> <0> "mm" # SMALL ROMAN NUMERAL 2000 -:*O?ZC:r2000:: - if (composeActive) { - send mm - composeActive := 0 - } else { - send 2000 - } -Return - -; <3> <9> <9> <9> "mmmcmxcix" # SMALL ROMAN NUMERAL 3999 -:*O?ZC:r3999:: - if (composeActive) { - send mmmcmxcix - composeActive := 0 - } else { - send 3999 - } -Return - -; <2> <0> <0> <0> "\u216f\u216f" # ROMAN NUMERAL 2000 -:*O?ZC:R2000:: - if (composeActive) { - SendUnicodeChar(0x216F) - SendUnicodeChar(0x216f) - composeActive := 0 - } else { - send 2000 - } -Return - -;*******************************************/ -; Ende -;*******************************************/ - diff --git a/windows/autohotkey/Compose/Compose-Merge.bat b/windows/autohotkey/Compose/Compose-Merge.bat deleted file mode 100644 index 2a59dd2..0000000 --- a/windows/autohotkey/Compose/Compose-Merge.bat +++ /dev/null @@ -1 +0,0 @@ -copy /B Compose-Warning.ahk + Compose-Methods.ahk + Compose-Combinations.ahk Compose-all-in-one.ahk \ No newline at end of file diff --git a/windows/autohotkey/Compose/Compose-Methods.ahk b/windows/autohotkey/Compose/Compose-Methods.ahk deleted file mode 100644 index 598d456..0000000 --- a/windows/autohotkey/Compose/Compose-Methods.ahk +++ /dev/null @@ -1,170 +0,0 @@ -/* -******************************************* -* Über dieses Skript -******************************************* -Dies ist ein experimentelles Minimalbeispiel, um die noch fehlende -Compose-Funktionalität in der neo20-all-in-one.ahk zu implementieren. - -Konkret werden dafür die sog. Hotstrings genutzt: -http://www.autohotkey.com/docs/Hotstrings.htm - -Die eigentlichen Kombinationen sollen später aus den Linux-Sourcen -automatisch generiert werden. - -Autoren: Matthias Berg, Dennis Heidsiek - - -******************************************* -* Kurze Beschreibung der Funktionsweise -******************************************* - -compose aktiviert die hotstrings und die nächsten oc (copyright) oder 12 -(einhalb) werden ersetzt und deaktivieren es aber sofort. - -Also {compose}neoocneo12 wird zu neo©neo12 (einhalb wird nicht ersetzt). -damit dies aber nicht unendlich lange geht (also erst ein paar Wörter später -eine Ersetzung erfolgt, weil nach Compose doch umentschieden wurde), wird mit -Space (vielleicht auch später mit anderen Tasten) compose wieder deaktiviert. - -******************************************* -* Offene und noch zu lösende Probleme: -******************************************* -- Anscheinend funktionieren die Compose-Kombinationen nicht mit umgemappten - Tasten? - -- {compose}r200 und {compose}r2000 können nicht eingegeben werden, - da zuvor {compose}r20 erkannt und sofort verarbeitet wird - -- Können mit den Hotkeys auch die toten Tasten erzeugt werden, z.B. - (in Linux-Schreibweise): - : "ø" # LATIN SMALL LETTER O WITH STROKE - -- Unbedingt die folgende noch fehlende Dokumentation ergänzen, damit die - Compose-Kombinationen von automatisch aus den Linux-Sourcen - generiert werden können: Wofür bzw. wann benutzt man: - - send a - - - send {blind} a - - - sendinput a - - - sendinput {blind}a - - - SendUnicodeChar(0x0061) - - - BSSendUnicodeChar(0x0061) - - - CompUnicodeChar(0x0061) - - - Comp3UnicodeChar(0x0061) - - - - - -******************************************* -* Gelöste Probleme: -******************************************* - -- {compose}r2000 und {compose}R2000 werden jetzt unterschieden: - Alle Keystrings sind jetzt Case-sensitive (Parameter C) - -*/ - - - - - -/* -******************************************** -* Compose-Methoden -******************************************* -*/ - -composeActive := 0 ; unsere neue Variable - -~Space::composeActive := 0 ; Space und später andere Tasten sollten es deaktivieren -*CapsLock::return ; capslock soll ja nichts einrasten :) - -*tab:: ; Dies ist so ähnlich wie neo_tab: - if (IsMod3Pressed()) { ;# - composeActive := 1 - PriorDeadKey := "comp" - CompKey := "" - } - else { - send {blind}{Tab} - PriorDeadKey := "" - CompKey := "" - } -return - -IsMod3Pressed() -{ - return ( GetKeyState("CapsLock","P") or GetKeyState("#","P") ) ; # = SC02B -} - -; Test: Funktionieren die Compose-Kombinationen auch noch, wenn Tasten umgemappt werden? -q:: - send r -return - -w:: - send R -return - -/* -*R:: sendinput {blind}r - -******************************************** -* Unicode-Methoden -******************************************** -*/ - -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) -} - diff --git a/windows/autohotkey/Compose/Compose-Warning.ahk b/windows/autohotkey/Compose/Compose-Warning.ahk deleted file mode 100644 index bc7acf4..0000000 --- a/windows/autohotkey/Compose/Compose-Warning.ahk +++ /dev/null @@ -1,26 +0,0 @@ -/* -******************************************* -THIS IS A AUTO-GENERATED SCRIPT! - -DO NOT EDIT! - -INSTEAD, PLEASE EDIT THE FILES: - - -Compose-Methods.ahk -Compose-Warning.ahk -... - -******************************************* -*/ - - - - - - - - - - - diff --git a/windows/autohotkey/Compose/Compose-all-in-one.ahk b/windows/autohotkey/Compose/Compose-all-in-one.ahk deleted file mode 100644 index 8915d3e..0000000 --- a/windows/autohotkey/Compose/Compose-all-in-one.ahk +++ /dev/null @@ -1,310 +0,0 @@ -/* -******************************************* -THIS IS A AUTO-GENERATED SCRIPT! - -DO NOT EDIT! - -INSTEAD, PLEASE EDIT THE FILES: - - -Compose-Methods.ahk -Compose-Warning.ahk -... - -******************************************* -*/ - - - - - - - - - - - -/* -******************************************* -* Über dieses Skript -******************************************* -Dies ist ein experimentelles Minimalbeispiel, um die noch fehlende -Compose-Funktionalität in der neo20-all-in-one.ahk zu implementieren. - -Konkret werden dafür die sog. Hotstrings genutzt: -http://www.autohotkey.com/docs/Hotstrings.htm - -Die eigentlichen Kombinationen sollen später aus den Linux-Sourcen -automatisch generiert werden. - -Autoren: Matthias Berg, Dennis Heidsiek - - -******************************************* -* Kurze Beschreibung der Funktionsweise -******************************************* - -compose aktiviert die hotstrings und die nächsten gr (copyright) oder 12 -(einhalb) werden ersetzt und deaktivieren es aber sofort. - -Also {compose}neoocneo12 wird zu neo©neo12 (einhalb wird nicht ersetzt). -damit dies aber nicht unendlich lange geht (also erst ein paar Wörter später -eine Ersetzung erfolgt, weil nach Compose doch umentschieden wurde), wird mit -Space (vielleicht auch später mit anderen Tasten) compose wieder deaktiviert. - -******************************************* -* Offene und noch zu lösende Probleme: -******************************************* -- Anscheinend funktionieren die Compose-Kombinationen nicht mit umgemappten - Tasten? - -- {compose}r200 und {compose}r2000 können nicht eingegeben werden, - da zuvor {compose}r20 erkannt und sofort verarbeitet wird - -- Können mit den Hotkeys auch die toten Tasten erzeugt werden, z.B. - (in Linux-Schreibweise): - : "ø" # LATIN SMALL LETTER O WITH STROKE - -- Unbedingt die folgende noch fehlende Dokumentation ergänzen, damit die - Compose-Kombinationen von automatisch aus den Linux-Sourcen - generiert werden können: Wofür bzw. wann benutzt man: - - send a - - - send {blind} a - - - sendinput a - - - sendinput {blind}a - - - SendUnicodeChar(0x0061) - - - BSSendUnicodeChar(0x0061) - - - CompUnicodeChar(0x0061) - - - Comp3UnicodeChar(0x0061) - - - - - -******************************************* -* Gelöste Probleme: -******************************************* - -- {compose}r2000 und {compose}R2000 werden jetzt unterschieden: - Alle Keystrings sind jetzt Case-sensitive (Parameter C) - -*/ - - - - - -/* -******************************************** -* Compose-Methoden -******************************************* -*/ - -composeActive := 0 ; unsere neue Variable - -~Space::composeActive := 0 ; Space und später andere Tasten sollten es deaktivieren -*CapsLock::return ; capslock soll ja nichts einrasten :) - -*tab:: ; Dies ist so ähnlich wie neo_tab: - if (IsMod3Pressed()) { ;# - composeActive := 1 - PriorDeadKey := "comp" - CompKey := "" - } - else { - send {blind}{Tab} - PriorDeadKey := "" - CompKey := "" - } -return - -IsMod3Pressed() -{ - return ( GetKeyState("CapsLock","P") or GetKeyState("#","P") ) ; # = SC02B -} - -; Test: Funktionieren die Compose-Kombinationen auch noch, wenn Tasten umgemappt werden? -q:: - send r -return - -w:: - send R -return - -/* -******************************************** -* Unicode-Methoden -******************************************** -*/ - -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) -} - -/* -******************************************* - Compose-Kombinationen -******************************************* - -Diese sollen später automatisch generiert werden. - - -******************************************** -* Zu Testzwecken aufgenommene Kombinationen -* (in der Linux-Schreibweise) -******************************************** - - "©" # copyright - <1> <2> "½" # FRACTION 1/2 - <2> <0> "xx" # SMALL ROMAN NUMERAL 20 - <2> <0> <0> "cc" # SMALL ROMAN NUMERAL 200 - <2> <0> <0> <0> "mm" # SMALL ROMAN NUMERAL 2000 - <3> <9> <9> <9> "mmmcmxcix" # SMALL ROMAN NUMERAL 3999 - <2> <0> <0> <0> "\u216f\u216f" # ROMAN NUMERAL 2000 - - -******************************************** -* Bedeutung der Parameter im Keystring -* (Quelle: http://www.autohotkey.com/docs/Hotstrings.htm) -******************************************** - -* (asterisk): An ending character (e.g. space, period, or enter) is not required to trigger the hotstring. -O: Omit the ending character of auto-replace hotstrings when the replacement is produced. This is useful when you want a hotstring to be kept unambiguous by still requiring an ending character, but don't actually want the ending character to be shown on the screen. -? (question mark): The hotstring will be triggered even when it is inside another word; that is, when the character typed immediately before it is alphanumeric. -Z: This rarely-used option resets the hotstring recognizer after each triggering of the hotstring. In other words, the script will begin waiting for an entirely new hotstring, eliminating from consideration anything you previously typed. This can prevent unwanted triggerings of hotstrings. -ob * und O gleichzeitig gebraucht werden... vielleicht ist das O überflüssig :) -Beim Z bin ich mir auch nicht ganz sicher. Aber es funktioniert halt ;) - -******************************************* - Hier beginnt der eigentliche Code -******************************************* -*/ - - -; "©" # copyright -:*O?ZC:oc:: - if (composeActive) { - send © - composeActive := 0 - } else { - send oc - } -Return - -; <1> <2> "½" # FRACTION 1/2 -:*O?ZC:12:: - if (composeActive) { - send ½ - composeActive := 0 - } else { - send 12 - } -Return - - -; <2> <0> "xx" # SMALL ROMAN NUMERAL 20 -:*O?ZC:r20:: - if (composeActive) { - send xx - composeActive := 0 - } else { - send 20 - } -Return - -; <2> <0> <0> "cc" # SMALL ROMAN NUMERAL 200 -:*O?ZC:r200:: - if (composeActive) { - send cc - composeActive := 0 - } else { - send 200 - } -Return - -; <2> <0> <0> <0> "mm" # SMALL ROMAN NUMERAL 2000 -:*O?ZC:r2000:: - if (composeActive) { - send mm - composeActive := 0 - } else { - send 2000 - } -Return - -; <3> <9> <9> <9> "mmmcmxcix" # SMALL ROMAN NUMERAL 3999 -:*O?ZC:r3999:: - if (composeActive) { - send mmmcmxcix - composeActive := 0 - } else { - send 3999 - } -Return - -; <2> <0> <0> <0> "\u216f\u216f" # ROMAN NUMERAL 2000 -:*O?ZC:R2000:: - if (composeActive) { - SendUnicodeChar(0x216F) - SendUnicodeChar(0x216f) - composeActive := 0 - } else { - send 2000 - } -Return - -;*******************************************/ -; Ende -;*******************************************/ - -- cgit v1.2.3