Discussion:
[Neo] neo auf programmierbarer tastatur etablieren
Mark Mueller
2018-04-18 12:07:54 UTC
Permalink
Liebe Mailingliste,

ich benutze Neo seit langer Zeit (15 Jahre?), möchte kein anders Layout
mehr, bin immernoch jedesmal dankbar - und kam bis vorhin auch gut
zurecht. Jetzt bräuchte ich Hilfe:

Ich habe ein programmierbares, geteiltes Keyboard besorgt *1, was mit
einem Windowsprogramm *2 konfiguriert werden kann.

Mein Plan war auf diesem geteilten Keyboard ein Neo mit allen Ebenen zu
etablieren, was unabhängig vom Betriebssystem funktioniert (idealerweise
am angeschlossenen Telefon, Ipad, etc.).

Ich weiß nicht, ob ich den Konfigurator dazu kriege Neo mit allen Ebenen
auf der Tastatur zu installieren, oder ob das nur ein Wunschtraum von
mir ist.

Mir fehlt der Sachverstand das einschätzen zu können.

Meine Bitte / Frage an euch ist:
Stand jemand vor ähnlichem Problem und ist es gelungen das zu lösen,
oder ist es mit diesem Keyboard / dieser Konfiguratio von vornherein
ausgeschlossen das Ziel zu erreichen?

Ich würde mich da jetzt durchwursteln - aber falls jemand mit demselben
Problem da draußen ist und Erfahrungen teilen würde, wäre ich sehr dankbar!

Viele Grüße!

Andreas

*1 -
https://www.amazon.com/Koolertron-Programmable-Mechanical-Keyboard-Ergonomic/dp/B076FTKD6F/ref=sr_1_1?ie=UTF8&qid=1524005572&sr=8-1&keywords=koolertron+keyboard


*2 - http://amazonfiles.s3.amazonaws.com/smkd62.rar
Michael Kiesenhofer
2018-04-18 14:41:18 UTC
Permalink
Hi,

Das Problem wird sein, dass wenn du am Rechner z.B. Qwertz eingestellt hast, du mit der Tastatur fÃŒr z.B. / ein Shift+7 erzeugen mÃŒsstest. Es ist also keine simple 1:1 Ersetzung von Tastencodes. Kann die Konfigurationssoftware bzw Firmware der Tastatur das? Noch schlimmer ist es bei Zeichen die es auf Qwertz garnicht gibt.

Ich fand es schon sehr hilfreich, Ebene 4 in Firmware zu haben weil die in vielen Programmen die meisten Probleme macht. Der Rest geht mit nativem Treiber oder AHK auch gut.

LG,
Michael
Post by Mark Mueller
Liebe Mailingliste,
ich benutze Neo seit langer Zeit (15 Jahre?), möchte kein anders Layout
mehr, bin immernoch jedesmal dankbar - und kam bis vorhin auch gut
Ich habe ein programmierbares, geteiltes Keyboard besorgt *1, was mit
einem Windowsprogramm *2 konfiguriert werden kann.
Mein Plan war auf diesem geteilten Keyboard ein Neo mit allen Ebenen zu
etablieren, was unabhÀngig vom Betriebssystem funktioniert
(idealerweise
am angeschlossenen Telefon, Ipad, etc.).
Ich weiß nicht, ob ich den Konfigurator dazu kriege Neo mit allen
Ebenen
auf der Tastatur zu installieren, oder ob das nur ein Wunschtraum von
mir ist.
Mir fehlt der Sachverstand das einschÀtzen zu können.
Stand jemand vor Àhnlichem Problem und ist es gelungen das zu lösen,
oder ist es mit diesem Keyboard / dieser Konfiguratio von vornherein
ausgeschlossen das Ziel zu erreichen?
Ich wÃŒrde mich da jetzt durchwursteln - aber falls jemand mit demselben
Problem da draußen ist und Erfahrungen teilen wÃŒrde, wÀre ich sehr
dankbar!
Viele GrÌße!
Andreas
*1 -
https://www.amazon.com/Koolertron-Programmable-Mechanical-Keyboard-Ergonomic/dp/B076FTKD6F/ref=sr_1_1?ie=UTF8&qid=1524005572&sr=8-1&keywords=koolertron+keyboard
*2 - http://amazonfiles.s3.amazonaws.com/smkd62.rar
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
Erik Streb del Toro
2018-04-18 21:02:53 UTC
Permalink
Hallo Andreas.

