Re: [Neo] neo auf programmierbarer tastatur etablieren

2018-04-26 Diskussionsfäden Manuel Ullmann
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

2018-04-19 Diskussionsfäden Manuel Ullmann
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

2018-04-18 Diskussionsfäden Dipl . -Ing . Oliver-André Urban

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 
(\/{}()-:_[]<>=

Re: [Neo] neo auf programmierbarer tastatur etablieren

2018-04-18 Diskussionsfäden 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 
(\/{}()-:_[]<>=

Re: [Neo] neo auf programmierbarer tastatur etablieren

2018-04-18 Diskussionsfäden Michael Kiesenhofer
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=1524005572=8-1=koolertron+keyboard
>
>
>*2 - http://amazonfiles.s3.amazonaws.com/smkd62.rar

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.