Compare commits

...

11 Commits

Author SHA1 Message Date
satanist 59e79d8dad use env -S to allow argument passing 2023-09-17 01:06:13 +02:00
qwertfisch 40611501f5 Gemeinsame Definitionen (z.B. Compose) für kbd*Layouts als #include in eigene Datei verschoben 2023-09-06 01:20:18 +02:00
qwertfisch cd26c5f2a2 Bugfix: kbdmine.dll verwendete eine falsche aVkToWcharTable 2023-09-06 01:03:59 +02:00
qwertfisch db333be48e Ziparchive aus den .dll-Dateien automatisch erstellen 2023-09-05 02:46:31 +02:00
qwertfisch b24d10d001 kbdneo-Buildskripte weiter automatisiert; einzelne Layouts kompilierbar
Es ist nicht mehr notwendig, die VS Build Tools Umgebungen einzeln aufzurufen. Stattdessen kann man mit build_layout
ein einzelnes, mit build_all alle Layouts bauen. Die jeweilige Umgebung wird implizit gesetzt.
Voraussetzung sind die installierten Buildtools und die Einstellung der Variable buildtools im Skript (=Jahreszahl).
2023-09-05 01:25:22 +02:00
qwertfisch 6d88148865 Korrektur an kbdmine bezüglich Ebene 4 rechts (April 2022-Variante) 2023-09-05 01:04:54 +02:00
qwertfisch 52a5df842d kbdneo-Version vom Noted-Layout hinzugefügt 2023-09-05 01:04:47 +02:00
qwertfisch ebac8e260c Geänderte Eingangsreihenfolge der VK-Definitionen für kbdgr2
Die Eingangsreihenfolge definiert, welche native Kombination VkKeyScan() zurückgibt.
Das ist entscheidend für Zeichen, die mehrfach vorhanden sind, wie Zahlen oder das Dollarzeichen.
2023-09-04 21:40:23 +02:00
Mike1 076b8a6155 Merge pull request 'Fix neo qwertz conflicting shortcut complex modification' (#629) from siboehm/neo-layout:siboehm/FixNeoQwertzProblematicShortcuts into master
Reviewed-on: neo/neo-layout#629
2023-04-15 17:10:47 +02:00
Simon Boehm 6942600a2b Fix mistake 2023-03-14 20:35:58 -07:00
Simon Boehm 7019f06068 Fix neo qwertz conflicting shortcut 2023-03-14 20:07:24 -07:00
29 changed files with 4035 additions and 16357 deletions

View File

@ -1,4 +1,4 @@
#!/usr/bin/env perl -w
#!/usr/bin/env -S perl -w
# Dieses Skript prüft übergebene Compose-Dateien auf
# Präfix-Eigenschaft und auf Code-Dopplungen

View File

@ -1148,6 +1148,7 @@
</action>
<action id="-">
<when state="none" output="-"/>
<when state="Bugfixes" output=";"/>
<when state="Ebene 1 T1 Zirkumflex" output="⁻"/>
<when state="compose" next="compose -"/>
<when state="compose +" output="±"/>
@ -1176,7 +1177,7 @@
</action>
<action id="101">
<when state="none" output="d"/>
<when state="Bugfixes" output=":"/>
<when state="Bugfixes" output="{"/>
<when state="Ebene 2 T1 Caron Hatschek" output="ď"/>
<when state="Ebene 2 T2 Cedille" output="ḑ"/>
<when state="Ebene 3 T1 Drehen" output="p"/>
@ -1203,7 +1204,7 @@
</action>
<action id="103">
<when state="none" output="f"/>
<when state="Bugfixes" output="="/>
<when state="Bugfixes" output="}"/>
<when state="Ebene 3 T1 Drehen" output="ɟ"/>
<when state="Ebene 4 T1 Punkt darüber" output="ḟ"/>
<when state="Ebene 5 T1 Haken" output="ƒ"/>
@ -1212,7 +1213,7 @@
</action>
<action id="104">
<when state="none" output="g"/>
<when state="Bugfixes" output="&#x003E;"/>
<when state="Bugfixes" output="*"/>
<when state="Ebene 1 T1 Zirkumflex" output="ĝ"/>
<when state="Ebene 1 T3 Akut" output="ǵ"/>
<when state="Ebene 2 T1 Caron Hatschek" output="ǧ"/>
@ -1228,7 +1229,7 @@
</action>
<action id="105">
<when state="none" output="h"/>
<when state="Bugfixes" output="&#x003C;"/>
<when state="Bugfixes" output="?"/>
<when state="Ebene 1 T1 Zirkumflex" output="ĥ"/>
<when state="Ebene 2 T1 Caron Hatschek" output="ȟ"/>
<when state="Ebene 2 T2 Cedille" output="ḩ"/>
@ -1251,7 +1252,7 @@
</action>
<action id="106">
<when state="none" output="j"/>
<when state="Bugfixes" output=";"/>
<when state="Bugfixes" output="("/>
<when state="Ebene 1 T1 Zirkumflex" output="ĵ"/>
<when state="Ebene 2 T1 Caron Hatschek" output="ǰ"/>
<when state="Ebene 3 T1 Drehen" output="ɾ"/>
@ -1265,7 +1266,7 @@
</action>
<action id="107">
<when state="none" output="k"/>
<when state="Bugfixes" output="!"/>
<when state="Bugfixes" output=")"/>
<when state="Ebene 2 T1 Caron Hatschek" output="ǩ"/>
<when state="Ebene 2 T2 Cedille" output="ķ"/>
<when state="Ebene 3 T1 Drehen" output="ʞ"/>
@ -1285,6 +1286,7 @@
</action>
<action id="109">
<when state="none" output="p"/>
<when state="Bugfixes" output="…"/>
<when state="Ebene 3 T1 Drehen" output="d"/>
<when state="Ebene 4 T1 Punkt darüber" output="ṗ"/>
<when state="Ebene 5 T1 Haken" output="ƥ"/>
@ -1297,12 +1299,12 @@
</action>
<action id="110">
<when state="none" output="q"/>
<when state="Bugfixes" output="&#x0026;"/>
<when state="Bugfixes" output=""/>
<when state="Ebene 3 T1 Drehen" output="b"/>
</action>
<action id="111">
<when state="none" output="r"/>
<when state="Bugfixes" output=")"/>
<when state="Bugfixes" output="]"/>
<when state="Ebene 1 T3 Akut" output="ŕ"/>
<when state="Ebene 2 T1 Caron Hatschek" output="ř"/>
<when state="Ebene 2 T2 Cedille" output="ŗ"/>
@ -1319,7 +1321,7 @@
</action>
<action id="112">
<when state="none" output="s"/>
<when state="Bugfixes" output="?"/>
<when state="Bugfixes" output="/"/>
<when state="Ebene 1 T1 Zirkumflex" output="ŝ"/>
<when state="Ebene 1 T3 Akut" output="ś"/>
<when state="Ebene 2 T1 Caron Hatschek" output="š"/>
@ -1332,7 +1334,7 @@
</action>
<action id="113">
<when state="none" output="t"/>
<when state="Bugfixes" output="-"/>
<when state="Bugfixes" output="^"/>
<when state="Ebene 2 T1 Caron Hatschek" output="ť"/>
<when state="Ebene 2 T2 Cedille" output="ţ"/>
<when state="Ebene 3 T1 Drehen" output="ʇ"/>
@ -1346,7 +1348,7 @@
</action>
<action id="114">
<when state="none" output="v"/>
<when state="Bugfixes" output="_"/>
<when state="Bugfixes" output="~"/>
<when state="Ebene 2 T3 Tilde" output="ṽ"/>
<when state="Ebene 3 T1 Drehen" output="ʌ"/>
<when state="Ebene 5 T1 Haken" output="ⱱ"/>
@ -1354,7 +1356,7 @@
</action>
<action id="115">
<when state="none" output="w"/>
<when state="Bugfixes" output="^"/>
<when state="Bugfixes" output="_"/>
<when state="Ebene 1 T1 Zirkumflex" output="ŵ"/>
<when state="Ebene 1 T2 Gravis" output="ẁ"/>
<when state="Ebene 1 T3 Akut" output="ẃ"/>
@ -1369,7 +1371,7 @@
</action>
<action id="116">
<when state="none" output="x"/>
<when state="Bugfixes" output=""/>
<when state="Bugfixes" output="$"/>
<when state="Ebene 1 T3 Akut" output="ź"/>
<when state="Ebene 2 T1 Caron Hatschek" output="ǯ"/>
<when state="Ebene 4 T1 Punkt darüber" output="ẋ"/>
@ -1391,7 +1393,7 @@
</action>
<action id="12">
<when state="none" output="ä"/>
<when state="Bugfixes" output="|"/>
<when state="Bugfixes" output="@"/>
<when state="Ebene 4 T2 Trema Diaeresis" output="ä"/>
<when state="Ebene 5 Spiritus lenis" output="ἠ"/>
<when state="Ebene 5 T2 Spiritus asper" output="ἡ"/>
@ -1409,12 +1411,12 @@
</action>
<action id="123">
<when state="none" output="ö"/>
<when state="Bugfixes" output="$"/>
<when state="Bugfixes" output=":"/>
<when state="Ebene 4 T2 Trema Diaeresis" output="ö"/>
</action>
<action id="124">
<when state="none" output="ü"/>
<when state="Bugfixes" output="#"/>
<when state="Bugfixes" output="ſ"/>
<when state="Ebene 1 T3 Akut" output="ǘ"/>
<when state="Ebene 2 T1 Caron Hatschek" output="ǚ"/>
<when state="Ebene 4 T2 Trema Diaeresis" output="ü"/>
@ -1462,7 +1464,7 @@
</action>
<action id="135">
<when state="none" output="p"/>
<when state="Bugfixes" output="~"/>
<when state="Bugfixes" output="&#x0026;"/>
<when state="Ebene 3 T1 Drehen" output="d"/>
<when state="Ebene 4 T1 Punkt darüber" output="ṗ"/>
<when state="Ebene 5 T1 Haken" output="ƥ"/>
@ -2547,7 +2549,7 @@
</action>
<action id="62">
<when state="none" output="o"/>
<when state="Bugfixes" output="*"/>
<when state="Bugfixes" output="="/>
<when state="Ebene 1 T1 Zirkumflex" output="ô"/>
<when state="Ebene 1 T2 Gravis" output="ò"/>
<when state="Ebene 1 T3 Akut" output="ó"/>
@ -2635,7 +2637,7 @@
</action>
<action id="67">
<when state="none" output="i"/>
<when state="Bugfixes" output="/"/>
<when state="Bugfixes" output=">"/>
<when state="Ebene 1 T1 Zirkumflex" output="î"/>
<when state="Ebene 1 T2 Gravis" output="ì"/>
<when state="Ebene 1 T3 Akut" output="í"/>
@ -2680,7 +2682,7 @@
</action>
<action id="69">
<when state="none" output="e"/>
<when state="Bugfixes" output="}"/>
<when state="Bugfixes" output="["/>
<when state="Ebene 1 T1 Zirkumflex" output="ê"/>
<when state="Ebene 1 T2 Gravis" output="è"/>
<when state="Ebene 1 T3 Akut" output="é"/>
@ -2774,7 +2776,7 @@
</action>
<action id="75">
<when state="none" output="n"/>
<when state="Bugfixes" output="("/>
<when state="Bugfixes" output="+"/>
<when state="Ebene 1 T1 Zirkumflex" output="ⁿ"/>
<when state="Ebene 1 T2 Gravis" output="ǹ"/>
<when state="Ebene 1 T3 Akut" output="ń"/>
@ -2855,7 +2857,7 @@
</action>
<action id="80">
<when state="none" output="l"/>
<when state="Bugfixes" output="["/>
<when state="Bugfixes" output=";"/>
<when state="Ebene 1 T3 Akut" output="ĺ"/>
<when state="Ebene 2 T1 Caron Hatschek" output="ľ"/>
<when state="Ebene 2 T2 Cedille" output="ļ"/>
@ -2879,7 +2881,7 @@
</action>
<action id="82">
<when state="none" output="z"/>
<when state="Bugfixes" output="`"/>
<when state="Bugfixes" output="!"/>
<when state="Ebene 1 T3 Akut" output="ź"/>
<when state="Ebene 2 T1 Caron Hatschek" output="ž"/>
<when state="Ebene 3 T2 Ring" output="ʑ"/>
@ -2897,7 +2899,7 @@
</action>
<action id="83">
<when state="none" output="u"/>
<when state="Bugfixes" output="\"/>
<when state="Bugfixes" output="&#x003c;"/>
<when state="Ebene 1 T1 Zirkumflex" output="û"/>
<when state="Ebene 1 T2 Gravis" output="ù"/>
<when state="Ebene 1 T3 Akut" output="ú"/>
@ -2930,7 +2932,7 @@
</action>
<action id="85">
<when state="none" output="a"/>
<when state="Bugfixes" output="{"/>
<when state="Bugfixes" output="\"/>
<when state="Ebene 1 T1 Zirkumflex" output="â"/>
<when state="Ebene 1 T2 Gravis" output="à"/>
<when state="Ebene 1 T3 Akut" output="á"/>
@ -3029,7 +3031,7 @@
</action>
<action id="92">
<when state="none" output="y"/>
<when state="Bugfixes" output="@"/>
<when state="Bugfixes" output="#"/>
<when state="Ebene 1 T1 Zirkumflex" output="ŷ"/>
<when state="Ebene 1 T2 Gravis" output="ỳ"/>
<when state="Ebene 1 T3 Akut" output="ý"/>
@ -3083,7 +3085,7 @@
</action>
<action id="98">
<when state="none" output="b"/>
<when state="Bugfixes" output="+"/>
<when state="Bugfixes" output="`"/>
<when state="Ebene 3 T1 Drehen" output="q"/>
<when state="Ebene 3 T3 Schrägstrich" output="ƀ"/>
<when state="Ebene 4 T1 Punkt darüber" output="ḃ"/>
@ -3093,7 +3095,7 @@
</action>
<action id="99">
<when state="none" output="c"/>
<when state="Bugfixes" output="]"/>
<when state="Bugfixes" output="|"/>
<when state="Ebene 1 T1 Zirkumflex" output="ĉ"/>
<when state="Ebene 1 T3 Akut" output="ć"/>
<when state="Ebene 2 T1 Caron Hatschek" output="č"/>

View File

@ -4,7 +4,7 @@ Für die weitergehende Entwicklung und Kompilierung der Treiberlayout-DLLs unter
1. Über Visual Studio
2. Über ein manuelles Buildskript
Die erste Variante ist einfacher und dient auch der Entwicklung. Die zweite Variante benötigt kein Visual Studio und insbesondere kein Windows Driver Kit.
Die erste Variante ist der kanonische Weg. Die zweite Variante benötigt kein Visual Studio und insbesondere kein umfangreiches Windows Driver Kit. Sie kann für eigene Anpassungen an den Layoutdateien verwendet werden.
## Regulärer Build mit Visual Studio
@ -36,28 +36,24 @@ Für jedes der enthaltenen Tastaturlayouts sind nun je zwei .dll-Dateien (Name =
### Voraussetzungen
* Visual Studio Build Tools: Auf https://visualstudio.microsoft.com/de/downloads/ nach unten scrollen, unter „Alle Downloads“ den Reiter „Tools für Visual Studio 2019“ aufklappen und „Buildtools für Visual Studio 2019“ auswählen.
* Visual Studio Build Tools: Auf https://visualstudio.microsoft.com/de/downloads/ nach unten scrollen, unter „Alle Downloads“ den Reiter „Tools für Visual Studio“ aufklappen und „Buildtools für Visual Studio 2022“ auswählen.
* Im Installer unter „Workloads“ die C++-Buildtools auswählen oder alternativ unter „Einzelne Komponenten“ die aktuellen x64/x86-Buildtools sowie das aktuelle Windows 10 SDK auswählen.
Ältere, bereits installierte Buildtools funktionieren gleichermaßen. Dazu muss man vor dem Build einmalig die Variable `buildtools` in den Skripten umstellen auf die entsprechende Version (Jahreszahl).
### Build
Nach der Installation stehen im Startmenü im Ordner Visual Studio 2019 verschiedene Command Prompts zur Verfügung. Das Vorgehen ist wie folgt:
Nach der Installation können einzelne oder alle Layouts über die im `build`-Verzeichnis verfügbaren Skripte gebaut werden.
* x86_x64 Cross Tools Command Prompt for VS 2019 starten
* ins `build`-Verzeichnis unterhalb von kbdneo wechseln
* `build_x64` ausführen
Dies baut die x64-Varianten der DLLs. Für die x86-Varianten (für 32 Bit bzw. SysWOW64) lautet es:
* x86 Native Tools Command Prompt for VS 2019 starten
* ins `build`-Verzeichnis unterhalb von kbdneo wechseln
* `build_x86` ausführen
* ins `build`-Verzeichnis unterhalb von `windows\kbdneo2` wechseln
* `build_all` ausführen, oder alternativ `build_layout [Layoutname]`, wobei hier der Layoutname ohne "kbd" angegeben wird (z.B. neo2 oder bone), wie er im `source`-Verzeichnis verwendet wird.
Die erzeugten DLLs sind anschließend in den Unterverzeichnissen `x64`, `x86` und `x86-wow64` der jeweiligen Layoutvarianten zu finden.
## kbdqwertz mit „ß“ unten
Von kbdqwertz (aus historischen Gründen in kbdgr2 platziert) gibt es zwei Varianten, einmal mit dem regulären QWERTZ-Layout mit ß oben und dem Bindestrich unten. Die zweite Variante tauscht beides, sodass der Bindestrich gemeinsam mit anderen Strichen auf weiteren Ebenen auf der Strichtaste landet. Das „ß“ verschiebt sich dafür ins Hauptfeld.
Von kbdqwertz (aus historischen Gründen im Verzeichnis `kbdgr2` platziert) gibt es zwei Varianten, einmal mit dem regulären QWERTZ-Layout mit ß oben und dem Bindestrich unten. Die zweite Variante tauscht beides, sodass der Bindestrich gemeinsam mit anderen Strichen auf weiteren Ebenen auf der Strichtaste landet. Das „ß“ verschiebt sich dafür ins Hauptfeld.
Um kbdqwertz mit „ß“ unten zu kompilieren, muss in `kbdgr2.h` folgende Zeile einkommentiert werden:
```

View File

@ -0,0 +1,95 @@
@echo off
set buildtools=2022
echo Baue alle Layouts (Neo, NeoQwertz, Bone, Mine, Koy, Noted) ...
echo.
pushd ..\source
REM Zuerst die x64-Varianten bauen
pushd "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\"
call "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\VC\Auxiliary\Build\vcvarsx86_amd64.bat"
popd
cd kbdbone
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd bone
cd ..
cd kbdneo2
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd neo2
cd ..
cd kbdgr2
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd gr2
cd ..
cd kbdmine
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd mine
cd ..
cd kbdkoy
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd koy
cd ..
cd kbdnoted
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd noted
cd ..
REM x86 und x86_wow64 bauen
pushd "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\"
call "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\VC\Auxiliary\Build\vcvars32.bat"
popd
cd kbdbone
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
call ..\..\build\build_variant_x86.cmd bone
call ..\..\build\build_variant_x86_wow64.cmd bone
cd ..
cd kbdneo2
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
call ..\..\build\build_variant_x86.cmd neo2
call ..\..\build\build_variant_x86_wow64.cmd neo2
cd ..
cd kbdgr2
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
call ..\..\build\build_variant_x86.cmd gr2
call ..\..\build\build_variant_x86_wow64.cmd gr2
cd ..
cd kbdmine
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
call ..\..\build\build_variant_x86.cmd mine
call ..\..\build\build_variant_x86_wow64.cmd mine
cd ..
cd kbdkoy
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
call ..\..\build\build_variant_x86.cmd koy
call ..\..\build\build_variant_x86_wow64.cmd koy
cd ..
cd kbdnoted
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
call ..\..\build\build_variant_x86.cmd noted
call ..\..\build\build_variant_x86_wow64.cmd noted
cd ..
popd

View File

@ -0,0 +1,32 @@
@echo off
if "%1"=="" (
echo Bitte das entsprechende Layout angeben, so benannt wie das Quellverzeichnis ^(ohne "kbd"^).
exit /b
)
IF NOT EXIST ..\source\kbd%1 (
echo Das Layoutverzeichnis kbd%1 existiert nicht.
exit /b
)
set buildtools=2022
pushd ..\source\kbd%1
IF NOT EXIST x64 mkdir x64
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
pushd "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\"
call "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\VC\Auxiliary\Build\vcvarsx86_amd64.bat"
popd
call ..\..\build\build_variant_x64.cmd %1
pushd "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\"
call "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\VC\Auxiliary\Build\vcvars32.bat"
popd
call ..\..\build\build_variant_x86.cmd %1
call ..\..\build\build_variant_x86_wow64.cmd %1
popd

View File

@ -1,7 +1,7 @@
@echo off
if "%1"=="" (
ECHO Dieses Skript ist nur zur internen Verwendung von build_x64 gedacht.
ECHO Dieses Skript ist nur zur internen Verwendung von build_layout gedacht.
EXIT /B
)

View File

@ -1,7 +1,7 @@
@echo off
if "%1"=="" (
ECHO Dieses Skript ist nur zur internen Verwendung von build_x86 gedacht.
ECHO Dieses Skript ist nur zur internen Verwendung von build_layout gedacht.
EXIT /B
)

View File

@ -1,7 +1,7 @@
@echo off
if "%1"=="" (
ECHO Dieses Skript ist nur zur internen Verwendung von build_x86 gedacht.
ECHO Dieses Skript ist nur zur internen Verwendung von build_layout gedacht.
EXIT /B
)

View File

@ -1,32 +0,0 @@
@echo off
pushd ..\source
REM Build Bone, Neo, Qwertz, Mine
cd kbdbone
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd bone
cd ..
cd kbdneo2
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd neo2
cd ..
cd kbdgr2
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd gr2
cd ..
cd kbdmine
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd mine
cd ..
cd kbdkoy
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd koy
cd ..
popd

View File

@ -1,42 +0,0 @@
@echo off
pushd ..\source
REM Build Bone, Neo, Qwertz, Mine
cd kbdbone
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
call ..\..\build\build_variant_x86.cmd bone
call ..\..\build\build_variant_x86_wow64.cmd bone
cd ..
cd kbdneo2
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
call ..\..\build\build_variant_x86.cmd neo2
call ..\..\build\build_variant_x86_wow64.cmd neo2
cd ..
cd kbdgr2
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
call ..\..\build\build_variant_x86.cmd gr2
call ..\..\build\build_variant_x86_wow64.cmd gr2
cd ..
cd kbdmine
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
call ..\..\build\build_variant_x86.cmd mine
call ..\..\build\build_variant_x86_wow64.cmd mine
cd ..
cd kbdkoy
IF NOT EXIST x86 mkdir x86
IF NOT EXIST x86-wow64 mkdir x86-wow64
call ..\..\build\build_variant_x86.cmd koy
call ..\..\build\build_variant_x86_wow64.cmd koy
cd ..
popd

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,8 @@
@echo off
call zip_layout neo2 neo
call zip_layout gr2 qwertz
call zip_layout bone
call zip_layout mine
call zip_layout koy
call zip_layout noted

View File

@ -0,0 +1,47 @@
@echo off
IF [%~1]==[] (
echo Bitte das entsprechende Layout angeben, so benannt wie das Quellverzeichnis ^(ohne "kbd"^).
exit /b
)
IF NOT EXIST ..\source\kbd%1 (
echo Das Layoutverzeichnis kbd%1 existiert nicht.
exit /b
)
REM Falls notwendig, vollständigen Pfad zur (7z) Executable angeben
SET zipcmd=7z
REM Switches: Ziparchiv, normale Kompression, rekursiv
SET zipswitches=a -tzip -mx5 -r
SET layout=kbd%1
IF NOT [%~2]==[] SET layout=kbd%2
pushd ..\source\kbd%1
IF EXIST %layout%64 rmdir /S /Q %layout%64
IF EXIST %layout%32 rmdir /S /Q %layout%32
echo Kopiere Dateien ...
mkdir %layout%64\System32
mkdir %layout%64\SysWOW64
copy x64\kbd%1.dll %layout%64\System32\ >NUL
copy x86-wow64\kbd%1.dll %layout%64\SysWOW64\ >NUL
copy ..\..\build\%layout%_win10_install.reg %layout%64\ >NUL
copy ..\..\build\%layout%_win10_uninstall.reg %layout%64\ >NUL
mkdir %layout%32\System32
copy x86\kbd%1.dll %layout%32\System32\ >NUL
copy ..\..\build\%layout%_win10_install.reg %layout%32\ >NUL
copy ..\..\build\%layout%_win10_uninstall.reg %layout%32\ >NUL
echo Erstelle Zip-Archive ...
%zipcmd% %zipswitches% %layout%64.zip %layout%64\ >NUL
IF %errorlevel% EQU 0 rmdir /S /Q %layout%64
%zipcmd% %zipswitches% %layout%32.zip %layout%32\ >NUL
IF %errorlevel% EQU 0 rmdir /S /Q %layout%32
popd

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -26,7 +26,24 @@
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦X38 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*/
*
*
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* |Esc| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* +---------------------------------------------------------+ +--------------+ +---------------+
* |T1 ¦1 ¦2 ¦3 ¦4 ¦5 ¦6 ¦7 ¦8 ¦9 ¦0 ¦- ¦T2 ¦Back | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
* |Tab¦j ¦d ¦u ¦a ¦x ¦p ¦h ¦l ¦m ¦w ¦ß ¦T3 ¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
* | M3 ¦c ¦t ¦i ¦e ¦o ¦b ¦n ¦r ¦s ¦g ¦q ¦M3 ¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
* |---------------------------------------------------------| +----+ +---+---+---+---¦
* |Ums ¦M4 ¦f ¦v ¦ü ¦ä ¦ö ¦y ¦z ¦, ¦. ¦k ¦ Umsch | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦ M4 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*
\************************************************************************************************************** */
// Tastenumbelegung für Bone ; sonstige Tastenzuordnung siehe kbd.h
#undef T0D

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,24 @@
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦X38 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*/
*
*
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* |Esc| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* +---------------------------------------------------------+ +--------------+ +---------------+
* |T1 ¦1 ¦2 ¦3 ¦4 ¦5 ¦6 ¦7 ¦8 ¦9 ¦0 ¦- ¦T2 ¦Back | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
* |Tab¦x ¦v ¦l ¦c ¦w ¦k ¦h ¦g ¦f ¦q ¦ß ¦T3 ¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
* | M3 ¦u ¦i ¦a ¦e ¦o ¦s ¦n ¦r ¦t ¦d ¦y ¦M3 ¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
* |---------------------------------------------------------| +----+ +---+---+---+---¦
* |Ums ¦M4 ¦ü ¦ö ¦ä ¦p ¦z ¦b ¦m ¦, ¦. ¦j ¦ Umsch | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦ M4 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*
\************************************************************************************************************** */
//qwertz
#undef T15

File diff suppressed because it is too large Load Diff

View File

@ -26,7 +26,24 @@
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦X38 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*/
*
*
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* |Esc| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* +---------------------------------------------------------+ +--------------+ +---------------+
* |T1 ¦1 ¦2 ¦3 ¦4 ¦5 ¦6 ¦7 ¦8 ¦9 ¦0 ¦- ¦T2 ¦Back | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
* |Tab¦k ¦. ¦o ¦, ¦y ¦v ¦g ¦c ¦l ¦ß ¦z ¦T3 ¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
* | M3 ¦h ¦a ¦e ¦i ¦u ¦d ¦t ¦r ¦n ¦s ¦f ¦M3 ¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
* |---------------------------------------------------------| +----+ +---+---+---+---¦
* |Ums ¦M4 ¦x ¦q ¦ä ¦ü ¦ö ¦b ¦p ¦w ¦m ¦j ¦ Umsch | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦ M4 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*
\************************************************************************************************************** */
// Tastenumbelegung für KOY ; sonstige Tastenzuordnung siehe kbd.h
#undef T0D

File diff suppressed because it is too large Load Diff

View File

@ -26,7 +26,24 @@
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦X38 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*/
*
*
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* |Esc| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* +---------------------------------------------------------+ +--------------+ +---------------+
* |T1 ¦1 ¦2 ¦3 ¦4 ¦5 ¦6 ¦7 ¦8 ¦9 ¦0 ¦- ¦T2 ¦Back | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
* |Tab¦j ¦l ¦u ¦a ¦q ¦w ¦b ¦d ¦g ¦y ¦z ¦ß ¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
* | M3 ¦c ¦r ¦i ¦e ¦o ¦m ¦n ¦t ¦s ¦h ¦M3 ¦T3 ¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
* |---------------------------------------------------------| +----+ +---+---+---+---¦
* |Ums ¦M4 ¦v ¦x ¦ü ¦ä ¦ö ¦p ¦f ¦, ¦. ¦k ¦ Umsch | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦ M4 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*
\************************************************************************************************************** */
// Tastenumbelegung für Mine ; sonstige Tastenzuordnung siehe kbd.h
#undef T0D

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,41 @@
#include <dontuse.h>
/* **************************************************************************************************************\
*
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* |T01| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* +---------------------------------------------------------+ +--------------+ +---------------+
* |T29¦T02¦T03¦T04¦T05¦T06¦T07¦T08¦T09¦T0A¦T0B¦T0C¦T0D¦ T0E | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
* |T0F¦T10¦T11¦T12¦T13¦T14¦T15¦T16¦T17¦T18¦T19¦T1A¦T1B¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
* | T3A ¦T1E¦T1F¦T20¦T21¦T22¦T23¦T24¦T25¦T26¦T27¦T28¦T2B¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
* |---------------------------------------------------------| +----+ +---+---+---+---¦
* |T2A ¦T56¦T2C¦T2D¦T2E¦T2F¦T30¦T31¦T32¦T33¦T34¦T35¦ T36 | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦X38 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*
*
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* |Esc| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* +---------------------------------------------------------+ +--------------+ +---------------+
* |T1 ¦1 ¦2 ¦3 ¦4 ¦5 ¦6 ¦7 ¦8 ¦9 ¦0 ¦- ¦T2 ¦Back | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
* |Tab¦x ¦v ¦l ¦c ¦w ¦k ¦h ¦g ¦f ¦q ¦ß ¦T3 ¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
* | M3 ¦u ¦i ¦a ¦e ¦o ¦s ¦n ¦r ¦t ¦d ¦y ¦M3 ¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
* |---------------------------------------------------------| +----+ +---+---+---+---¦
* |Ums ¦M4 ¦ü ¦ö ¦ä ¦p ¦z ¦b ¦m ¦, ¦. ¦j ¦ Umsch | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦ M4 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*
\************************************************************************************************************** */
// Tastenumbelegung für Neo 2.0 ; sonstige Tastenzuordnung siehe kbd.h
#undef T0D
#define T0D _EQ( OEM_2 )
@ -82,4 +117,4 @@
#undef X38
#define X38 _EQ( OEM_8 ) // Mod 4
#undef T56
#define T56 _EQ( OEM_8 ) // Mod 4
#define T56 _EQ( OEM_8 ) // Mod 4

View File

@ -0,0 +1,268 @@
/****************************************************************************\
* Module Name: KBDNOTED.C
* Noted-Layout, basierend auf Neo2
\****************************************************************************/
#include <windows.h>
#include "kbd.h"
#include "../kbd_mod.h"
#include "../keysym4utf16.h"
#include "kbdnoted.h"
#include "../kbd_base.c"
/* **************************************************************************\
* Spezielle Werte für den VK (Spalte 1)
* 0xff - Tote Zeichen für obige Zeile
* 0 - Beendet die gesamte Liste
*
* Spezielle Werte für Attributes (Spalte 2)
* CAPLOK - CAPS-LOCK wirkt auf diese Taste wie SHIFT
* KANALOK - Mod4-LOCK wirkt auf diese Taste wie Mod4
*
* Spezielle Werte für wch[*]
* WCH_NONE - Keine Belegung
* WCH_DEAD - Totes Zeichen
* WCH_LGTR - Ligatur
\************************************************************************** */
static ALLOC_SECTION_LDATA VK_TO_WCHARS6 aVkToWch6[] = {
// Reihenfolge der Ebene wie oben ( ALLOC_SECTION_LDATA MODIFIERS CharModifiers = { &aVkToBits[0],)… festgelegt
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU |
// |===================|===========|=======================|=======================|===============|===================|===================|
// Zeile 1
{VK_OEM_1 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD }, //Tote Taste 1
{0xff ,0 ,'^' ,caron ,totdreh ,abovedot ,rhotichook ,'.' },
{'1' ,KANALOK ,'1' ,degree ,onesuperior ,ordfeminine ,onesubscript ,notsign },
{'3' ,KANALOK ,'3' ,litersign ,threesuperior ,numerosign ,threesubscript ,logicaland },
{'4' ,KANALOK ,'4' ,guillemotright ,guillemotright2 ,WCH_NONE ,femalesymbol ,uptack },
{'5' ,KANALOK ,'5' ,guillemotleft ,guillemotleft2 ,periodcentered ,malesymbol ,measuredangle },
{'7' ,KANALOK ,'7' ,EuroSign ,yen ,currency ,scriptkappa ,rightarrow },
{'8' ,KANALOK ,'8' ,doublelowquotemark ,singlelowquotemark ,WCH_NONE ,leftanglebracket ,infinity },
{'9' ,KANALOK ,'9' ,leftdoublequotemark ,leftsinglequotemark ,'/' ,rightanglebracket ,variation },
{'0' ,KANALOK ,'0' ,rightdoublequotemark ,rightsinglequotemark ,'*' ,zerosubscript ,emptyset },
{VK_OEM_MINUS ,KANALOK ,'-' ,emdash ,WCH_NONE ,'-' ,nobreakhyphen ,hyphen },
{VK_OEM_2 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD }, //Tote Taste 2
{0xff ,0 ,grave ,cedilla ,ringabove ,diaeresis ,greek_dasia ,macron },
{VK_TAB ,0 ,'\t' ,'\t' ,WCH_DEAD ,'\t' ,'\t' ,'\t' },
{0xff ,0 ,WCH_NONE ,WCH_NONE ,Multi_key ,WCH_NONE ,WCH_NONE ,WCH_NONE },
{'Z' ,CAPLOK | KANALOK ,'z' ,'Z' ,ellipsis ,WCH_NONE ,Greek_zeta ,doublestruck_z },
{'U' ,CAPLOK | KANALOK ,'u' ,'U' ,'[' ,WCH_NONE ,WCH_NONE ,multiply },
{'A' ,CAPLOK | KANALOK ,'a' ,'A' ,']' ,WCH_NONE ,Greek_alpha ,forall },
{'Q' ,CAPLOK | KANALOK ,'q' ,'Q' ,asciicircum ,WCH_NONE ,scriptphi ,doublestruck_q },
{'P' ,CAPLOK | KANALOK ,'p' ,'P' ,'!' ,exclamdown ,Greek_pi ,Greek_PI },
{'B' ,CAPLOK | KANALOK ,'b' ,'B' ,'<' ,'7' ,Greek_beta ,partialderivative },
{'M' ,CAPLOK | KANALOK ,'m' ,'M' ,'>' ,'8' ,Greek_mu ,arrowfrombarright },
{'L' ,CAPLOK | KANALOK ,'l' ,'L' ,'=' ,'9' ,Greek_lamda ,Greek_LAMDA },
{'F' ,CAPLOK | KANALOK ,'f' ,'F' ,'&' ,'+' ,Greek_phi ,Greek_PHI },
{'C' ,CAPLOK | KANALOK ,'c' ,'C' ,backslash ,WCH_NONE ,Greek_chi ,doublestruck_c },
{'S' ,CAPLOK | KANALOK ,'s' ,'S' ,'/' ,WCH_NONE ,Greek_sigma ,Greek_SIGMA },
{'I' ,CAPLOK | KANALOK ,'i' ,'I' ,'{' ,WCH_NONE ,Greek_iota ,integral },
{'E' ,CAPLOK | KANALOK ,'e' ,'E' ,'}' ,WCH_NONE ,Greek_epsilon ,thereexists },
{'O' ,CAPLOK | KANALOK ,'o' ,'O' ,'*' ,WCH_NONE ,Greek_omicron ,elementof },
{'D' ,CAPLOK | KANALOK ,'d' ,'D' ,'?' ,questiondown ,Greek_delta ,Greek_DELTA },
{'T' ,CAPLOK | KANALOK ,'t' ,'T' ,'(' ,'4' ,Greek_tau ,nabla },
{'N' ,CAPLOK | KANALOK ,'n' ,'N' ,')' ,'5' ,Greek_nu ,doublestruck_n },
{'R' ,CAPLOK | KANALOK ,'r' ,'R' ,'-' ,'6' ,Greek_rho ,doublestruck_r },
{'H' ,CAPLOK | KANALOK ,'h' ,'H' ,':' ,'.' ,Greek_psi ,Greek_PSI },
{'V' ,CAPLOK | KANALOK ,'v' ,'V' ,'#' ,WCH_NONE ,WCH_NONE ,radical },
{'X' ,CAPLOK | KANALOK ,'x' ,'X' ,'$' ,WCH_NONE ,Greek_xi ,Greek_XI },
{VK_OEM_5 /*ü*/ ,CAPLOK | KANALOK ,udiaeresis ,Udiaeresis ,'|' ,WCH_NONE ,WCH_NONE ,union },
{VK_OEM_7 /*ä*/ ,CAPLOK | KANALOK ,adiaeresis ,Adiaeresis ,'~' ,WCH_NONE ,Greek_eta ,intersection },
{VK_OEM_6 /*ö*/ ,CAPLOK | KANALOK ,odiaeresis ,Odiaeresis ,'`' ,WCH_NONE ,straightepsilon ,includedin },
{'W' ,CAPLOK | KANALOK ,'w' ,'W' ,'+' ,':' ,Greek_omega ,Greek_OMEGA },
{'G' ,CAPLOK | KANALOK ,'g' ,'G' ,'%' ,'1' ,Greek_gamma ,Greek_GAMMA },
{VK_OEM_COMMA ,KANALOK ,',' ,endash ,quotedbl ,'2' ,scriptrho ,doublearrowleft },
{VK_OEM_PERIOD ,KANALOK ,'.' ,enfilledcircbullet ,apostrophe ,'3' ,scripttheta ,ifonlyif },
{'K' ,CAPLOK | KANALOK ,'k' ,'K' ,';' ,',' ,Greek_kappa ,implies },
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }
};
static ALLOC_SECTION_LDATA VK_TO_WCHARS7 aVkToWch7[] = {
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU | Control |
// |===================|===========|===========|===========|===========|=======================|===============|===============|
{VK_OEM_3 /*ß*/ ,CAPLOK | KANALOK ,ssharp ,Ssharp ,slong ,';' ,Greek_finalsmallsigma ,jot ,escape },
{VK_OEM_4 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,infoseparator3 }, //Tote Taste 3
{0xff ,0 ,acute ,'~' ,'-' ,doubleacute,greek_psili ,breve ,WCH_NONE },
{'Y' ,CAPLOK | KANALOK ,'y' ,'Y' ,'_' ,WCH_NONE ,Greek_upsilon ,alefsymbol ,infoseparator4 },
{VK_SPACE ,KANALOK ,space ,space ,space ,'0' ,nobreakspace ,nnobreakspace ,space },
{VK_BACK ,0 ,'\b' ,'\b' ,'\b' ,'\b' ,'\b' ,'\b' ,delete },
{VK_ESCAPE ,0 ,escape ,escape ,escape ,escape ,escape ,escape ,escape },
{VK_RETURN ,0 ,'\r' ,'\r' ,'\r' ,'\r' ,'\r' ,'\r' ,'\n' },
{VK_CANCEL ,0 ,endoftext ,endoftext ,WCH_NONE ,WCH_NONE ,WCH_NONE ,WCH_NONE ,endoftext },
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }
};
static ALLOC_SECTION_LDATA VK_TO_WCHARS8 aVkToWch8[] = {
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU | Control | Control+Shift |
// |===================|===========|===========|===========|===========|===================|===============|===========|===============|
{'2' ,KANALOK ,'2' ,section ,twosuperior,masculine ,twosubscript ,logicalor ,WCH_NONE ,0x0000 },
{'6' ,KANALOK ,'6' ,dollar ,cent ,sterling ,maleandfemalesign ,parallelto ,WCH_NONE ,infoseparator2 },
{'J' ,CAPLOK | KANALOK ,'j' ,'J' ,'@' ,minussign ,Greek_theta ,Greek_THETA,WCH_NONE ,infoseparator1 },
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0}
};
// Hier müssen die verwendeten WChar_Tables vorkommen; Numpad MUSS letzte Zeile sein.
// Die Funktion VkKeyScan() versucht, zu einem Zeichen den zugehörigen Virtual Key
// und Modifier zu finden. Die Numpad-Definition muss zum Schluss kommen, damit Zeichen
// wie '0' als vom Hauptfeld kommend interpretiert werden, falls dort vorhanden.
static ALLOC_SECTION_LDATA VK_TO_WCHAR_TABLE aVkToWcharTable[] = {
{ (PVK_TO_WCHARS1)aVkToWch8, 8, sizeof(aVkToWch8[0]) },
{ (PVK_TO_WCHARS1)aVkToWch6, 6, sizeof(aVkToWch6[0]) },
{ (PVK_TO_WCHARS1)aVkToWch7, 7, sizeof(aVkToWch7[0]) },
{ (PVK_TO_WCHARS1)aVkToWch4, 4, sizeof(aVkToWch4[0]) },
{ NULL, 0, 0 },
};
/* **************************************************************************\
* aKeyNames[], aKeyNamesExt[] - Virtual Scancode to Key Name tables
*
* Table attributes: Ordered Scan (by scancode), null-terminated
*
* Nur für Tasten, die keine Zeichen erzeugen, Tasten die Zeichen erzeugen
* werden danach benannt
\************************************************************************** */
static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNames[] = {
0x01, L"ESC",
0x0e, L"R\x00DC" L"CKTASTE",
0x0f, L"TABULATOR",
0x1c, L"EINGABE",
0x1d, L"STRG",
0x28, L"MOD 3 RECHTS",
0x2a, L"UMSCHALT",
0x36, L"UMSCHALT RECHTS",
0x37, L"* (ZEHNERTASTATUR)",
0x38, L"ALT",
0x39, L"LEER",
0x3a, L"MOD 3 LINKS",
0x3b, L"F1",
0x3c, L"F2",
0x3d, L"F3",
0x3e, L"F4",
0x3f, L"F5",
0x40, L"F6",
0x41, L"F7",
0x42, L"F8",
0x43, L"F9",
0x44, L"F10",
0x45, L"PAUSE",
0x46, L"ROLLEN-FESTSTELL",
0x47, L"7 (ZEHNERTASTATUR)",
0x48, L"8 (ZEHNERTASTATUR)",
0x49, L"9 (ZEHNERTASTATUR)",
0x4a, L"- (ZEHNERTASTATUR)",
0x4b, L"4 (ZEHNERTASTATUR)",
0x4c, L"5 (ZEHNERTASTATUR)",
0x4d, L"6 (ZEHNERTASTATUR)",
0x4e, L"+ (ZEHNERTASTATUR)",
0x4f, L"1 (ZEHNERTASTATUR)",
0x50, L"2 (ZEHNERTASTATUR)",
0x51, L"3 (ZEHNERTASTATUR)",
0x52, L"0 (ZEHNERTASTATUR)",
0x53, L"KOMMA (ZEHNERTASTATUR)",
0x56, L"MOD 4 LINKS",
0x57, L"F11",
0x58, L"F12",
0 , NULL
};
static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNamesExt[] = {
0x1c, L"EINGABE (ZEHNERTASTATUR)",
0x1d, L"STRG-RECHTS",
0x35, L"/ (ZEHNERTASTATUR)",
0x37, L"DRUCK",
0x38, L"MOD 4 RECHTS",
0x45, L"NUM-FESTSTELL",
0x46, L"UNTBR",
0x47, L"POS1",
0x48, L"NACH-OBEN",
0x49, L"BILD-NACH-OBEN",
0x4b, L"NACH-LINKS",
0x4d, L"NACH-RECHTS",
0x4f, L"ENDE",
0x50, L"NACH-UNTEN",
0x51, L"BILD-NACH-UNTEN",
0x52, L"EINFG",
0x53, L"ENTF",
0x54, L"<00>",
0x56, L"HILFE",
0x5b, L"LINKE WINDOWS",
0x5c, L"RECHTE WINDOWS",
0x5d, L"ANWENDUNG",
0 , NULL
};
static ALLOC_SECTION_LDATA DEADKEY_LPWSTR aKeyNamesDead[] = {
//Tottaste 1 (links neben 1)
L"^" L"ZIRKUMFLEX",
L"\x02C7" L"HATSCHEK",
L"\x21bb" L"DREHEN",
L"\x02d9" L"PUNKT_DARUEBER",
L"\x02de" L"RHOTIC_HOOK",
L"\x002E" L"PUNKT_DARUNTER",
//Tottaste 2 (links neben Rücktaste)
L"\x0060" L"GRAVIS",
L"\x00B8" L"CEDILLE",
L"\x02DA" L"RING",
L"\x00A8" L"TREMA",
L"\x1ffe" L"SPIRITUS_ASPER",
L"\x00AF" L"MAKRON",
//Tottaste 3 (rechts neben „ß“)
L"\x00B4" L"AKUT",
L"\x007E" L"TILDE",
L"\x002D" L"QUERSTRICH",
L"\x02DD" L"DOPPEL_AKUT",
L"\x1fbf" L"SPIRITUS_LENIS",
L"\x02D8" L"BREVE",
NULL
};
static ALLOC_SECTION_LDATA KBDTABLES KbdTables = {
// Modifier keys
&CharModifiers,
// Characters tables
aVkToWcharTable,
// Diakritika vorhanden
aDeadKey,
// Namen der Keys
aKeyNames,
aKeyNamesExt,
aKeyNamesDead,
// Scancodes zu Virtual Keys
ausVK,
sizeof(ausVK) / sizeof(ausVK[0]),
aE0VscToVk,
aE1VscToVk,
// Kein Rechtes Alt daher AltGr auskommentiert
// MAKELONG(KLLF_ALTGR, KBD_VERSION),
0,
// keine Ligaturen
0,
0,
NULL
};
PKBDTABLES KbdLayerDescriptor(VOID)
{
return &KbdTables;
}