Folgende Sache ist wichtig zu verstehen:
• Jede Tastatur wird am Rechner als Tastatur erkannt.
• Das Betriebssystem hat eine voreingestellte Tastaturbelegung, die man
auch ändern kann.
• Egal welche Tastatur dran hängt, und egal was (welches Zeichen/Symbol)
auf die Tasten aufgedruckt ist, die Verkabelung und Verschaltung intern
(in der Tastatur) bewirkt, dass wenn man zum Beispiel die Taste
»Eingabe« (Enter, Return) drückt, vom Betriebssystem das
Zeichen/Symbol/Funktion ausgegeben/gesendet wird, was in der im
Betriebssystem eingestellten Tastaturbelegung vorgegeben ist (bei den
üblichen Tastaturbelegungen ist das dann auch »Eingabe«). Und wenn man
die Taste, die bei der deutsch (QWERTZ) beschrifteten Tastatur ein »z«
zeigt, drückt, wird ein »z« ausgegeben, wenn man die deutsche
Tastaturbelegung im Betriebssystem aktiviert hat. Wenn man die
französische (AZERTY) oder englische (QWERTY) Belegung aktiviert hat,
wird ein »y« ausgegeben. Und wenn man dazu noch die Umschalttaste
drückt, wird ein großes »Z« oder »Y« ausgegeben.

