feature/programmer
martin_r 15 years ago
parent b01242aa97
commit 17e7a57dc6
  1. 76
      DONE.txt
  2. 2
      FAQ.txt
  3. 9
      Subversion-Anleitung.txt
  4. 58
      TODO.txt
  5. 12
      griechisch_schreiben.txt
  6. 105
      mathe-und-so-zeichen.txt
  7. 2
      sonderzeichenbigramme.txt
  8. 2
      undo_redo
  9. 6
      windows/README.txt
  10. 19
      windows/autohotkey/Compose/AutoComp2.bas
  11. 116
      windows/autohotkey/Compose/Compose-Combinations.ahk
  12. 1
      windows/autohotkey/Compose/Compose-Merge.bat
  13. 170
      windows/autohotkey/Compose/Compose-Methods.ahk
  14. 26
      windows/autohotkey/Compose/Compose-Warning.ahk
  15. 310
      windows/autohotkey/Compose/Compose-all-in-one.ahk

@ -22,23 +22,21 @@ beschlossen wurden.
europäische Sprachen, da viel häufiger verwendet von deutschen Schreibern –
also NEO-Benutzern.
- Linux: Der Name des Layouts sollte in den Treibern »de_neo« sein und im X-Server „neo“ eine Option des Layouts „de“ sein.
- Linux: Der Name des Layouts sollte in den Treibern »de_neo« sein und im X-Server „neo“ eine Option des Layouts „de“ sein.
- ü und ö getauscht, am 15. Oktober wurde gezeigt, wie einstimmig der
Beschluss ist (siehe Mail von Erik an diesem Tag).
- ü und ö getauscht.
== 30. Juli 2007 ==
- Pfeile (wie in der Druckvorlage von Philipp) als Symbole für die
Modifikatortasten. Zusätzlich noch 2, 3, 5 in die Schäfte der Pfeile, damit
man sie auch benennen kann. „Drück Pfeil3+f für »=«.“
- Komponiertaste (Sympol: Note) auf Mod3+Tab (siehe Textgrafik neo20.txt).
- Komponiertaste (Symbol: Note) auf Mod3+Tab (siehe Textgrafik neo20.txt).
- Eth »Ð« und eth »ð« bzw. »đ« werden mit Komponiertaste erstellt,
wobei »ð« entweder mit Komp+/+d oder Komp+-+δ oder Komp+-+∂ erstellt
werden könnte. Dann das »đ« einfach nur mit Komp+-+d.
wobei »ð« entweder mit ♫/d oder ♫-δ oder ♫-∂ erstellt
werden könnte. Dann das »đ« einfach nur mit ♫-d.
- Schmales Leerzeichen bleibt auf Leertaste (zu selten und so logischer)
- Schmales Leerzeichen bleibt auf Leertaste (zu selten und so logischer).
- Neo-Light auf Eis gelegt. Fürs Archiv trotzdem mal die Vorschläge der Namen:
NEO carving / NEO race
@ -62,62 +60,22 @@ beschlossen wurden.
NEO World
oder: NEO full --> das richtige und komplette NEO
- 6. Ebene erreichbar mit Mod3+Mod4
- Wer beteiligt sich noch an der Entwicklung des neuen Windowstreibers?
Kann der bisherige Entwickler (Florian) Interessierten vielleicht ’ne
kleine Einführung geben?
MartinBBBBBB wird Florian unterstützen bei der Treiberentwicklung unter Windows
- Anleitung schreiben
Eine kurze und außerdem eine ausführliche Anleitung für die Zeichen und
deren Benutzung schreiben.
Die Kurzeinführung sollte solche Zeichen mitabdecken:
( ) \ / ! ? ; : _ - @ und % und Gedankenstrich/Bisstrich (ist das
gleiche, siehe FAQ)
Ergänzung: auch ¢ = + sollten erwähnt werden
- Homepage/Webpräsenz
a) neo-layout.org allein, alles andere leitet darauf weiter, außerdem Bens
Server benutzen, wenn Falk die Domain her gibt
b) wir setzen ein trac auf
d) Die Frontseite wird im wiki angelegt, wenn jemand Ressourcen übrig hat,
darf er eine statische Seite nachreichen
- 6. Ebene
a) erreichbar mit Mod3+Mod4 (hat Erik in der neo20.txt geändert)
b) Welche Zeichen sollten verändert werden (Pascals Vorschlag liefert
hier Anregungen) (hat Erik gemacht, Omega/Omikron und Element müssen weiter diskutiert werden)
- Mailingliste? gardak kann helfen
- Wer beteiligt sich noch an der Entwicklung des neuen Windowstreibers?
Kann der bisherige Entwickler (Florian) Interessierten vielleicht ’ne
kleine Einführung geben?
MartinBBBBBB wird Florian unterstützen bei der Treiberentwicklung unter
Windows
- Nutzt niemand OS X? Treiber…?
Leider nicht. Aber ein erster Ausgangspunkt ist vielleicht:
http://developer.apple.com/technotes/tn2002/tn2056.html
- Nutzt niemand OS X? Treiber…?
Leider nicht. Aber ein erster Ausgangspunkt ist vielleicht:
http://developer.apple.com/technotes/tn2002/tn2056.html
- ‣ Mod3_Lock wird nicht gebraucht
‣ Shift+Shift zu Caps-Lock
‣ Mod4+Mod4 zu Mod4-Lock
- ‣ Mod3_Lock wird nicht gebraucht
‣ Shift+Shift zu Caps-Lock
‣ Mod4+Mod4 zu Mod4-Lock
- ‣ tote Striche (Akzente) – welche und wie viele sind nötig?,
Anordnung/Priorität
‣ Fehlen noch irgendwelche Zeichen europäischer Sprachen?
‣ Schwa, Thorn? Wie wichtig? Wie realisieren? Gibt es da was übliches? (beide schon in der Standard-Compose (nur das große Schwa wurde ergänzt)
⇒ Erik kümmert sich um alles (oh Gott): Fragt Karl Pentzlin, Erkki aus
Finnland und die CDFG-Mailingliste
- Warum das ∞ auf dem Ziffernblock:
das ∞ braucht man häufig im Zusammenhang mit dem → Zum Beispiel bei x→∞, darum
wurde das ∞ neben das → gelegt
16. Juli 2008:
Benennung der Ebenen: Siehe FAQ (kurz: jeder wie er mag, es gibt keine
Überschneidungen)

@ -1,2 +0,0 @@
Die FAQs befinden sich nun an neuer Stelle im Wiki:
http://wiki.neo-layout.org/wiki/FAQ

@ -100,14 +100,19 @@ Statt auschecken wie in Abschnitt 2.1 beschrieben:
In diesem Abschnitt geht es weniger um technische Fragen, sondern eher darum, wie man sinnvoll/empfohlenerweise mit einem SVN arbeiten sollte. Diese Ratschläge haben sich in der Praxis als sinnvoll erwiesen:
• Bevor man beginnt, die eigene SVN-Kopie zu bearbeiten, sollte immer erst ein Update durchgeführt werden (insbesondere, wenn das letzte Aus-checken schon länger her liegt). Dies vermeidet mögliche Konflikte.
• Es ist vorteilhaft, inhaltlich Zusammengehörendes auch gemeinsam zu committen, und Dinge, die voneinander unabhängig sind, auch einzeln einzuchecken.
• Die Änderungsbeschreibung sollte immer eingegeben werden und möglichst genau sein.
• Längere Änderungsbeschreibungen sollten mit einer kurzen Zusammenfassung der Form »[Adjektiv] Subjekt Prädikat: …« begonnen werden, etwa »Neues Feature: …«, »Caps-Lock-Fehler behoben: …«, »Dokumentation ergänzt: …«
• Inhaltliche (bzw. »programmiertechnische«) Änderungen (oder Fehlerkorrekturen) sollten unabhängig von ästhetischen Korrekturen (wie Einrückungen oder der Korrektur von Rechtschreibfehlern) eingecheckt werden. Mögliche Änderungsbeschreibungen wären etwa: [Revision 698:] »Doku erweitert: Wie man NEO auf dem C64 installieren kann«, [Revision 699:] »Formatierung korrigiert: Leere Zeilen entfernt, Einrückung angeglichen (r698)«
• Größere Commits können auch aufgeteilt werden, wenn die Intention dazu aus den Änderungsbeschreibungen hervor geht.
• Wenn man Angst um kostbare Änderungen durch einen Headcrash während einer intensiven Change-Session hat, muss man einen Branch für den Zeitraum der Änderungen eröffnen.
• Änderungen an der Referenz sollten unbedingt vorher auf der Mailingliste besprochen bzw. ausdiskutiert werden. Unwesentlichen Änderungen sollten zumindestens auf der Liste erwähnt werden.
• …
• Änderungen an der Referenz sollten unbedingt vorher auf der Mailingliste besprochen bzw. ausdiskutiert werden. Unwesentliche Änderungen sollten zumindestens auf der Liste erwähnt werden.
------------------------------------------------------------------------------

@ -16,50 +16,6 @@
• auch wenn es z.B. unter OpenOffice nicht läuft: wir haben auch den
Ziffernblock belegt – den sollte man also auch im Bild mit aufnehmen
== Themen für das IRC-Treffen am Montag ==
30) Homepage/Webpräsenz
c) Wir sollten Aufgaben verteilen (wer dokumentiert was, wer macht
Grafiken usw.)
32) Griechische Buchstaben
a) Alle rein? Auch Omikron?
Pro:
0P.) - Die Bedeutung und Aktualität des Griechischen ist erkennbar, da sich selbst eine sehr moderne Bewegung NEO und nicht NOUVEAU oder NEW nennt ;-)
1P.) - Unsere Abendländische Kultur ist geprägt vom Griechischen; egal ob Philosophie, Mathematik, Musik – jede Erklärung im Brockhaus oder der Wikipedia startet mit einem oftmals griechischen Wortursprung
2P.) - Braucht man für semantisch sinnvolle griechische Texte und korrekte Typographie
3P.) - Man muss beim Zitieren für jedes in der Wortmitte auftretende Omikron zweimal die Ebene wechseln (und selbst dann hat man nur ein o; typograpisch korrekt kann man nur umständlich oder per copy’n’paste schreiben – genau das will NEO vermeiden)
4P.) - Verwechslung unwahrscheinlich, da 5. Ebene(!) und inmitten griechischer Zeichen
5P.) - Verwechslungsgefahr (für Compiler) besteht nur, wenn versehentlich 2 Modifier zuviel gedrückt wurden
– (nur Shift) statt - ist gefährlicher (z.B. in Excel =A1–A2) → beides in den FAQ
6P.) - die kleinen griechischen Buchstaben wären dann komplett. Es ist der einzige, der ansonsten fehlt
7P.) - Das kleine Omega ω gleicht dem Ausweichbuchstaben w
8P.) - durch ω auf w (also auch Ω) verbleibt der bessere Platz für das wichtige ∈ neben E auf der Hauptreihe
9P.) - @1K) eine Frage der Gewöhnung, ebenso wie eta nicht auf e und theta nicht auf t liegt
10P.) - @2K.) Argument ist einseitig und übersieht andere Bedürfnisse
Kontra:
1K.) - Klangähnlichkeit (Wenn ich das Omega suche, werde ich beim O anfangen)
2K.) - Braucht man nicht für Formeln
3K.) - es sieht genauso aus wie das o → Verwechslung
- Nährboden für Compilerfehler („kann funktion »open()« nicht finden“) (!)
4K.) - es macht die Ebene unnötig voll
5K.) - es versperrt den Platz für das Omega ω
6K.) - Omikron hat keinen Gegenpart in der Mat/Nat-Ebene
7K.) - wir haben eh nicht alle Großbuchstaben warum also die Kleinen voll machen
b) Omega (ω und Ω) wohin?
c) Was ist mit den ganzen Varianten? Wohin? Welche nötig? Alle?
35) Nutzt niemand OS X? Treiber…?
http://developer.apple.com/technotes/tn2002/tn2056.html
38) ‣ Logogestaltung? Kriterien? Welches nehmen wir (von den vorhandenen)? Oder ein neues?
‣ logo für: Webseite (groß, klein), Aufkleber, Aufnäher, Plakate/Banner, was noch....?
Siehe Mail »Logogestaltung« vom 1.1.08; 16:08
24) ‣ Liste der toten Tasten erweitern, so dass alle Möglichkeiten drin stehen.
Denn auf viele Zeichen kommt man gar nicht, wenn man es nicht schon weiß
(beispielsweise ^2 = ²).
@ -86,11 +42,17 @@ Lateinische Buchstaben mit Akzenten
39) Wie sollen die „toten Tasten“ genannt werden? tot1, tot2, tot3?
‣ tote Striche (Akzente) – welche und wie viele sind nötig?,
Anordnung/Priorität
‣ Fehlen noch irgendwelche Zeichen europäischer Sprachen?
‣ Schwa, Thorn? Wie wichtig? Wie realisieren? Gibt es da was übliches? (beide schon in der Standard-Compose (nur das große Schwa wurde ergänzt)
⇒ Erik kümmert sich um alles (oh Gott): Fragt Karl Pentzlin, Erkki aus
Finnland und die CDFG-Mailingliste
40) Die Lizenzierung von NEO klären: In der Wikipedia steht nur das Folgende:
»Die NEO-Tastaturbelegung wurde unter der GNU General Public License <http://de.wikipedia.org/wiki/GNU_General_Public_License> (GPL) veröffentlicht und ist somit in diesem Sinne frei. «
Ist damit die GPLv2 oder die GPLv3 gemeint? Oder ist das für uns eher unwichtig? Oder gibt es da für uns relevante Unterschiede und wenn ja welche?
Ist damit die GPLv2 oder die GPLv3 gemeint oder veröffentlichen wir sie unter beiden? Oder ist das für uns eher unwichtig? Oder gibt es da für uns relevante Unterschiede und wenn ja welche?
Und was genau steht unter dieser Lizenz? »Nur« die abstrakte theoretische Referenz, oder alle konkreten Treiber, oder der gesamte Inhalt des SVNs? Oder steht beispielsweise die FAQ eher unter der GNU-Lizenz für freie Dokumentation?
@ -105,3 +67,9 @@ Man muss das ganze eben unter eine Lizenz stellen. Wenn die Lizenz "Mach damit,
Und wenn wir eine CreativeCommons-Lizenz nutzen wollen: ¿Welche? Ist z.B. die kommerzielle Nutzung erlaubt oder nicht – darf z.B. Apple eine NEO2-Variante zum neuen Apple-Tastatur-Standard im OS 10.8 erklären und dann überteuerte, nur mit Apple-Rechnern funktionierende »NEO2ε«-Tastaturen verkaufen?
41) Reihenfolge auf Ebene 6 tauschen: ⇐⇔⇒ statt ⇒⇔⇐ (siehe Mails »Re: [neo] Antrag: Aufnahme der spitzen Klammern« vom 09.07.2008 00:10)
42) Anleitung schreiben
Eine kurze und außerdem ausführliche Anleitung für die Zeichen und
deren Benutzung schreiben.
Die Kurzeinführung sollte solche Zeichen mitabdecken:
( ) \ / ! ? ; : _ - @ ¢ = + und % und Gedankenstrich/Bisstrich

