neovars: templates for Neo2.ini and custom.ahk with user-defined compose defs.

- Adds dist/ folder with templates Neo2.ini and custom.ahk
- New user-definable function LoadUserdefinedCompose() called on startup:
  -- allows user to add neovars-specific compose commands
  -- see examples in custom.ahk template for CM.., CD.., CRC.., and
     CF.. usage (as introduced with commit 97f4584533)
This commit is contained in:
ferdinym 2020-10-15 03:04:26 +02:00
parent 8076baeec0
commit fc1cdcf4f6
3 changed files with 229 additions and 1 deletions

119
windows/neo-vars/dist/Neo2.ini vendored Normal file
View File

@ -0,0 +1,119 @@
; Neovars Konfiguration
;
; Durch Ändern der Werte können Anpassungen vorgenommen werden.
; Dabei gilt stets 0 = Nein, 1 = Ja (soweit nicht anders angegeben).
;
; Hinweise:
; - Um von Neovars gelesen zu werden, muss diese Datei in "ANSI"-Kodierung
; unter "%APPDATA%\Neo2\Neo2.ini" (bzw. für die portable Version unter
; "<Verzeichnis der Neo2-exe>\Neo2-portable\Neo2.ini") abgespeichert werden.
; - Änderungen werden erst nach Neustart des Skripes wirksam
; (bei aktiviertem Neovars über Mod-3 + Esc oder das Tray-Icon).
;
; Weitere Informationen:
; https://mkdocs.neo.uber.space/Benutzerhandbuch/neovars/
[Global]
; LAYOUT -----------------------------
; Ein benutzerdefiniertes Layout festlegen
; (33 Standardzeichen, in QUERTZ: "ßqwertzuiopüasdfghjklöäyxcvbnm,.-")
; Neo2 (immer auch default):
;customLayout="-xvlcwkhgfqßuiaeosnrtdyüöäpzbm,.j"
; Bone:
;customLayout="-jduaxphlmwßctieobnrsgqfvüäöyz,.k"
; AdNW:
;customLayout="-kuü.ävgcljfhieaodtrnsßxyö,qbpwmz"
; KOY:
;customLayout="-k.o,yvgclßzhaeiudtrnsfxqäüöbpwmj"
; Qwertz:
;customLayout="ßqwertzuiopüasdfghjklöäyxcvbnm,.-"
; Soll die rechte Mod-3-Taste mit der links davon liegenden Taste (Ä in Qwertz) vertauscht werden?
Mod3RAufAe=0
; MODI -------------------------------
; Soll der Qwertz-Modus beim Programmstart bereits aktiviert sein?
isQwertz=0
; Soll der Ein-Hand-Modus beim Programmstart bereits aktiviert sein?
einHandNeo=0
; Soll der Lern-Modus beim Programmstart bereits aktiviert sein?
lernModus=0
; Soll der Lang-s-Modus beim Programmstart bereits aktiviert sein?
LangSTastatur=0
; TRAY-TIPPS -------------------------
; Soll beim Einschalten des Mod4-Locks eine Warnmeldung ausgegeben werden?
zeigeLockBox=1
; Sollen Veränderungen an den Einstellungen auf dem Desktop angezeigt werden? (Tray-Tips)
zeigeModusBox=1
; LEDS -------------------------------
; Soll das Aktivieren des Mod-4-Locks über das 3. Numpad-Licht (Scroll-Lock) angezeigt werden?
useMod4Light=1
; Soll das Aktivieren des Mod-4-Locks auch über das Caps-Lock-Licht angezeigt werden?
; Hinweis: keine weiteren LEDs vorhanden sind)?
useMod4LightCaps=0
; BILDSCHIRM-TASTATUR ----------------
; Soll die Bildschirm-Tastatur beim Programmstart bereits aktiviert sein?
useBST=0
; Soll die dynamische Bildschirm-Tastatur beim Programmstart bereits eingeschaltet sein?
; Hinweis: Die dynamische Tastatur wird in Ebenen 5/6 sowie aktivem Compose eingeblendet.
useDBST=0
; In welchem Layout soll die Bildschirmtastatur dargestellt werden (0=Standard, 1=ErgoDox, 2=ISO, 3=ISO-TKL)?
bstLayout=0
; Um welchen Faktor soll die Bildschirmtastatur standardmäßig vergrößert werden? (1=nicht skalieren)
bstScale=1
; Soll die Bildschirmtastatur die Mod-Tasten der jeweilige Ebene grafisch hervorheben?
; Hinweis: Fähigkeit ist Layoutabhängig (bstLayout). Verlangsamung oder Flackern möglich.
bstAnimate=1
; LOCKS ------------------------------
; Soll Caps-Lock auch bei den Ziffern und Satzzeichen wirken?
striktesMod2Lock=0
; Soll die Caps-Lock-Funktion (gleichzeitiges Drücken beider Mod-2-/Umschalttasten) abgestellt werden?
Mod2LockOff=0
; Soll Mod-4-Lock-Funktion (gleichzeitiges Drücken beider Mod-4-Tasten) abgestellt werden?
Mod4LockOff=0
; Soll die Num-Lock-Funktion abgestellt werden?
; Hinweis: Hilfreich bei Notebooks und anderen Tastaturen mit integriertem Fn-Ziffernblock.
NumLockOff=0
; SONSTIGE EINSTELLUNGEN -------------
; Soll das Programm deaktiviert gestartet werden?
; Hinweis: Kann jederzeit über das Tray-Icon oder per Shift + Pause (de)aktiviert werden
startSuspended=0
; Sollen Compose-Kombinationen dynamisch aus einer lokalen Kopie des Repositorys erzeugt werden?
dynamischesCompose=0
; SONSTIGES --------------------------