Die Tastaturbelegung Neo (eine Software die auf dem Betriebssystem
läuft), hat einige außergewöhnliche Zeichen/Symbole/Funktionen. Die auf
Ebene 3 sind großteils auch bei der QWERTZ-Belegung vorhanden
(\/{}()-:_[]<>=&#$|~+%"';). Man könnte also eine programmierbare
Tastatur so belegen, dass wenn man die QWERTZ-Capslock-Taste drückt und
dann noch die QWERTZ-ö-Taste (Neo-d), dass dann ein »:« gesendet wird,
indem man die programmierbare Tastatur zwei Tastendrücke gleichzeitig
simulieren lässt, nämlich Umschalt-Taste und QWERTZ-Punkt-Taste bzw.
Neo-Punkt-Taste (die sind ja an der gleichen Stelle).

Aber was wenn man »…« senden will? Ist das bei der QWERTZ-Belegung
irgendwo vorhanden? Oder ν oder ρ oder τ oder δ oder ♀ oder ♂?

Die Zeichen/Symbole/Funktionen der Ebene 4, also die Bewegungstasten und
den Ziffernblock, könnte man sicher noch ganz gut umsetzen, denn die
sind ja bei der QWERTZ-Belegung auch vorhanden.

Hoffe, dass das einigermaßen verständlich war. Sicher gibt es da ein
paar Knoten im Kopf. Am Besten wäre wohl eine Skizze.

Grüße aus Agaete
Erik
Post by Mark Mueller
Liebe Mailingliste,
ich benutze Neo seit langer Zeit (15 Jahre?), möchte kein anders Layout
mehr, bin immernoch jedesmal dankbar - und kam bis vorhin auch gut
Ich habe ein programmierbares, geteiltes Keyboard besorgt *1, was mit
einem Windowsprogramm *2 konfiguriert werden kann.
Mein Plan war auf diesem geteilten Keyboard ein Neo mit allen Ebenen zu
etablieren, was unabhängig vom Betriebssystem funktioniert (idealerweise
am angeschlossenen Telefon, Ipad, etc.).
Ich weiß nicht, ob ich den Konfigurator dazu kriege Neo mit allen Ebenen
auf der Tastatur zu installieren, oder ob das nur ein Wunschtraum von
mir ist.
Mir fehlt der Sachverstand das einschätzen zu können.
Stand jemand vor ähnlichem Problem und ist es gelungen das zu lösen,
oder ist es mit diesem Keyboard / dieser Konfiguratio von vornherein
ausgeschlossen das Ziel zu erreichen?
Ich würde mich da jetzt durchwursteln - aber falls jemand mit demselben
Problem da draußen ist und Erfahrungen teilen würde, wäre ich sehr dankbar!
Viele Grüße!
Andreas
*1 -
https://www.amazon.com/Koolertron-Programmable-Mechanical-Keyboard-Ergonomic/dp/B076FTKD6F/ref=sr_1_1?ie=UTF8&qid=1524005572&sr=8-1&keywords=koolertron+keyboard
*2 - http://amazonfiles.s3.amazonaws.com/smkd62.rar
Dipl.-Ing. Oliver-André Urban
2018-04-18 23:07:23 UTC
Permalink
Moin Erik,

Deine Beschreibung betrifft die normale Funktion. Es gibt allerdings je
nach Betriebssystem die Möglichkeit, direkt einen Zeichencode oder
Unicode einzugeben - z.B. bei Windows mit Alt+0133 (Alt gedrückt halten
und auf dem Numpad 0133 tippen) bzw (bei entsprechend gesetzem
Registryschlüssel) Alt gedrückt halten, "+" auf dem Numpad drücken und
den Hexcode 2026 eingeben. Damit erscheint der Dreipunkt
(Auslassungszeichen) unabhängig von der Tastaturbelegung.

Das ist unabhängig von der normalen Tastaturbelegung in Windows -
allerding nicht unabhängig vom Betriebssystem. Für Linux hängt es vom
Fenstermanager ab bei Mac ist wieder anders.

Um Wiederholungen zu vermeiden, verweise ich mal auf meinen
entsprechenden Post von 2015.
https://lists.neo-layout.org/pipermail/diskussion/2015-November/011613.html

Das mit einem normalen konfigurierbaren Keyboard zu erreichen, scheint
mir aber schwer. Ich habe seinerzeit mal 3 Ebenen mit dem Soarer
Converter realisiert - allerdings zum Anschluss an einen Bürorechner
ohne Adminrechte, daher mit der Eingabetechnik für Unicode unter Word.

Viele Grüße
Oliver-André
Post by Erik Streb del Toro
Hallo Andreas.
• Jede Tastatur wird am Rechner als Tastatur erkannt.
• Das Betriebssystem hat eine voreingestellte Tastaturbelegung, die
man auch ändern kann.
• Egal welche Tastatur dran hängt, und egal was (welches
Zeichen/Symbol) auf die Tasten aufgedruckt ist, die Verkabelung und
Verschaltung intern (in der Tastatur) bewirkt, dass wenn man zum
Beispiel die Taste »Eingabe« (Enter, Return) drückt, vom
Betriebssystem das Zeichen/Symbol/Funktion ausgegeben/gesendet wird,
was in der im Betriebssystem eingestellten Tastaturbelegung vorgegeben
ist (bei den üblichen Tastaturbelegungen ist das dann auch »Eingabe«).
Und wenn man die Taste, die bei der deutsch (QWERTZ) beschrifteten
Tastatur ein »z« zeigt, drückt, wird ein »z« ausgegeben, wenn man die
deutsche Tastaturbelegung im Betriebssystem aktiviert hat. Wenn man
die französische (AZERTY) oder englische (QWERTY) Belegung aktiviert
hat, wird ein »y« ausgegeben. Und wenn man dazu noch die Umschalttaste
drückt, wird ein großes »Z« oder »Y« ausgegeben.
Die Tastaturbelegung Neo (eine Software die auf dem Betriebssystem
läuft), hat einige außergewöhnliche Zeichen/Symbole/Funktionen. Die
auf Ebene 3 sind großteils auch bei der QWERTZ-Belegung vorhanden
(\/{}()-:_[]<>=&#$|~+%"';). Man könnte also eine programmierbare
Tastatur so belegen, dass wenn man die QWERTZ-Capslock-Taste drückt
und dann noch die QWERTZ-ö-Taste (Neo-d), dass dann ein »:« gesendet
wird, indem man die programmierbare Tastatur zwei Tastendrücke
gleichzeitig simulieren lässt, nämlich Umschalt-Taste und
QWERTZ-Punkt-Taste bzw. Neo-Punkt-Taste (die sind ja an der gleichen
Stelle).
Aber was wenn man »…« senden will? Ist das bei der QWERTZ-Belegung
irgendwo vorhanden? Oder ν oder ρ oder τ oder δ oder ♀ oder ♂?
Die Zeichen/Symbole/Funktionen der Ebene 4, also die Bewegungstasten
und den Ziffernblock, könnte man sicher noch ganz gut umsetzen, denn
die sind ja bei der QWERTZ-Belegung auch vorhanden.
Hoffe, dass das einigermaßen verständlich war. Sicher gibt es da ein
paar Knoten im Kopf. Am Besten wäre wohl eine Skizze.
Grüße aus Agaete
Erik
Post by Mark Mueller
Liebe Mailingliste,
ich benutze Neo seit langer Zeit (15 Jahre?), möchte kein anders Layout
mehr, bin immernoch jedesmal dankbar - und kam bis vorhin auch gut
Ich habe ein programmierbares, geteiltes Keyboard besorgt *1, was mit
einem Windowsprogramm *2 konfiguriert werden kann.
Mein Plan war auf diesem geteilten Keyboard ein Neo mit allen Ebenen zu
etablieren, was unabhängig vom Betriebssystem funktioniert (idealerweise
am angeschlossenen Telefon, Ipad, etc.).
Ich weiß nicht, ob ich den Konfigurator dazu kriege Neo mit allen Ebenen
auf der Tastatur zu installieren, oder ob das nur ein Wunschtraum von
mir ist.
Mir fehlt der Sachverstand das einschätzen zu können.
Stand jemand vor ähnlichem Problem und ist es gelungen das zu lösen,
oder ist es mit diesem Keyboard / dieser Konfiguratio von vornherein
ausgeschlossen das Ziel zu erreichen?
Ich würde mich da jetzt durchwursteln - aber falls jemand mit demselben
Problem da draußen ist und Erfahrungen teilen würde, wäre ich sehr dankbar!
Viele Grüße!
Andreas
*1 -
https://www.amazon.com/Koolertron-Programmable-Mechanical-Keyboard-Ergonomic/dp/B076FTKD6F/ref=sr_1_1?ie=UTF8&qid=1524005572&sr=8-1&keywords=koolertron+keyboard
*2 - http://amazonfiles.s3.amazonaws.com/smkd62.rar
---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
Manuel Ullmann
2018-04-19 09:19:30 UTC
Permalink
Hallo,

ist halt die Frage inwieweit so ein Konfigurator limitiert. Ist die Tastatur frei programmierbar und Open Hardware?

Ich fand die Idee auch interessant und habe mal versucht, sie für die Ergodox zu implementieren. Das hat so ca. 4 Monate gedauert bis ich an die Speichergrenze gestoßen bin. Ich habe früh daran gedacht mit cpp-Bedingungen die meisten Features abschaltbar zu machen und alle erstellten Varianten kompilieren momentan (soweit ich mich erinnere). Tatsächlich war es am schwersten, mein Ebenenwechselsystem für Neo zu implementieren. Da ich Ebenenwechsel zumindest partiell (ab L5/Keypad) Oneshot-fähig haben wollte, durfte ich im Grunde alle qmk-Funktionen für Ebenenwechsel reimplementieren und ändere in meinen Ebenenlogikhilfsfunktionen die Funktionspointer, falls die Tastatur den Neo-Treiber erwartet.

Unicode unterstützt qmk grundsätzlich, die Alt Variante unter Windows soll aber schlecht funktionieren. Ich setze daher WinCompose voraus, von dem es eine portable Fassung gibt, Mac soll auch gehen; testen kann ich es nicht; Linux ist schwierig. Die Methode hängt nicht vom wm ab, sondern davon was davon gestartet wird. Da gibt es ibus, scim und uim. Uim ist trotz seiner spärlichen Docs der einzige der auf Kernel-Konsolen funktioniert und dort brauche ich ihn für die Festplattenentschlüsselung, wenn ich von der Us-Bioskeymap nicht umschalten will. Dafür müsste man ihn aber umschreiben, weil er sonst den Codepoint der eingegebenen Unicode-Zeichen anzeigt (und Scheme müsste ich erst lernen). Unicode-Eingabe funktioniert in uim außerdem nur über ein Modul der ungewarteten m17n-lib. Schöner wäre also eine native Implementierung.

Zu guter Letzt war das Eintragen der 240+ Unicodepoints von Neo in Headerdateien ziemlich nervig und letztendlich automatisierbar. Aus Platz- und Arbeitsersparnisgründen wollte ich also mittels yacc einen Compiler generieren, der XKB Symboldateien ausliest und sie mittels keysymdef.h auf Unicodepoints ummappt. Dann könnte man diese mit entsprechender semantischer Ausgabe in mappende C-Arrays umwandeln und letztendlich das ganze so erweitern, dass man eine Treiberkeymap als Basis und eine als Ziel angibt, und die Ebenen automatisch generiert, wobei alle auf der Basis nichtexistenten Zeichen durch Unicodeeingabetasten ersetzt werden.
Die XKB-Dokumentation ist aber quasi nicht vorhanden und ohne Grammatik hatte ich keinen Bock mehr, daran weiterzuarbeiten.

Könnte den Code in seiner unfertigen und ungetesteten Fassung vielleicht mal auf Github laden.

Viele Grüße,
Manuel
--

Manuel Ullmann
2018-04-19 17:45:48 UTC
Permalink
Hallo,

ist halt die Frage inwieweit so ein Konfigurator limitiert. Ist die
Tastatur frei programmierbar oder Open Hardware?

Ich fand die Idee auch interessant und habe mal versucht, sie für die
Ergodox zu implementieren. Das hat so ca. 4 Monate gedauert bis ich an
die Speichergrenze gestoßen bin. Ich habe früh daran gedacht mit
cpp-Bedingungen die meisten Features abschaltbar zu machen und alle
erstellten Varianten kompilieren momentan (soweit ich mich
erinnere). Tatsächlich war es am schwersten, mein Ebenenwechselsystem
für Neo zu implementieren. Da ich Ebenenwechsel zumindest partiell (ab
L5/Keypad) Oneshot-fähig haben wollte, durfte ich im Grunde alle
qmk-Funktionen für Ebenenwechsel reimplementieren und ändere in meinen
Ebenenlogikhilfsfunktionen die Funktionspointer, falls die Tastatur den
Neo-Treiber erwartet.

Unicode unterstützt qmk grundsätzlich, die Alt Variante unter Windows
soll aber schlecht funktionieren. Ich setze daher WinCompose voraus, von
dem es eine portable Fassung gibt, Mac soll auch gehen; testen kann ich
es nicht; Linux ist schwierig. Die Methode hängt nicht vom wm ab,
sondern davon was davon gestartet wird. Da gibt es ibus, scim und
uim. Uim ist trotz seiner spärlichen Docs der einzige der auf
Kernel-Konsolen funktioniert und dort brauche ich ihn für die
Festplattenentschlüsselung, wenn ich von der Us-Bioskeymap nicht
umschalten will. Dafür müsste man ihn aber umschreiben, weil er sonst
den Codepoint der eingegebenen Unicode-Zeichen anzeigt (und Scheme
müsste ich erst lernen). Unicode-Eingabe funktioniert in uim außerdem
nur über ein Modul der ungewarteten m17n-lib. Schöner wäre also eine
native Implementierung.

Zu guter Letzt war das Eintragen der 240+ Unicodepoints von Neo in
Headerdateien ziemlich nervig und ist eigentlich automatisierbar. Aus
Platz- und Arbeitsersparnisgründen wollte ich also mittels yacc einen
Compiler generieren, der XKB Symboldateien ausliest und sie mittels
keysymdef.h auf Unicodepoints ummappt. Dann könnte man diese mit
entsprechender semantischer Ausgabe in mappende C-Arrays umwandeln und
letztendlich das ganze so erweitern, dass man eine Treiberkeymap als
Basis und eine als Ziel angibt, und die Ebenen automatisch generiert,
wobei alle auf der Basis nichtexistenten Zeichen durch
Unicodeeingabetasten ersetzt werden.
Die XKB-Dokumentation ist aber quasi nicht vorhanden und ohne Grammatik
hatte ich keinen Bock mehr, daran weiterzuarbeiten.

Könnte den Code in seiner unfertigen und ungetesteten Fassung vielleicht
mal auf Github laden, falls der Rebase halbwegs durchläuft.

Viele Grüße,
Manuel
Loading...