Entwicklerseite zu NeoVars sowie einige Erwähnungen entfernt; Formatierung

pull/25/head
qwertfisch 2 years ago
parent 5fa21f7867
commit f0cabcc46e
  1. 37
      docs/Baustelle/todo.md
  2. 48
      docs/Beitragen/Treiber-KnowHow-NeoVars.md
  3. 56
      docs/Beitragen/Treiber-KnowHow.md
  4. 16
      docs/Beitragen/index.md
  5. 2
      docs/Einrichtung/kbdneo.md
  6. 4
      docs/Probleme/VM.md
  7. 1
      mkdocs.yml

@ -1,37 +0,0 @@
# Todo
Bisher steht nur eine Grobe Struktur. Überschriften und Sortierung können sich noch jederzeit ändern. Auch die Verlinkung (Sidebars und so) wird sich vermutlich noch ändern. Beim Schreiben vielleicht gleich [Beitragen: Doku](../Beitragen/index.md#dokumentation) mit beschlossenen Konventionen füllen.
* PROGRESS: Benutzerhandbuch
* TODO: kurze Landing Page?
* PROGRESS: Installation
* TODO: Übersicht in Windows-Übersicht transformieren, der Rest wird sonst eigentlich schon von der Download/Installationsseite abgedeckt?
* PROGRESS: Windows NeoVars
* PROGRESS: Windows KBDNeo
* TODO: Mac
* TODO: BSD
* TODO: Solaris -- hrnz stimmt für die Mülltonne
* TODO: C64 -- ist in der Mülltonne, weil ohnehin nur Neo 1.0 und unnötiger Rotz
* TODO: Android
* TODO: Sonstiges -- Was ist hiermit gemeint?
* TODO: Die Ebenen
* TODO: Lernen
* TODO: Vor- und Nachteile
* TODO: Typografie - hrnz stimmt für Mergen in einen einzigen Artikel
* TODO: FAQ
* TODO: Beitragen
* TODO: Historisch -- hrnz stimmt auch hier für Mergen in weniger (einen?) Artikel
* TODO: Alles in der Baustelle abklären, insbesondere checken, ob jemand was aus dem Mülleimer behalten möchte.
* TODO: Verschiedenes
* links checken
* Schreibweise modtasten: Mod3 vs M3 klären
* Dateien so verschieben, dass sie zu der Struktur passen und dann alle Links fixen?
## Noch ohne Platz aber vielleicht interessant
* Wikieintrag: [LinuxSysRq](https://old-wiki.neo-layout.org/neowiki/wiki/LinuxSysRq)
* Wikieintrag: [UnicodeNormalformen](https://old-wiki.neo-layout.org/neowiki/wiki/Unicode-Normalformen)
## Theme
* 404 Seite
* bisschen fontawesome deko und so?
* templates für home, Quickguide? (evtl auch doof, dass tabs da beim scrollen verschwinden?)

@ -1,48 +0,0 @@
# NeoVars für Entwickler
**Eine schnelle, sehr pragmatische Kurzanleitung zum Verändern von Buchstaben findet sich [hier](http://www.adnw.de/uploads/Main/ADNWMitNeo-TreiberUnterWindows/NeoVarsModAnleitung2.pdf)**
## Geschichte
NeoVars ist die nunmehr zweite Implementierung des Neo-Tastaturlayouts in der Programmiersprache [AutoHotKey](https://www.autohotkey.com/) (auch AHK). Statt mit langen if-then-else-Bäumen auf getrennten Key-Hooks arbeitet neo-vars mit einem globalen, für (fast) alle Tasten durchlaufenen Key-Hook (keyhooks.ahk), der nicht nur für key-press sondern auch für key-release (up) verwendet wird.
## Key-Hook
Der Key-Hook durchläuft die Funktion `AllStar` (varsfunctions.ahk), in der der Name der gedrückten Taste (`PhysKey`, dann `ActKey`) um die aktuelle Ebenennummer erweitert wird und das Ergebnis als Variable abgefragt wird. Diese Variable (gespeichert in char) sagt nun, was sich hinter dem Tastendruck für ein Zeichen (z.B. „U0041“ für ein großes ++A++) oder auch Sonderzeichen (z.B. `SComp` für Compose), oder auch Unterprogrammaufruf (z.B. `P_EHt` für das Umschalten des Einhand-Modus) verbirgt. Dieser „Lookup“, den man in „besseren“ Programmiersprachen mit assoziativen Hash-Arrays implementiert, wird in AHK über dynamische Variablenabfragen gemacht, wobei diese Variablen vorher definiert wurden.
## Variablen
Variablen werden aber nicht nur für die Zuweisung Ebene+Taste=Zeichen (keydefinitions.ahk) verwendet, sondern auch für Shortcuts (shortcuts.ahk), die später dazu dienen, aus abstrakten Zeichen wieder von Programmen verwendbare Tastendrücke zu machen: Aus `SHome` wird beispielsweise über »send« wieder „{Home down}“ für den Tastendruck und „{Home up}“ für das Loslassen. Auch für Buchstaben und Sonderzeichen wird diese Methode verwendet, um größtmögliche Kompatibilität mit normalen Programmen zu gewährleisten. Alles, wofür es keine Shortcuts gibt, wird als Unicode-Zeichen an die
Applikation geschickt. Ein paar wenige Zeichen können nicht oder nur schwer durch getrennte Down-Up-Sequenzen umgesetzt werden; an diesen Stellen wird auf den getrennten Key-Release verzichtet und das Zeichen bzw. eine dafür notwendige Zeichenfolge über das gute alte »send« geschickt.
Zweiter wichtiger und auch für den Benutzer spürbarer Unterschied zum alten AHK-Skript ist die Unterstützung von Key-Press und -Release (down- und up-events), wodurch z.B. manche Programme erst benutzbar werden, wie z.B. Spiele, die die Dauer messen, für die eine Taste niedergedrückt ist. Dafür muss sich das Skript aber für jede Taste merken, was es bei einem späteren Release für ein Zeichen schicken muss, damit keine Taste „hängen“ bleibt. Auch diese Informationen werden in Variablen gespeichert, deren Namen mit dem Scancode/Virtualcode der Taste zusammenhängen.
Ähnlich werden Compose-Sequenzen unterstützt: Ist eine Variable definiert, die darauf hinweist, dass die bisherige Sequenz ein Compositum ist, wird dieses dargestellt. Ist eine andere Variable definiert, die sagt, dass bis zu einem fertigen Compositum noch mehr Zeichen kommen können, wird das aktuelle Zeichen nicht ausgegeben und stattdessen dem Compositum angehängt. Die dafür nötigen Variablen werden von einem Extra-Skript aus den definierten Compose-Sequenzen erstellt und als AHK-Code abgespeichert (compose.generated.ahk). Hier ist von Vorteil, dass AHK fast beliebig lange Variablennamen unterstützt.
Mit der Verwendung von Unterprogrammen, sowohl beim Drücken von Tasten, als auch bei Composita, eröffnen sich interessante
Möglichkeiten, die z.T. noch gar nicht ausgeschöpft sind. Ein paar Schmankerln sind aber jetzt schon eingebaut, wofür aber z.T. auch Hooks bemüht werden müssen.
Erst diese Key-Hooks an mehreren Stellen machen Spezial-Modi möglich: Es gibt einen Physical-Key-Hook, der z.B. für die Implementierung des Einhand-Neo verwendet wird (einhandneo.ahk). Er kann unter entsprechenden Nebenbedingungen, wie hier dem Gedrückthalten der Space-Taste, Tastencodes austauschen. Ein weiterer Key-Hook ermöglicht das Abfangen sämtlicher Tastendrücke für z.B. einen Römische-Zahlen-Modus (tools.ahk), um den gewohnten Ablauf zu ändern, um also hier die gedrückten Ziffern als Dezimalzahl zu interpretieren und in die für sie nötigen römischen Zahlen-Buchstaben umzuwandeln. Ähnlich funktioniert auch der generische Unicode-Zeichengenerator über ♫uu.
Eine weitere Stelle für Hooks ist die Ausgabefunktion, die derzeit für das Decodieren von Unicode-Zeichen verwendet wird: ♫dd und dann ein Zeichen eingeben, das auch über ein Compositum entstanden sein kann, und ein kleiner ToolTip gibt den entsprechenden Unicode-Codepoint aus (tools.ahk).
## Bildschirmtastatur
Die Bildschirmtastatur (M3+F1) reagiert nunmehr dynamisch auf die verschiedenen aktivierten Ebenen, d.h. mit dem Drücken eines Modifiers wird automatisch die entsprechende Ebene angezeigt, ohne dass man diese manuell wählen müsste. Im CapsLock-Modus funktioniert das noch nicht richtig, da sich dort Buchstaben und Sonderzeichen unterschiedlich verhalten und wir dafür noch zwei zusätzliche PNG-Dateien brauchen. Abgesehen davon gibt es Überlegungen, die Bildschirmtastatur komplett dynamisch zu machen, das heißt, dass man auch die zu erwartenden Compose-Sequenzen sehen kann. Wenn man also das tote Hochkomma `´` tippt, würde die Bildschirmtastatur für die solcherart unterstützten Tasten die Buchstaben mit Apostroph darstellen. Ob das aber so einfach geht, ist nicht ganz klar: Erstens muss die Ausgabe ausreichend gut ausschauen, zweitens muss die Existenz eines dafür ausgelegten Unicode-Fonts sichergestellt sein, und schließlich muss man die entsprechenden Windows-Funktionen umständlich über DLL-Calls aufrufen, um die AHK-Beschränkung auf die System-Codepage zu überwinden. Ob diese Funktion dann auch die benötigte Performance hat, müsste sich erst erweisen.
Das AHK-Skript (leider nicht das EXE) bindet jetzt eine eventuell bestehende individuelle Datei aus dem Neo-Applikationsverzeichnis ein (custom.ahk). Überhaupt sind die Spezialmodi wie EinHand-Neo, Lernmodus und Lang-s-Tastatur in eigene „Module“ ausgelagert worden, die den restlichen Code überhaupt nicht mehr tangieren. Das bedeutet einerseits, dass man sie einfacher warten kann, andererseits auch, dass sie durch diese leicht zu durchschauende Kapselung als Vorlage für individuelle Erweiterungen zur Verfügung stehen. So wäre denkbar, dass man auch die normale Belegung in ein Modul packt, das dann recht einfach und unabhängig vom restlichen Code gewartet werden kann.
Auf kurze Sicht steht eine automatische Tasten-Layout-Generierung auf dem Plan, mit der man über einen Klick die aktuelle Tastenbelegung aus der Referenz erzeugen kann. Zuvor sollte ein vernünftiges Dateiformat für die Referenz gefunden werden, dann kann mit der Erstellung des Konverters begonnen werden.
Last, but not least gehört für die vielen Konfigurationsoptionen ein entsprechender Dialog her. Der Kapselung wegen könnten die einzelnen Module hier separate Dialogboxen oder Tabs erhalten.
## Tray-Tipps
Übrigens stellt NeoVars seine Informationen (z.B. über die Aktivierung des Mod4-Lock) über Tray-Tips dar, die mitunter im Explorer oder über die Registry aktiviert werden müssen. Diese Einstellung zu ändern, wäre auch ein heißer Kandidat für die Config-Dialoge.
Nur ein kleiner Teil des Codes wurde vom alten Neo-AHK übernommen, darunter die kaum benutzten Keyboard-LEDs und die stark angepassten Unicode-Zeichenausgaben und Ebenenfunktionen. Mittlerweile werden sogar die Modifier über die normalen Keyboard-Hooks geleitet, wodurch man im Prinzip auch diese Zeichen generisch umlegen kann. Einen Strich durch die Rechnung macht uns AHK mit einer recht unflexiblen Handhabung der Alt-Taste, die zwar ge-hookt, aber nicht so einfach gesendet werden kann (AHK sendet bona fide automatisch Key-release-Events und simuliert Strg-Tastendrücke). Strg, Win und Konsorten wären hingegen kein Problem.
Wir hatten recht lang ein generelles Performance-Problem, das zur Folge hatte, dass hier und da ein Zeichen nicht vom AHK-Skript verarbeitet wurde und stattdessen direkt zur Applikation weiter gereicht wurde. Dieses Problem ist offenbar auf AHK und dessen Funktion SendInput in seiner derzeitigen Version zurückzuführen. Mit SendEvent (bzw. »SendMode Event« am Beginn des Skripts) haben wir aber keine Probleme mehr, weshalb NeoVars nun auch die offizielle AHK-Version ist.
## Individuelles Zusatz-Skript
Sofern man NeoVars als AHK-Skript startet und nicht als vorcompiliertes .EXE, hat man die Möglichkeit, eine Datei `custom.ahk` im Neo2-Anwendungsdaten-Verzeichnis (`%APPDATA%\Neo2\`) in den NeoVars-Start einzubinden. Über diesen Mechanismus kann man auf sämtliche Funktionen von AutoHotkey zugreifen und auch am Innersten von NeoVars Anpassungen vornehmen.
Man kann `custom.ahk` beispielsweise benützen, um das Tastaturlayout permanent oder auch per Hotkey, den individuellen Wünschen entsprechend, änderbar zu machen.
## Kompilierung
NeoVars muss auch auf seit Jahren verwendeten 64-Bit-Versionen von Windows in der Unicode-32-Bit-Variante (U32) kompiliert werden. Anderenfalls treten schwer nachzuvollziehende Fehler auf (siehe [dieses Issue](https://git.neo-layout.org/neo/neo-layout/issues/550)). Das [Buildskript](https://git.neo-layout.org/neo/neo-layout/src/commit/5b5115081df3526f17288184fd52aa25ac4a3659/windows/neo-vars/build/make-build.bat#L43) berücksichtigt diesen Umstand explizit.

@ -13,47 +13,59 @@ Dafür gibt es wohl vor allem zwei Gründe:
* spezielle Hardware, die Anpassungen nötig macht
## Windows
Für Windows gibt es momentan vier Neo-Treiber. Infos zur [Einrichtung der Treiber](../Einrichtung/index.md#windows) gibt es auf einer Extraseite.
Für Windows gibt es aktuell vier verschiedene Neo-Treiber. Infos zur [Einrichtung der Treiber](../Einrichtung/index.md#windows) gibt es auf einer Extraseite.
### kbdneo
kbdneo ist eine native Tastaturlayout-Definition, vergleichbar mit den mitgelieferten Layouts wie Qwertz oder Dvorak. Die Tastendrücke werden entsprechend der Definition in Zeichen umgesetzt und die verschiedenen Ebenen berücksichtigt. Leider sind technisch nicht alle Funktionen der Referenz möglich (insbesondere auf Ebene 4). Diese können mit einem AutoHotkey-Skript nachgerüstet werden.
[kbdneo](../Einrichtung/kbdneo.md) ist eine native Tastaturlayout-Definition, vergleichbar mit den mitgelieferten Layouts wie Qwertz oder Dvorak. Die Tastendrücke werden entsprechend der Definition in Zeichen umgesetzt und die verschiedenen Ebenen berücksichtigt. Leider sind technisch nicht alle Funktionen der Referenz möglich (insbesondere auf der vierten Ebene). Diese können mittels ReNeo nachgerüstet werden.
Für die Entwicklung des kbdneo-Treibers wird momentan das [Windows Driver Kit](https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk) verwendet.
Für die M3-Ebene wird ein neu geschaffener Modifier verwendet, für die M4-Ebene der japanische Kana-Modifier.
Für die Mod3-Ebene wird ein neu geschaffener Modifier verwendet, für die Mod4-Ebene der japanische Kana-Modifier.
Näheres zur Kompilierung siehe [Build-Anleitung](https://git.neo-layout.org/neo/neo-layout/src/branch/master/windows/kbdneo2) im kbdneo-Verzeichnis. +Für weitere Infos: qwertfisch fragen (z.B. im IRC).
Näheres zur Kompilierung siehe [Build-Anleitung](https://git.neo-layout.org/neo/neo-layout/src/branch/master/windows/kbdneo2) im kbdneo-Verzeichnis. Für weitere Infos: qwertfisch fragen (z.B. im IRC).
#### ReNeo
### ReNeo
Anstelle des Autohotkey-Skripts gibt es seit kurzem (Februar 2021) eine neu programmierte Alternative des Zusatzskripts namens [ReNeo](https://github.com/Rojetto/ReNeo). Diese behebt einige bisherige Nachteile:
[ReNeo](../Einrichtung/reneo.md) ist von Grund auf neu geschrieben und ein schlanker Treiber, der keine weiteren Abhängigkeiten hat und keine Admin-Rechte benötigt. Er unterstützt alle Features des Neo-Layouts und zeigt sich bislang deutlich stabiler als frühere Treiber. Der Treiber wird [aktiv weiterentwickelt](https://github.com/Rojetto/ReNeo).
- verbesserte Kompatibilität mit Qt- und GTK-Anwendungen
- vollständige Compose-Unterstützung, Erzeugung von mehreren Zeichen auf einmal
- Compose-Taste M3+Tab sendet keinen Tab mehr an Anwendung
- stabilere Nutzung ohne den Umweg über AutoHotkey
Für ReNeo existieren zwei Betriebsmodi:
Außerdem erkennt ReNeo den Wechsel des Tastaturlayouts (falls man z.B. normales Qwertz zusätzlich installiert hat) und (de)aktiviert sich entsprechend.
- der Standalone-Modus ohne weitere Voraussetzungen
- der Erweiterungsmodus, bei die Vorteile von ReNeo mit den Vorteilen des nativen Treibers kbdneo verbunden werden.
Technisch ist ReNeo mit [neo2-llkh](#neo2-llkh) zu vergleichen, da in beiden Fällen ein schlankes Programm für die Umsetzung der Tastendrücke sorgt. ReNeo setzt allerdings auf das nativ installierte Layout von kbdneo, um auch dessen Vorteile mit zu nutzen. Dieser Treiber ist mit der jüngste in der Liste und deshalb auch nicht so gut erprobt wie die anderen. Für die Layouts Neo, Bone und NeoQwertz erweist er sich bislang jedoch als stabil und funktionsfähig.
Vorteile gegenüber kbdneo alleine sind:
- verbesserte Kompatibilität mit Qt- und GTK-Anwendungen
- vollständige Compose-Unterstützung, Erzeugung von mehreren Zeichen auf einmal
- die Compose-Taste ++Mod3+Tab++ sendet keinen ++Tab++ mehr an die Anwendung
- stabilere Nutzung ohne den Umweg über AutoHotkey
Außerdem erkennt ReNeo den Wechsel des Tastaturlayouts (falls man z.B. normales Qwertz zusätzlich installiert hat) und (de-)aktiviert sich entsprechend.
Technisch ist ReNeo mit [neo2-llkh](#neo2-llkh) zu vergleichen, da in beiden Fällen ein schlankes Programm für die Umsetzung der Tastendrücke sorgt. ReNeo im Standalone-Modus arbeitet nach demselben Prinzip, ist aber besonders in Hinblick auf Stabilität, Fehlerfreiheit und Unterstützung älterer Windows-Versionen entwickelt. Der Erweiterungsmodus verbindet diese Eigenschaften mit den Vorteilen eines nativen Layouts (siehe [hier](../Einrichtung/kbdneo.md#vorteile-und-unterschiede-zu-reneo)).
### Neovars
Neovars ist in der Skriptsprache [Autohotkey](https://www.autohotkey.com/) geschrieben. Dies ermöglicht die komplette Umsetzung der Referenz (und noch mehr). Die Skripte sowie die fertig kompilierte exe-Dateien lassen sich ohne Administratorrechte ausführen. Allerdings kann mit dieser Herangehensweise kein echtes Tastaturlayout realisiert werden, da die Tastendrucke lediglich abgefangen und umgewandelt werden, was zu ganz eigenen Problemen führt.
Neovars ist in der Skriptsprache [AutoHotkey](https://www.autohotkey.com/) geschrieben. Dies ermöglicht die komplette Umsetzung der Referenz (und noch mehr). Die Skripte sowie die fertig kompilierte exe-Dateien lassen sich ohne Administratorrechte ausführen. Allerdings kann mit dieser Herangehensweise kein echtes Tastaturlayout realisiert werden, da die Tastendrucke abgefangen und über mehrere Schichten hinweg (bedingt durch AutoHotkey) umgewandelt werden, was zu ganz eigenen Problemen führt.
Der aktuelle AHK-Treiber ist Neovars, der auch aktiv weiterentwickelt wird. Es gibt ausführliche Hinweise für [Nutzer](../Einrichtung/neovars.md) wie [Entwickler](Treiber-KnowHow-NeoVars.md).
NeoVars ist der langjährige Vorläufer von ReNeo und ist hier insbesondere aufgeführt, da es noch viele bestehende Nutzer gibt. Entsprechend bleibt die [Dokumentation](../Einrichtung/neovars.md) für Nutzer erhalten. Dieser Treiber sollte aber nicht mehr verwendet werden.
Die sehr alte Version des AHK-Treibers vor der Neuimplementierung (vor 2010) steht [im Repository](https://git.neo-layout.org/neo/neo-layout/src/branch/master/windows/ahk-auslaufend) zur Verfügung, jedoch nur noch aus historischen Gründen.
Die letzte Version vor der Neuimplementierung steht [im Repository](https://git.neo-layout.org/neo/neo-layout/src/branch/master/windows/ahk-auslaufend) für Entwickler zu Testzwecken zur Verfügung. Dieser Treiber sollte aber nicht mehr verwendet werden.
### neo2-llkh
[neo2-llkh](https://github.com/MaxGyver83/neo2-llkh) ist ein sehr schlanker Treiber, der weder Autohotkey noch Admin-Rechte benötigt. Er unterstützt alle sechs Ebenen und bietet ein paar Funktionen, die in den anderen Treibern nicht verfügbar sind: Zum Beispiel können die linke Alt- und Strg-Taste vertauscht werden, CapsLock kann als zusätzliche Escape-Taste konfiguriert werden oder man kann einstellen, dass für Shortcuts das Qwertz-Layout gelten soll.
[neo2-llkh](https://github.com/MaxGyver83/neo2-llkh) ist ein sehr schlanker Treiber, der weder Autohotkey noch Admin-Rechte benötigt. Er unterstützt alle sechs Ebenen und entstand aus dem Bedürfnis heraus, NeoVars spezifisch an einzelne Anforderungen anpassen zu wollen (z.B. Umbelegung der Modifier-Tasten). Der technische Ansatz entspricht demselben wie ReNeo, mit dem Fokus auf freie Anpassung und Positierung von Modifiern (darunter auch ++Alt++, ++Strg++ und ++Win++). Dies ist in ReNeo zwar auch möglich, jedoch nicht über einfache Einstellungen in einer Textdatei. Weiterhin kann CapsLock als zusätzliche Escape-Taste konfiguriert werden, oder es lässt sich einstellen, dass für ++Strg++-Shortcuts das Qwertz-Layout gelten soll.
Dieser Treiber ist mit der jüngste in der Liste und deshalb auch nicht so gut erprobt wie die anderen.
Dieser Treiber ist mit der jüngste in der Liste und deshalb auch nicht so gut erprobt wie die anderen. Die Funktionsfähigkeit wird erst ab Windows 10 gewährleistet.
### Weitere Programme
Es gibt noch einige andere Programme, mit denen ebenfalls die Änderung des Windows-Tastaturlayouts möglich ist. Sie sind jedoch den oben beschriebenen aus verschiedenen Gründen unterlegen:
Es gibt noch einige andere, deutlich ältere Programme, mit denen ebenfalls die Änderung des Windows-Tastaturlayouts möglich ist. Sie sind jedoch den oben beschriebenen aus verschiedenen Gründen unterlegen:
* [MSKLC 1.4](https://www.microsoft.com/en-us/download/details.aspx?id=102134) ist für Windows, kostenlos und gut, wenn man „nur“ 4 Ebenen hat. Es ist in der Hilfedatei hervorragend beschrieben. Man erstellt wie mit dem WDK ([kbdneo](#kbdneo)) ein „echtes“ Tastaturlayout. Wurde für Neo1 verwendet.
* [KbdEdit](http://www.kbdedit.com/): Ein vielversprechendes Programm zur Erstellung von Tastaturlayouts. Doch da nicht nur die Entwicklerversion Geld kostet, sondern auch das fertige Layout nur mit dem kostenpflichtigen Player verwendet werden kann, kommt es für Neo leider nicht in Frage.
* [KeyTweak](http://webpages.charter.net/krumsick/): Greift direkt in die Registry ein und ermöglicht so nicht das Umschalten zwischen Neo und qwertz. Kann aber z.B. CapsLock dauerhaft zu AltGr ändern.
!!! fail "Achtung"
Der Link funktioniert nicht mehr.
* MSKLC: [MSKLC 1.4](https://www.microsoft.com/en-us/download/details.aspx?id=102134) ist für Windows, kostenlos und gut, wenn man „nur“ 4 Ebenen hat. Es ist in der Hilfedatei hervorragend beschrieben. Man erstellt wie mit dem DDK (kbdneo) ein „echtes“ Tastaturlayout. Wurde für Neo1 verwendet, inzwischen jedoch vom [DDK](../Entwicklung/kbdneo) (siehe dort) abgelöst.
* KbdEdit: Ein vielversprechendes Programm zur Erstellung von Tastaturlayouts. Doch da nicht nur die Entwicklerversion Geld kostet, sondern auch das fertige Layout nur mit dem kostenpflichtigen Player verwendet werden kann, kommt es für Neo leider nicht in Frage.
* [KeyTweak](http://webpages.charter.net/krumsick/): Greift direkt in die Registry ein und ermöglicht so nicht das Umschalten zwischen Neo und qwertz. Kann aber z.B. CapsLock dauerhaft zu AltGr ändern. **Achtung**, der Link funktioniert nicht mehr.
## Linux
Hier ist [die Einrichtung von Neo unter Linux](../Einrichtung/Linux.md) beschrieben.
@ -128,7 +140,7 @@ Ein umbinden der rechten Option auf rechte Command ist danach auch nicht mehr n
## Compose
Zur Aufnahme oder Änderung von [Compose](../Benutzerhandbuch/Tote-Tasten-und-Compose.md#compose)-Kombinationen muss die Datei /Compose/src/base.module im Repository um die entsprechenden Einträge ergänzt werden. Diese UTF-8-Datei ist im Standard-Compose-Format für Linux geschrieben. Die Compose-Funktion unter Windows (beispielsweise die des NeoVars) wird hieraus automatisch generiert.
Zur Aufnahme oder Änderung von [Compose](../Benutzerhandbuch/Tote-Tasten-und-Compose.md#compose)-Kombinationen muss die Datei /Compose/src/base.module im Repository um die entsprechenden Einträge ergänzt werden. Diese UTF-8-Datei ist im Standard-Compose-Format für Linux geschrieben. Die Compose-Funktion unter Windows (beispielsweise die von ReNeo) wird hieraus automatisch generiert.
### Beschreibung einer typischen Kombination
Die Coko ♫|C=ℂ würde beispielsweise durch die folgende Zeile umgesetzt werden:

@ -2,7 +2,7 @@
## Treiber-Entwicklung
Die Neo-Treiber sind für die großen drei Betriebssysteme seit Jahren stabil. Dennoch ist der eine oder andere Bug vorhanden, oder es müssen Anpassungen an neue OS-Versionen her. Wenn du mitmachen möchtest oder dich für die Entwicklung interessierst, schau dich im „Beitragen“-Bereich um oder schau im [Neo-Chat](Community.md#neo-chat) vorbei.
Die Neo-Treiber sind für die großen drei Betriebssysteme seit Jahren stabil. Dennoch ist der eine oder andere Bug vorhanden, oder es müssen Anpassungen an neue Betriebssystem-Versionen her. Wenn du mitmachen möchtest oder dich für die Entwicklung interessierst, schau dich im „Beitragen“-Bereich um oder schau im [Neo-Chat](Community.md#neo-chat) vorbei.
Wir nutzen [Gitea](https://git.neo-layout.org) zur Code-Verwaltung. Das Repository auf Github ist lediglich ein Mirror. Ist ein Github-Account vorhanden, kann man sich damit auch bei unserem Gitea registrieren und anmelden.
@ -13,7 +13,9 @@ Wenn Neo nicht so will wie erwartet oder es Fragen / Vorschläge gibt, kannst Du
## Dokumentation
Einer der Artikel ist nicht genau genug, oder gar falsch? Es gibt fehlende Informationen? Trag sie nach: auf jedem Artikel findest Du oben rechts neben dem Titel einen Edit-Button. Du brauchst nur einen Account beim Gitea (siehe oben) und kannst dann die Seite editieren. Besonders komfortabel ist die Bearbeitung, wenn du im Gitea-„WikiEditors“-Team bist. Dann kannst du in Gitea direkt oben rechts auf den Bearbeiten-Button gehen und in dem Repository einen neuen Branch mit Pull-Request mit deinen Änderungen erstellen. Ansonsten kannst du das Repository aber auch forken und dann einen Pull-Request stellen. Wir fügen dich gerne zum „WikiEditors“-Team hinzu, wende dich einfach an [uns](Community.md#neo-chat).
Einer der Artikel ist nicht genau genug, oder gar falsch? Es gibt fehlende Informationen? Trag sie nach: auf jedem Artikel findest Du oben rechts neben dem Titel einen Edit-Button. Du brauchst nur einen Account beim Gitea (siehe oben) und kannst dann die Seite editieren.
Besonders komfortabel ist die Bearbeitung, wenn du im Gitea-„WikiEditors“-Team bist. Dann kannst du in Gitea direkt oben rechts auf den Bearbeiten-Button gehen und in dem Repository einen neuen Branch mit Pull-Request mit deinen Änderungen erstellen. Ansonsten kannst du das Repository aber auch forken und dann einen Pull-Request stellen. Wir fügen dich gerne zum „WikiEditors“-Team hinzu, wende dich einfach an [uns](Community.md#neo-chat).
### Syntax
@ -33,19 +35,17 @@ Solltest du eine Erweiterung benötigen, die nicht aufgeführt ist, schreib uns
### Links und Image-Links
Externe Links zu anderen Seiten oder extern eingebundenen Bildern (auch als Image-Links) werden mit voller URL (`https`…) angegeben.
Interne Links zu anderen Markdown-Seiten oder sonstigen Dateien im Wiki können sowohl relativ wie auch absolut angegeben werden. Von letzterem wird jedoch [abgeraten](https://github.com/mkdocs/mkdocs/issues/1592), und die offizielle [Dokumentation](https://www.mkdocs.org/user-guide/writing-your-docs/#linking-to-pages) stellt auch klar, dass absolute Pfadangaben für interne Links nicht unterstützt werden.
Externe Links zu anderen Seiten oder extern eingebundenen Bildern (auch als Image-Links) werden mit voller URL (`https://`…) absolut angegeben.
Der Vorteil bei der Verwendung relativer Pfade besteht darin, dass MkDocs bei der Erstellung der Site alle relativen Links überprüft auf Vorhandensein. So können eventuell tote oder falsche Links nach Umbauarbeiten direkt gefunden werden. Alle internen Verlinkungen im Neo-Wiki verwenden relative Pfadangaben.
Interne Links zu anderen Markdown-Seiten oder sonstigen Dateien im Wiki werden relativ angegeben. Der Vorteil besteht darin, dass MkDocs bei der Erstellung der Site alle relativen Links auf Vorhandensein überprüft. So können eventuell tote oder falsche Links nach Umbauarbeiten direkt gefunden werden.
Ankerlinks auf Überschriften funktionieren bei relativen wie absoluten Links identisch. An den Link wird `#` sowie eine Repräsentation des Überschriftentitels angehängt. Dabei werden die Worte kleingeschrieben und mit Bindestrichen verbunden.
Ankerlinks auf Überschriften funktionieren bei relativen wie absoluten Links identisch. An den Link wird `#` sowie eine Repräsentation des Überschriftentitels angehängt. Dabei werden die Worte kleingeschrieben und mit Bindestrichen verbunden, sowie Umlaute ohne Punkte geschrieben.
??? example "Beispiele"
- `(Linux.md)` verweist auf die Seite „Linux“, die im selben Verzeichnis wie die aktuelle Seite liegt
- `(images/image.jpg)` verweist auf ein Bild im Unterverzeichnis `images` parallel zur aktuellen Seite
- `(../Downloads/installation.md)` verweist auf die Datei mit der Seite „Installation“, die im parallelen Verzeichnis „Downloads“ liegt
- `(../Benutzerhandbuch/neovars.md#automatischer-start)` verweist auf die Seite in der Datei `neovars.md`, die im parallelen Verzeichnis „Benutzerhandbuch“ liegt, und innerhalb der Seite auf den Überschriften-Anker für „Automatischer Start“.
- `(../Lernen/vorteile.md#wichtige-kriterien)` verweist auf die Seite in der Datei `vorteile.md`, die im parallelen Verzeichnis „Lernen“ liegt, und innerhalb der Seite auf den Überschriften-Anker für „Wichtige Kriterien“.
- `(#manuelle-installation)` verweist auf den Überschriften-Anker „Manuelle Installation“ innerhalb desselben Dokuments.
### Richtlinien

@ -159,4 +159,4 @@ Wenn man das Layout in den Spracheinstellungen hinzugefügt hat, es aber nicht i
!!! fail "Obsoleter Fehler"
In früheren Versionen wurde statt ReNeo ein Ergänzungsskript verwendet, das auf AutoHotkey basiert. Die Nutzung von ReNeo führt nicht zum beschriebenen Fehler.
Dies wird vorkommen, wenn mehr als ein [Ergänzungsskript](#erganzendes-autohotkey-skript) gleichzeitig läuft. Hier bitte überprüfen, dass genau ein Skript läuft, und dass dieses zum aktiven Layout passt (also beispielsweise `kbdbone.exe` zum Bone-Layout).
Dies wird vorkommen, wenn mehr als ein Ergänzungsskript gleichzeitig läuft. Hier bitte überprüfen, dass genau ein Skript läuft, und dass dieses zum aktiven Layout passt (also beispielsweise `kbdbone.exe` zum Bone-Layout).

@ -4,7 +4,9 @@
Soll Neo in Virtuellen Maschinen (z.B. VirtualBox, Qemu, VMware) oder für Remote-Desktop-Verbindungen verwendet werden, so kommt es oft zu Problemen, da zwei Tastaturbelegungen miteinander konkurrieren. Auf dieser Seite sollen einige Lösungsansätze vorgestellt werden.
Allgemein lässt sich sagen: Bei Problemen sollte für Windows lieber der [kbdneo](/Benutzerhandbuch/Einrichtung/kbdneo.md)- anstatt des [NeoVars](/Benutzerhandbuch/Einrichtung/neovars.md)-Treibers verwendet werden. Behebt dies die Probleme nicht, ist es oft nötig, eines der beiden Systeme auf qwertz einzustellen.
Es lässt sich kein allgemeingültiger Rat geben, da es unzählige Kombinationen aus sich unterschiedlich verhaltenen VMs, aus Host-Systemen, Gast-Systemen und Tastaturtreibern gibt. Bei Problemen unter Windows klappt es meist, im Host-Windows [kbdneo](/Benutzerhandbuch/Einrichtung/kbdneo.md) einzusetzen und ggf. [ReNeo](/Benutzerhandbuch/Einrichtung/reneo.md) während der Nutzung der VM bzw. des Remote Desktops zu deaktivieren. Behebt dies die Probleme nicht, ist es oft nötig, eines der beiden Systeme auf Qwertz einzustellen.
Ansonsten gilt: Ausprobieren, ausgehend von Qwertz auf Host- wie Gast-System und sich dann schrittweise vorantasten.
## Virtualbox
Erst auf dem Wirt Qwertz aktivieren, auf dem Gast Neo. Danach kann man auf dem Wirt wieder auf Neo wechseln, das interessiert VBox dann nicht mehr. Siehe dafür auch das [VBox-Ticket 2595](http://www.virtualbox.org/ticket/2595). Ist im Wirt Neo eingestellt, führt das sonst dazu, dass zwar die Buchstaben korrekt gesendet werden, jedoch weder Punkt, Komma, noch die Zahlen der Zahlenreihe korrekt funktionieren.

@ -134,7 +134,6 @@ nav:
- Übersicht: Beitragen/index.md
- Beitragen/Lizenzfragen.md
- Beitragen/Treiber-KnowHow.md
- Beitragen/Treiber-KnowHow-NeoVars.md
- Beitragen/Grafiken.md
- Wieso ist Neo wie es ist?:
- Beitragen/Wieso/Paradigmen.md

Loading…
Cancel
Save