@ -1,8 +1,8 @@
== Infos auf der Mailingliste und im Web ==
Die meiste Information gibt es schon auf
http://www.stefanluecking.de/exegese/unicode/linux-griechisch.html
http://www.stefanluecking.de/exegese/unicode/linux-griechisch.html
Weiters ist einiges in den Mails mit dem Betreff „Nochmal Griechisch“ (vom
Weiterhin ist einiges in den Mails mit dem Betreff „Nochmal Griechisch“ (vom
22.10.2007 22:04) zu finden.
== Wie lassen sich die einzelnen Akzente auf den Buchstaben schreiben ==
@ -45,9 +45,9 @@ drücken muss.
=== 5. Ebene der Tastatur (nur griechische Kleinbuchstaben) ===
┌───┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬──────┐
│ T │ │ │ │ │ │6│ϰ│8│ │ │ │T│ Back │
├───┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬─────┤ Uneinigkeit: μ (Mu) oder µ (Micro)
├───┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬─────┤ T steht für eine tote Taste
│Tab │ξ│ │λ│χ│ω│κ│ψ│γ│ϕ│φ│ς│T│ Ret │
├────┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴─┐ │ T steht für eine tote Taste
├────┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴─┐ │
│ M3 │ │ι│α│ε│ │σ│ν│ρ│τ│δ│υ│M3│ │
├───┬─┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴──┴───┤
│Sft│M5│ │ │η│π│ζ│β│μ│ϱ│θ│ϑ│ Shift │
@ -58,8 +58,8 @@ drücken muss.
=== 6. Ebene der Tastatur (nur griechische Großbuchstaben) ===
┌───┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬──────┐
│ T │ │ │ │ │ │ │ │ │ │ │ │T│ Back │
├───┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬─────┤
│Tab │Ξ│ │Λ│ │Ω│ │Ψ│Γ│Φ│ │ │T│ Ret │ T steht für eine tote Taste
├───┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬─────┤ T steht für eine tote Taste
│Tab │Ξ│ │Λ│ │Ω│ │Ψ│Γ│Φ│ │ │T│ Ret │
├────┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴─┐ │
│ M3 │ │ │ │ │ │Σ│ │ │ │Δ│ │M3│ │
├───┬─┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴──┴───┤

@ -1,105 +0,0 @@
===============================================================================
==== Mail von Carsten Dahlmann vom 27.06.2007 18:51 ====
ſ
───┬─────┬─────┬─────────┐
│ │ │Backspace│
│- │ˊ │ ⌫ │
┬──┴──┬──┴──┬──┴──┬──────┤
│Q │ẞ │ │ │
│ │ß ſ │~ │Enter │
┴┬────┴┬────┴┬────┴┐ │
│D │Y │ Mod │ ↲ │
│ │ │ 3 │ │
─┴──┬──┴──┬──┴─────┴─────┤
===============================================================================
===============================================================================
==== Mail von Martin Engel vom 29.06.2007 11:15 (Physik, Mathe, Informatik) ====
⊥ (falsches Unicodezeichen, sieht aber ähnlich aus, richtiges siehe unten)
───┬─────┬─────┬─────┬─────┬─────┬─────┬─────────┐
│ ∥│ ∦│ ⊥│ ⇒│ ⇔│ ˚│Backspace│
│7 │8 │9 │0 │- │ˊ │ ⌫ │
┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──────┤
│K •│H Ψ│G Γ│F Φ│Q ∧│ẞ ∨│ ˏ│ │
│ │ │ │ │ │ß │~ │Enter │
┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┐ │
│S Σ│N ∫│R √│T ∂│D Δ│Y ∇│ Mod │ ↲ │
│ │ │ │ │ │ │ 3 │ │
─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─────┴─────┤
│B ∀│M ∃│ ¬│… Θ│J ∞│ Shift │
│ │ │ │ │ │ │
────┴─────┴─────┴────┬┴─────┼─────┴┬──────┬──────┤
===============================================================================
===============================================================================
==== Mail von Daniel (trichterwolke) vom 06.07.2007 18:52 ====
Brüche umsortieren, nach Achteln aufgezählt (siehe Mail)
©®™ zusammen legen (siehe Mail von Martin Engel vom 29.06.2007 11:15)
===============================================================================
===============================================================================
==== Mail von Martin Engel vom 18.07.2007 14:05 ====
(siehe dazu auch Mail von Philipp vom 23.07.2007 15:41)
Chemischer Bereich
⇌ [U+21CC] Harpunendoppelpfeil
Öfters auch oben bzw. untenkurz und unten bzw. oben lang (nix im Unicode?)
⁺ [U+207A] Plus im Exponenten
⁻ [U+207B] Minus im Exponenten
Seltener ein ausgefüllter schwarzer Kreis (nix im Unicode?)
ₘ [U+2098] hochgestelltes Plus in einem Kreis
Ingeneurswissenschaften
∝ [U+221D] Proportionalzeichen
Nachrichtentechniker, und andere, die mit Fouriertransformation zu tun haben
⊶ [U+22B6]
⊷ [U+22B7]
In verschiedenen Fachgebieten
∘ [U+2218] Verkettungsoperator
⟂ [U+27C2] senkrecht
∥ [U+2225] parallel
selten
∦ [U+2226] nicht-parallel
Mathe/Physik
Kurvenintegralzeichen
<.,.> Skalarprodukt mit spitzen Klammern (nix im Unicode?) //Erik: Unnötig?
∮ [U+222E]
===============================================================================
===============================================================================
==== Mail von Daniel (trichterwolke) vom 26.07.2007 20:39 ====
ω auf z (4. Ebene)
ζ auf ??? (wird laut seiner Aussage nicht so oft benötigt) //Erik: nö, in der
Physik auch sehr
häufig
===============================================================================
===============================================================================
==== Mail von Stefan Mayer vom 11.08.2007 23:46 ====
Die gesamte Zahlenreihe ist in Unicode sowohl hochgestellt auch als
auch tiefgestellt definiert (uni2070 und folgende).
Hochzahlen per totem ^ und Tiefzahlen mittels totem - (in Anlehnugn an das _,
wie es in Tabellenkalkulationen und Latex verwendet wird)
Damit ist außerdem (unter Linux jetzt schon) das hoch- und tiefgestellte Minus
und Plus realisierbar.
Alternativ oder zusätzlich mittels Komponiertaste.
===============================================================================
==== Mail von Philipp
Vierte Ebene auf 1, 2 und 3
uni2642, uni2640 und uni26A5
(von mir aus für die Emanzen auch umgekehrt, also Reihenfolge Frau,
Trans und Mann)
Mit diesen Zeichen könnte man dann mithilfe des Kombinators auch
lesbisch (uni26A2), schwul (uni26A3) und bisexuell (uni26A4) setzen.
===============================================================================

@ -1,2 +0,0 @@
Die Liste der Sonderzeichenbi- und Trigramme befindet sich an neuer Stelle im Wiki:
http://wiki.neo-layout.org/wiki/Sonderzeichenbigramme

@ -1,2 +0,0 @@
Die Liste der Programme mit undo-/redo-Fähigkeiten befindet sich nun an neuer Stelle im Wiki:
http://wiki.neo-layout.org/wiki/Undo/Redo

@ -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.

@ -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("<t> <z>", 0xE04A", 0x) ->
'CheckCompUni("<???? <????", 0x????) ->
'Folgende Zeilen abändern:
'CheckCompUni("<t> <z>", 0xE04A", 0x) ->
'CheckCompUni("<?> <?>:????) ->
'CheckCompUni("<t> <z>", 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%));

@ -1,116 +0,0 @@
/*
*******************************************
Compose-Kombinationen
*******************************************
Diese sollen später automatisch generiert werden.
********************************************
* Zu Testzwecken aufgenommene Kombinationen
* (in der Linux-Schreibweise)
********************************************
<Multi_key> <o> <c> "©" # copyright
<Multi_key> <1> <2> "½" # FRACTION 1/2
<Multi_key> <r> <2> <0> "xx" # SMALL ROMAN NUMERAL 20
<Multi_key> <r> <2> <0> <0> "cc" # SMALL ROMAN NUMERAL 200
<Multi_key> <r> <2> <0> <0> <0> "mm" # SMALL ROMAN NUMERAL 2000
<Multi_key> <r> <3> <9> <9> <9> "mmmcmxcix" # SMALL ROMAN NUMERAL 3999
<Multi_key> <R> <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
*******************************************
*/
; <Multi_key> <o> <c> "©" # copyright
:*O?ZC:oc::
if (composeActive) {
send ©
composeActive := 0
} else {
send oc
}
Return
; <Multi_key> <1> <2> "½" # FRACTION 1/2
:*O?ZC:12::
if (composeActive) {
send ½
composeActive := 0
} else {
send 12
}
Return
; <Multi_key> <r> <2> <0> "xx" # SMALL ROMAN NUMERAL 20
:*O?ZC:r20::
if (composeActive) {
send xx
composeActive := 0
} else {
send 20
}
Return
; <Multi_key> <r> <2> <0> <0> "cc" # SMALL ROMAN NUMERAL 200
:*O?ZC:r200::
if (composeActive) {
send cc
composeActive := 0
} else {
send 200
}
Return
; <Multi_key> <r> <2> <0> <0> <0> "mm" # SMALL ROMAN NUMERAL 2000
:*O?ZC:r2000::
if (composeActive) {
send mm
composeActive := 0
} else {
send 2000
}
Return
; <Multi_key> <r> <3> <9> <9> <9> "mmmcmxcix" # SMALL ROMAN NUMERAL 3999
:*O?ZC:r3999::
if (composeActive) {
send mmmcmxcix
composeActive := 0
} else {
send 3999
}
Return
; <Multi_key> <R> <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
;*******************************************/

@ -1 +0,0 @@
copy /B Compose-Warning.ahk + Compose-Methods.ahk + Compose-Combinations.ahk Compose-all-in-one.ahk

@ -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):
<dead_stroke> <o> : "ø" # 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)
}

