Re: [Neo] neo auf programmierbarer tastatur etablieren
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 --
Re: [Neo] neo auf programmierbarer tastatur etablieren
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
Re: [Neo] neo auf programmierbarer tastatur etablieren
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é Am 18.04.2018 um 23:02 schrieb Erik Streb del Toro: 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 Am 18.04.2018 um 13:07 schrieb 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 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 --- Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft. https://www.avast.com/antivirus
Re: [Neo] neo auf programmierbarer tastatur etablieren
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 Am 18.04.2018 um 13:07 schrieb 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 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
Re: [Neo] neo auf programmierbarer tastatur etablieren
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 On 18 April 2018 14:07:54 GMT+02:00, Mark Mueller wrote: >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 -- Sent from my Android device with K-9 Mail. Please excuse my brevity.
[Neo] neo auf programmierbarer tastatur etablieren
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