View File

@ -0,0 +1,4 @@
LIBRARY KBDNOTED
EXPORTS
KbdLayerDescriptor @1

View File

@ -0,0 +1,122 @@
/****************************** Module Header ******************************\
* Module Name: KBDNOTED.H
* Noted-Layout, basierend auf Neo2
\***************************************************************************/
// basiert auf den in der kbd.h definierten KBD-Type 4
#define KBD_TYPE 4
// kbd.h einschließen
#include "kbd.h"
#include <dontuse.h>
/* **************************************************************************************************************\
*
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* |T01| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* +---------------------------------------------------------+ +--------------+ +---------------+
* |T29¦T02¦T03¦T04¦T05¦T06¦T07¦T08¦T09¦T0A¦T0B¦T0C¦T0D¦ T0E | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
* |T0F¦T10¦T11¦T12¦T13¦T14¦T15¦T16¦T17¦T18¦T19¦T1A¦T1B¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
* | T3A ¦T1E¦T1F¦T20¦T21¦T22¦T23¦T24¦T25¦T26¦T27¦T28¦T2B¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
* |---------------------------------------------------------| +----+ +---+---+---+---¦
* |T2A ¦T56¦T2C¦T2D¦T2E¦T2F¦T30¦T31¦T32¦T33¦T34¦T35¦ T36 | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦X38 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*
*
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* |Esc| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* +---------------------------------------------------------+ +--------------+ +---------------+
* |T1 ¦1 ¦2 ¦3 ¦4 ¦5 ¦6 ¦7 ¦8 ¦9 ¦0 ¦- ¦T2 ¦Back | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
* |Tab¦z ¦y ¦u ¦a ¦q ¦p ¦b ¦m ¦l ¦f ¦j ¦ß ¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
* | M3 ¦c ¦s ¦i ¦e ¦o ¦d ¦t ¦n ¦r ¦h ¦M3 ¦T3 ¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
* |---------------------------------------------------------| +----+ +---+---+---+---¦
* |Ums ¦M4 ¦v ¦x ¦ü ¦ä ¦ö ¦w ¦g ¦, ¦. ¦k ¦ Umsch | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦ M4 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*
\************************************************************************************************************** */
// Tastenumbelegung für Noted ; sonstige Tastenzuordnung siehe kbd.h
#undef T0D
#define T0D _EQ( OEM_2 ) // T2
#undef T10
#define T10 _EQ( 'Z' )
#undef T11
#define T11 _EQ( 'Y' )
#undef T12
#define T12 _EQ( 'U' )
#undef T13
#define T13 _EQ( 'A' )
#undef T14
#define T14 _EQ( 'Q' )
#undef T15
#define T15 _EQ( 'P' )
#undef T16
#define T16 _EQ( 'B' )
#undef T17
#define T17 _EQ( 'M' )
#undef T18
#define T18 _EQ( 'L' )
#undef T19
#define T19 _EQ( 'F' )
#undef T1A
#define T1A _EQ( 'J' )
#undef T1B
#define T1B _EQ( OEM_3 ) // qwertz-ß
#undef T1E
#define T1E _EQ( 'C' )
#undef T1F
#define T1F _EQ( 'S' )
#undef T20
#define T20 _EQ( 'I' )
#undef T21
#define T21 _EQ( 'E' )
#undef T22
#define T22 _EQ( 'O' )
#undef T23
#define T23 _EQ( 'D' )
#undef T24
#define T24 _EQ( 'T' )
#undef T25
#define T25 _EQ( 'N' )
#undef T26
#define T26 _EQ( 'R' )
#undef T27
#define T27 _EQ( 'H' )
#undef T28
#define T28 _EQ( OEM_102 ) // Mod 3
#undef T29
#define T29 _EQ( OEM_1 ) // T1
#undef T2B
#define T2B _EQ( OEM_4 ) // T3
#undef T2C
#define T2C _EQ( 'V' )
#undef T2D
#define T2D _EQ( 'X' )
#undef T2E
#define T2E _EQ( OEM_5 ) // ü
#undef T2F
#define T2F _EQ( OEM_7 ) // ä
#undef T30
#define T30 _EQ( OEM_6 ) // ö
#undef T31
#define T31 _EQ( 'W' )
#undef T32
#define T32 _EQ( 'G' )
#undef T35
#define T35 _EQ( 'K' )
#undef T3A
#define T3A _EQ( OEM_102 ) // Mod 3
#undef X38
#define X38 _EQ( OEM_8 ) // Mod 4
#undef T56
#define T56 _EQ( OEM_8 ) // Mod 4