105
windows/neo-vars/dist/custom.ahk vendored Normal file
View File

@ -0,0 +1,105 @@
; -*- encoding: utf-8 -*-
;
; Benutzerdefinierte Neovars-Skripte
;
; Damit dieses AHK-Skript beim Programmstart ausgeführt wird, muss es unter
; "%APPDATA%\Neo2\custom.ahk" (bzw. für die portable Version unter
; "<Verzeichnis der Neo2-exe>\Neo2-portable\Neo2.ini") abgelegt werden.
;
; Die Funktion LoadUserdefinedCompose() wird nach Initialisierung der Compose-
; Definitionen aufgerufen und kann für eigene Compose-Definitionen genutzt werden.
; Modifikationen und Erweiterungen der Compose-Definitionen (Neovars-spezifisch)
; Für projektweite (neo-layout) Definitionen: Compose/src/weiter_Definitionen.txt
LoadUserdefinedCompose() {
global
; *Benutzerdefinierte Komposita*
;
; Kurzreferenz:
; CM<a> := 1
; CM<a><b> := 1
; ...
; CM<a><b>...<n> := 1
; CD<a><b>...<n><m> := "<kompositum>"
; CRC<kompositum> .= " <a><b>...<n><m>"
; Beispiel: <compose>+<enter> → Tastaturbelegung
; Hinweis: Tastaturbelegung wie zu Programmstart ohne Neovars-Modi
; layoutstringEnc := EncodeUniCompose(layoutstring)
; CDS__CompU00000D := layoutstringEnc
; *Benutzerdefinierte Ersatz-Symbole für Bildschirmtastatur*
;
; Kurzreferenz:
; GUISYM("<kompositum>","<symbol>")
; Beispiel: Tastaturbelegung → ⌨ (Tastatur-Emoji)
; Hinweis: Erstes Beispiel muss einkommentiert sein.
; GUISYM(layoutstringEnc,"⌨")
; *Zurückfallende Komposita*
;
; Kurzreferenz:
; CF<teilsequenz> := <teilkompositum>
;
; Erläuterung:
;
; Eine typische Compose-Definition mit
; CM<teilsequenz> := 1
; CD<teilsequenz><x> := "<kompositum>"
; wandelt die Eingabesequenz <teilsequenz><x> mit Eingabe des
; Abschlusszeiches <x> in das entsprechende <kompositum> um.
;
; Folgt hingegen auf die <teilsequenz> ein unerwartetes Zeichen <u>,
; dann schlägt die Komposition fehl und die gesamte bisherige Eingabe
; <teilsequenz><u> wird verschluckt.
;
; Alternativ bewirkt die zusätzliche Definition
; CF<teilsequenz> := <teilkompositum>
; die Ausgabe von <teilkompositum><u>, sobald das unerwartete Zeichen <u>
; eingegeben wurde.
;
; Insbesondere wird mit
; CF<teilsequenz> := "<teilsequenz>"
; die gesamte Eingabesequenz so ausgegeben, wie sie eingegeben wurde.
;
; Beispiel:
;
; Setzt man beispielsweise
; CMU0000DF := 1
; CDU0000DFU0000DF := "U00017FU000073"
; dann bewirken die ersten beiden Zeilen, dass ein einzelnes ß erst mal
; „tot“ wirkt, und mit einem zweiten ß wird „ſs“ draus.
;
; Man kann nun folgende Zeile anhängen:
; CFU0000DF := "U0000DF"
; Diese bewirkt nun, dass das erste ß, sobald es von irgend einem anderen
; Zeichen gefolgt wird, mit diesem dann (verzögert) ausgegeben wird, so, als
; gäbe es für alle Compose-Möglichkeiten aus ß und anderem Zeichen eine
; entsprechende Compose-Sequenz, die eben diese beiden Zeichen als Ergebnis
; liefert. Normalerweise würden beide Zeichen verschluckt werden, da es
; keine entsprechende Compose-Sequenz gibt.
;
; Ohne CFU0000DF:
; ßß → ſs
; ßa →
; ßb →
;
; Mit CFU0000DF:
; ßß → ſs
; ßa → ßa
; ßb → ßb
;
; (siehe commit 97f45845332229b0d7a1344157e04b24d856856b)
; Beispiel: verzögert ßß → ſs auslösen
; CMU0000DF := 1
; CDU0000DFU0000DF := "U00017FU000073"
; CRCU00017FU000073 .= " U0000DFU0000DF"
; CFU0000DF := "U0000DF"
}

View File

@ -108,9 +108,13 @@ ActivateLayOut(inputlocale)
TheKeys()
ChangeCustomLayout()
if (dynamischesCompose)
LoadCurrentCompose()
else
LoadDefaultCompose()
ChangeCustomLayout()
userCompFun := "LoadUserdefinedCompose"
if (IsFunc(userCompFun))
%userCompFun%()