@ -1,26 +0,0 @@
/*
*******************************************
THIS IS A AUTO-GENERATED SCRIPT!
DO NOT EDIT!
INSTEAD, PLEASE EDIT THE FILES:
Compose-Methods.ahk
Compose-Warning.ahk
...
*******************************************
*/

@ -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):
<dead_stroke> <o> : "ø" # 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)
********************************************
<Multi_key> <o> <c> "©" # copyright
<Multi_key> <1> <2> "½" # FRACTION 1/2
<Multi_key> <r> <2> <0> "xx" # SMALL ROMAN NUMERAL 20
<Multi_key> <r> <2> <0> <0> "cc" # SMALL ROMAN NUMERAL 200
<Multi_key> <r> <2> <0> <0> <0> "mm" # SMALL ROMAN NUMERAL 2000
<Multi_key> <r> <3> <9> <9> <9> "mmmcmxcix" # SMALL ROMAN NUMERAL 3999
<Multi_key> <R> <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
*******************************************
*/
; <Multi_key> <o> <c> "©" # copyright
:*O?ZC:oc::
if (composeActive) {
send ©
composeActive := 0
} else {
send oc
}
Return
; <Multi_key> <1> <2> "½" # FRACTION 1/2
:*O?ZC:12::
if (composeActive) {
send ½
composeActive := 0
} else {
send 12
}
Return
; <Multi_key> <r> <2> <0> "xx" # SMALL ROMAN NUMERAL 20
:*O?ZC:r20::
if (composeActive) {
send xx
composeActive := 0
} else {
send 20
}
Return
; <Multi_key> <r> <2> <0> <0> "cc" # SMALL ROMAN NUMERAL 200
:*O?ZC:r200::
if (composeActive) {
send cc
composeActive := 0
} else {
send 200
}
Return
; <Multi_key> <r> <2> <0> <0> <0> "mm" # SMALL ROMAN NUMERAL 2000
:*O?ZC:r2000::
if (composeActive) {
send mm
composeActive := 0
} else {
send 2000
}
Return
; <Multi_key> <r> <3> <9> <9> <9> "mmmcmxcix" # SMALL ROMAN NUMERAL 3999
:*O?ZC:r3999::
if (composeActive) {
send mmmcmxcix
composeActive := 0
} else {
send 3999
}
Return
; <Multi_key> <R> <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
;*******************************************/
Loading…
Cancel
Save