View File

@ -0,0 +1,35 @@
#include <windows.h>
#define VER_USE_OTHER_MAJOR_MINOR_VER
#define VER_PRODUCTMAJORVERSION 2
#define VER_PRODUCTMINORVERSION 0
#define BETA 1
#include <ntverp.h>
#undef VER_PRODUCTBUILD
#define VER_PRODUCTBUILD 1234
#undef VER_PRODUCTBUILD_QFE
#define VER_PRODUCTBUILD_QFE 0
#undef VER_COMPANYNAME_STR
#define VER_COMPANYNAME_STR "neo-layout.org"
#undef VER_PRODUCTNAME_STR
#define VER_PRODUCTNAME_STR "Noted Tastaturtreiber"
#define VER_LEGALCOPYRIGHT_STR "https://neo-layout.org/Beitragen/Lizenzfragen/"
#undef VER_LEGALTRADEMARKS_STR
#define VER_LEGALTRADEMARKS_STR \
"wiki.neo-layout.org/wiki/Lizenzfragen"
#define VER_FILETYPE VFT_DLL
#define VER_FILESUBTYPE VFT2_DRV_KEYBOARD
#define VER_FILEDESCRIPTION_STR "Deutsch (Noted) Tastaturlayout"
#define VER_INTERNALNAME_STR "kbdnoted"
#define VER_ORIGINALFILENAME_STR "kbdnoted.dll"
#define VER_LANGNEUTRAL
#include "common.ver"