Re: [Neo] Idee: QWERTZ mit 6 Ebenen

2011-01-07 Diskussionsfäden Arne Babenhauserheide
On Thursday 06 January 2011 20:23:24 Matthias Wächter wrote:
 Am 06.01.2011 20:09, schrieb Florian Janßen:
  Stell dein Layout so wie du es dir vorstellst hier rein, dann sehen wir
  weiter. Wie gesagt der Vorschlag wurde schon mehrfach gemacht, ein
  richtiges Layout jedoch noch nie präsentiert.
 
 Ich halte im Prinzip auch nicht viel von dieser Vorstellung, aber man
 kann schon recht einfach an die Sache heran gehen.
 
 Man nehme (einen Treiber für) Neo und setze die 33 Tasten, die mit dem
 Alphabet zu tun haben (also die Buchstaben, Umlaute, scharfes s sowie
 Punkt, Beistrich und Bindestrich) wie sie in Qwertz liegen. Fertig ist
 Neo-Qwertz. Dann hat man alle Buchstaben nach Qwertz und alle
 Sonderzeichen und Ebenen nach Neo.

Oder in etwa so? 

(ungetestet, einfach ein Qwertz in generate_xmodmap.py im repo geworfen)

Liebe Grüße, 
Arne
!! ~/.xmodmap
!! Qwertz-Neo

!!
!! based upon the Modifiers and levels 3 – 7 of
!! 
!! German Neo-Layout
!! adopted 2004 by Hanno Behrens hanno.behr...@gmx.de
!! inspired by Dvorak/de-ergo  http://www.goebel-consult.de/de-ergo/
!! Authors: 
!!  Benjamin Kellermann Benjamin dot Kellermann at gmx dot Germany
!!  Erik Streb mail at erikstreb dot de
!!  Pascal Hauck neo at pascalhauck dot de
!! 
!! Other Questions:
!!  diskussion at neo-layout dot org
!! 
!! $Revision: 2332 $, $Date: 2010-08-06 08:42:35 +0200 (Fr, 06. Aug 2010) $
!! http://neo-layout.org
!!
!! To try the layout in this file, simply do xmodmap file.
!! To load the layout in this file at X startup, simply store it as
!! ~/.xmodmap
!!
!!
!! This file generated by generiere_xmodmap.py
!! Ruthard Baudach rt...@web.de



! Ebenen

! Ebene 1: normal
! Ebene 2: Shift
! Ebene 3: Mod3
! Ebene 4: Mod4 (zum Markieren Shift+Mod4)
! Ebene 5: Shift+Mod3
! Ebene 6: Mod3+Mod4 (in dieser Reihenfolge!)
! Ebene 7: wird (bis auf technisch bedingte Ausnahmen) nicht belegt
! Multi_key=Compose (keine eigene Ebene): Mod3+Tab or right window key
! Feststellen/Shift_Lock: Shift+Shift
! Mod4_Lock: Mod4(rechts)+Mod4(links)

! Reihenfolge der Ebenen in der Xmodmap:
!Ebene1  Ebene2  Ebene3  Ebene5  Ebene4  Ebene4+Sh  Ebene6 Ebene7



! Modifier definition

clear Lock
clear Mod2
! Mod2 war NumLock !
clear Mod3
clear Mod5


! Shift

! 50=left 62=right
! Shift+Shift ergibt ein ShiftLock (wie Caps, wirkt aber auf alle Zeichen, 
nicht nur auf Großbuchstaben)
! Der Lock lässt sich durch ein weiteres Shift lösen.
! Eigentlich (siehe Referenz) sollte hier ein CapsLock stehen.
keycode 50 =  Shift_L Shift_Lock
keycode 62 =  Shift_R Shift_Lock


! Mod3

! 66=left 51=right
! Make CapsLock an modifier called Mod3 (similar to AltGr) (Mode_switch or 
ISO_Group_Shift is for 3rd and 4th level)
! Make former CapsLock and qwertz-# to Mode_switch or ISO_Group_Shift
! Mod3(links) (=Qwertz-Caps) erlaubt nur 4 Ebenen
! Ohne einen Eintrag in der zweiten Gruppe (=Ebene 3) ergäbe 
Mod3+Mod3=Group_Shift+Group_Shift=Gruppe 3=Ebene 6. Das ist nicht gewünscht.
keycode 66 =  ISO_Group_Shift ISO_Group_Shift ISO_First_Group  NoSymbol
keycode 51 =  ISO_Group_Shift ISO_Group_Shift ISO_First_Group  NoSymbol


! Mod4

! 94=left 113=right
! Make the former AltGr and qwertz- to Mod4 (ISO_Level3_Shift)
! Mod4(rechts)+Mod4(links) lässt Mod4 einrasten (Mod4Lock)
! das funktioniert nur in dieser Reihenfolge, da Mod4(rechts) (=Qwertz-AltGr) 
nur 4 Ebenen hat
! Der Lock lässt sich durch ein weiteres Mod4 lösen.
keysym less = ISO_Level3_Shift  ISO_Level3_Shift  ISO_Group_Shift   
ISO_Group_Shift  ISO_Level3_Lock  NoSymbol
keysym ISO_Level3_Shift = ISO_Level3_Shift  ISO_Level3_Shift  ISO_Group_Shift   
ISO_Group_Shift  ISO_Level3_Lock  NoSymbol


! window keys

! keysym Super_L = Super_L
! keycode 116 = Super_R
! keysym Super_R = Multi_key Multi_key
! add Mod4 = Super_L


! general Lock

! Einrasten über linke Win-Taste+Modifier, Lösen über nochmaliges Betätigen des 
Modifiers
! Shift_Lock und Mo4_Lock funktionieren, Mod3_Lock lässt sich aber nicht mehr 
lösen
! keycode 115 = ISO_Lock  NoSymbol
! add Lock = ISO_Lock



! main keyboard



! Tab key

Re: [Neo] Idee: QWERTZ mit 6 Ebenen

2011-01-07 Diskussionsfäden Arne Babenhauserheide
On Thursday 06 January 2011 14:55:44 Christoph Tomschitz wrote:
 Ich weis das ist nicht das was viele sich hier vorstellen, aber es sind
 einmal 66% eines
 genialen Konzepts das damit der Masse zugänglich gemacht wird. Microsoft
 unterstützt
 daraufhin 6 Ebenen offiziell, womit eine weitere Hürde (der Treiber) für
 viele fällt. Und
 dann kann man sich darum kümmern, das die Leute die optimierte
 Buchstabenanordung
 akzeptieren.

Ich würde noch hinzufügen: Wenn die oberen Ebenen sich verbreiten, können wir 
die untere in der Tastatur ändern, z.B. in der Truly Ergonomic. Damit könnten 
wir dann unser Layout immer und überall dabei haben, weil jeder Rechner alle 
Ebenen könnte. 

Und wenn erstmal 6 Ebenen Standard wären, würden auch die programmierbaren 
Tastaturen alle 6 ändern lassen. 

Liebe Grüße, 
Arne


signature.asc
Description: This is a digitally signed message part.


Re: [Neo] Idee: QWERTZ mit 6 Ebenen

2011-01-07 Diskussionsfäden Christoph Tomschitz
Zumindest scheint es einfacher als ersten Schritt 6 Ebenen zum Standard 
zu machen, als dies fest an ein neues Layout zu bündeln.


Microsoft hat DirectX 10 auch fest an Vista gekoppelt, mit dem Erfolg, 
das wir immer noch haupsächlich mit DX9 spielen. Auch Win7 ändert noch 
nicht viel daran, genausowenig wie Neo 3 (als Nachfolger von Neo 2) 
etwas radikal ändern wird.


Auch wenn der Vergleich ein wenig hinkt (und für einige ein Affront 
ist), das Betriebssystem auf dem Neo läuft ist nunmal der Benutzer. 
Und die installierte Basis ist QWERTZ. Es erscheint mir sinnvoller (mit 
Blick auf das Gesamtbild) zuerst die Grundlagen (die 6 Ebenen) für Neo 
zu schaffen, als von oben (mit dem optimierten Layout) zu beginnen.


Grüße,
Christoph



Re: [Neo] Aufkleber -- Tipps?

2011-01-07 Diskussionsfäden Carsten Ace Dahlmann
Hallo! :-)

Am Thu, 06 Jan 2011 01:18:08 +0100
schrieb Erik Streb del Toro:

 Du bist noch Neoling?

Aber selbstverständlich. :-) Du glaubst doch nicht ernsthaft, dass ich
auf einmal wieder zu diesem QWERTZ-Krampf zurückgekehrt bin?! ;-)

Ich habe mich halt nur hier etwas zurückgezogen, als ich auch nichts
mehr beitragen konnte.

Ich kann ja mal, falls es interessiert, einen neuen Zwischenbericht
abgeben. Mache ich aber am besten in einer anderen Mail.

Hier dann besser noch zum Thema:

  http://www.dahlmann.net/linked/neo_abgenutzt.jpg

 Als Schutz empfehle ich Klarlack, z.B. vom Autohändler, der ist sehr
 beständig – mein vor sechs Jahren lackierter Trackball zeigt bis heute
 *keinerlei* Abnutzungserscheinungen am Lack.
 [...]
 Normales Papier (so dass es halt schön aussieht, je nach Geschmack)
 und drüber Klarlack. 

Oh, das ist aber sehr interessant. Also einfach das ausgedruckte Papier
(ohne Klebefunktion(?)) auf die Taste legen und mit Klarlack drüber? Und
das hält dann, weil die Beschichtung über den Rand hinausgeht oder wie?
Denn viel Platz ist zwischen „Aufkleber”-Rand und Tastenende ja nicht
mehr.

  Am liebsten hätte ich natürlich weiterhin die jetzige. Liest Martin
  mit? Kann nicht jemand das Skript richten? :-)
 Kannst ihm ja ’ne persönliche Mail schreiben.

Ich habe in den letzten Tagen mit ihm per Mail kommuniziert, und als
Ergebnis gibt es jetzt ja die von ihm manuell angepassten Aufkleber.
Auch an dieser Stelle daher noch einmal herzlichen Dank. :-)

Liebe Grüße,
Ace
-- 
()  ascii ribbon campaign - against html e-mail 
/\  www.asciiribbon.org   - against proprietary attachments

http://www.dahlmann.net/?Informatives/Gekonntes_E-Mailen


signature.asc
Description: PGP signature


[Neo] Neuer Erfahrungsbericht -- 4 Jahre Neo

2011-01-07 Diskussionsfäden Carsten Ace Dahlmann
Hallo zusammen!

Ich wollte noch einmal einen kleinen weiteren Erfahrungsbericht
abgeben, nachdem ich Neo nun schon seit ca. 4(?)¹ Jahren nutze.

Was hat sich getan? Ich bin über meine recht früh erreichte (gemäßigte,
aber sehr komfortable) Neo-Geschwindigkeit nie herausgekommen, aber ich
kann auch nicht mehr ohne Neo leben -- bzw. tippen.

Mit Qwertz kann ich nämlich -- entgegen der Theorie, dass man nach
kurzem Umdenken wieder dazu fähig sein soll -- _gar nicht_ mehr tippen.

Das mag aber auch damit zusammenhängen, dass ich vor Neo nie
10-Finger-Schreiben gelernt habe und bei Qwertz immer mein eigenes
System hatte. Jede Taste hatte zwar ihren eigenen Finger zugewiesen --
aber eben nicht die „richtigen“. Meine Handstellung ist nun aber an das
10-Finger-System gewöhnt, sodass nur noch Murks rauskommt, wenn ich
mich wieder an Qwertz versuche. Ich müsste also auch bei Qwertz
10-Finger-lernen, um umschalten zu können, aber wieso sollte ich?

Wenn ich z.B. an der Uni an ein Terminal gehe, starte ich kurz die
Xmodmap und schreibe dann Neo blind auf Qwertz. Für andere
Gelegenheiten hat man dann seinen Stick mit AHK dabei.

Nachdem meine damals beklebte Tastatur nun schon ziemlich abgenutzt
ist², bin ich „zurückgekehrt“, um mich mit neuen Aufklebern
einzudecken, die durch das Stable-Dasein von 2.0 ja dann auch so
bleiben können.

Ich werde weiterhin bei Neo2 bleiben und frühstens, wenn Neo3 eine
gewisse Stabilität erreicht haben wird, noch einmal darüber nachdenken,
ob ich dann nochmal wechseln soll.

Liebe Grüße,
Ace

¹ Ich finde leider meinen Beitrag nicht mehr, in dem ich verkündet
habe, nun umgestiegen zu sein.

² http://www.dahlmann.net/linked/neo_abgenutzt.jpg
-- 
()  ascii ribbon campaign - against html e-mail 
/\  www.asciiribbon.org   - against proprietary attachments

http://www.dahlmann.net/?Informatives/Gekonntes_E-Mailen


signature.asc
Description: PGP signature


[Neo] Erweiterte Dokumentation des Optimierers

2011-01-07 Diskussionsfäden Arne Babenhauserheide
Hi, 

Nachdem meine Diplomarbeit jetzt ist, habe ich mich mit Martin drangesetzt, 
die Dokumentation des Optimierers zu erweitern. 

Aktuell steht sie in der README, wenn sie jemand ins Wiki übernehmen will, 
würde ich mich darüber auch freuen :)
→ https://bitbucket.org/ArneBab/evolve-keyboard-layout/raw/tip/README

Sie enthält nun eine grundlegende Beschreibung aller (relevanten) Kriterien, 
der Optimierung und vieler zusätzlicher Möglichkeiten. Ich hoffe, sie bringt 
euch was! 

Liebe Grüße, 
Arne


Dokumentation
=

Ein Leitfaden zum Optimierer. Er soll die Fragen beantworten, die in der Liste 
(oder bei sonstigen Interessierten) aufkommen könnten. Praktisch gesehen also 
eure Fragen :)

(Schreibt mir einfach, was ihr gerne wissen würdet, ich versuche es dann zu 
beantworten. Und scheut euch nicht, mir konstruktiv reinzuschreiben – dafür 
ist das Pad hier da :))

0. Grundlagen
-

Das Programm hat zwei Hauptfunktionen:

1. Tastaturbelegungen bewerten
2. Tastaturbelegungen nach der Bewertung optimieren

Für die Bewertung nutzt es die Häufigkeiten von Buchstaben, Bigrammen und 
Trigrammen, entweder aus dem Leipziger Korpus oder aus einer beliebigen 
Textdatei.

1. Kostenberechnung
-

### 1.1. Buchstaben (1-Gramme)

1. Für die Buchstaben nutzt es eine nach Erfahrung generierte Liste mit 
Tastenaufwänden (Kosten):

COST_PER_KEY  = [
[50,40,35,30,30, 35,   40,35,30,30,30,35,40,50], # Zahlenreihe (0)
[24,20, 6, 4, 6, 9,10, 6, 4, 5, 8,24,36, 0], # Reihe 1
[5,  3, 3, 3, 3, 5, 5, 3, 3, 3, 3, 5,10,18], # Reihe 2
[15,10, 12,24,20, 5,30, 6, 5,22,22,10,  15], # Reihe 3
[0,0,0,   3, 7, 0, 0, 0] # Reihe 4 mit Leertaste
]

Für jeden Buchstaben wird seine Häufigkeit mit den Kosten der Taste, auf der er 
liegt, multipliziert. Alle Buchstabenkosten werden addiert, um die 
Positionskosten zu erhalten.

Dabei werden Buchstaben in höheren Ebenen (Großbuchstaben und z. B. δ oder ℝ) 
in Kleinbuchstaben und Modifikatoren aufgeteilt – bzw. in die Buchstaben auf 
Ebene 0 und alle für die Buchstaben nötigen Modifikatoren.

10× im Text vorkommendes „(“ wird also zu 10×M3 und 10×n.


2. Dazu kommen Kosten für ungleiche Belastung der Finger. Die Anzahl der 
Anschläge je Fingern soll im Verhältnis 1:1,6:2:2:2::2:2:2:1,6:1 (10 Finger: 4 
je Hand + Spreizung nach innen) sein, vom linken kleinen Finger zum 
Zeigefinger, linken Daumen, rechten Daumen und dann vom rechten Zeigefinger zum 
kleinen Finger. Muss ein Finger mehr oder weniger anschlagen, wird die 
jeweilige Abweichung quadriert (das ist etwas vereinfacht; im Detail: 
Standardabweichung). Alles addiert ergibt die Kosten durch Fingerdisbalance. 
Die Kosten werden mit 300 multipliziert.

3. Außerdem kommt ein Kostenfaktor durch ungleiche Handbelastung dazu. Die 
Abweichung von 50 % (0,5) wird mit der Anzahl Anschläge und mit 60 
multipliziert, um die Kosten zu erhalten.

3. Außerdem kommt ein Kostenfaktor durch ungleiche Handbelastung dazu. Die 
Abweichung von 50% (0,5) wird mit der Anzahl Anschläge und mit 60 
multipliziert, um die Kosten zu erhalten.

### 1.2. Bigramme

Die Kosten von Bigrammen werden über mehrere Kriterien festgelegt.


1. Fingerwiederholungen: Jede Fingerwiederholung (8 Finger: 4 je Hand) gibt 
512 Strafpunkte. Geht sie von der oberen in die untere Reihe oder umgekehrt 
gibt sie sogar 2048 Strafpunkte.


2. Zeilenwechsel: Für Zeilenwechsel auf der gleichen Hand gibt es Strafpunkte. 
Dabei wird Anzahl der Zeilen, die übersprungen werden quadriert, durch die 
Anzahl der Spalten geteilt, die zwischen den Tasten liegen und das Ergebnis 
nochmal quadriert. Liegen sie in der selben Spalte, gilt das als ¼-
Spaltenabstand.

Das Ergebnis wird mit 6 multipliziert.

Komplexität: Wenn der Zeilenwechsel nach oben geht und ein langer Finger auf 
einen kurzen Finger folgt, wird die Anzahl der Zeilen um 1 reduziert. Genauso, 
wenn der Zeilenwechsel nach unten geht und ein kurzer auf einen langen Finger 
folgt. Lange Finger sind Mittel- und Ringfinger. Kurze Finger sind Zeigefinger 
und kleiner Finger.

   Beispiel: In Neo liegt „f“ auf der obener Zeile und „r“ in der mittleren. 
Ein Wechsel von „f“ auf „r“ hat also einen Abstand von 1 Zeile. Quadriert ist 
das immernoch 1. Der Abstand in Spalten ist 1. 1 durch 1 ist immernoch 1. 
Quadriert immernoch 1. Multipliziert mit 6 ergibt das 6 Strafpunkte × 
Häufigkeit des Bigramms fr.
   Andererseits liegt „c“ auf der oberen Zeile und „ä“ auf der unteren. Der 
Abstand ist also 2, quadriert 4. Der Spaltenabstand ist 1. 4 durch 1 sind 
immernoch 4, quadriert 16. Multipliziert mit 6 ergibt 96 Strafpunkte × 
Häufigkeit des Bigramms „cä“, also etwa ⅕ der Kosten einer Fingerwiederholung.


3. Fingerübergänge: Bestimmte Übergänge von einem Finger auf den anderen 
sollen vermieden werden. Kleiner Finger auf Ringfinger gibt 3 Strafpunkte, auf 
Mittelfinger gibt 2. Ringfinger auf kleinen Finger gibt 4 Strafpunkte, auf 
Mittelfinger 

Re: [Neo] Eure Wünsche für den Optimierer

2011-01-07 Diskussionsfäden Arne Babenhauserheide
Hi Miche, 

On Thursday 06 January 2011 01:15:55 Arne Babenhauserheide wrote:
  • Linear:
alles über dem Schwellwert wird doppelt gezählt (rote Linie).
Diese Variante würde weniger Rechenaufwand erfordern.
  
  Was haltet ihr davon?
 
 Grundlegend finde ich es gut. Wir brauchen dafür allerdings eben die
 Schwellwerte, ab wann ein Kostenfaktor teurer werden soll. Die sollten wir
 allerdings bald definieren können.

Ich habe jetzt erstmal etwas in der Art für Fingerwiederholungen 
implementiert. 

Wenn es eine Fingerwiederholung bei einem Bigramm gibt, das über 0.1% der 
Tasteneinsätze ausmacht, dann wird der Teil, der über 0.1% liegt verfünffacht 
(und gerät dadurch in den Layout-SVGs schnell in den tiefgelben Bereich). Bei 
AdNW betrifft das z.B. das „ln“, bei dem, das ich aktuell teste betrifft es ln 
und rs: 

xzo., pcslvß´
haeiu dtrnmf
⇚kyäüö bgjqw   

(die Belegung nenne ich liebevoll pcslave – Abwandlung eines Namens von Effchen 
:) )

Der kritische Wert (0.1%) und der Multiplikator können in config.py angepasst 
werden. 

Eine weitere Anpassung ist, dass Fingerwiederholungen des Zeigefingers nur halb 
gewertet werden, weil die weniger weh tun. Wenn das für euch nicht so ist, 
sagt es bitte! Rückgängig gemacht ist schnell…

Liebe Grüße, 
Arne


signature.asc
Description: This is a digitally signed message part.


Re: [Neo] Eure Wünsche für den Optimierer

2011-01-07 Diskussionsfäden Arne Babenhauserheide
Moin Dennis, 

On Friday 07 January 2011 16:28:25 Dennis Heidsiek wrote:
 Mich würde interessieren, was der Optimierer für Resultate produziert,
 wenn man die Position der Mod-2-Tasten variabel macht. 

Das sollte recht einfach gehen: Einfach in der config.py
abc = abcdefghijklmnopqrstuvwxyzäöüß,.⇧⇗

Ich lasse das gerade durchlaufen :)

Interessanterweise wandern die shifts recht schnell nach innen ⇒ du bist 
vermutlich auf was gestoßen. 

Das erste Ergebnis ist das hier: 


yo,f. qvdpkx´
⇧aieu rnths⇗
⇚gäücö lmjbw
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──┐
│ ^ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ` │ ←│
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬┤
│   ⇥ │ y │ o │ , │ f │ . │ q │ v │ d │ p │ k │ x │ ´ │ Ret│
├─┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐   │
│⇩ │ ⇧ │ a │ i │ e │ u │ r │ n │ t │ h │ s │ ⇗ │ ⇘ │   │
├┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┤
│  z │ ⇚ │ g │ ä │ ü │ c │ ö │ l │ m │ j │ b │ w │ ß   │
├┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴─┬─┴──┬┴───┼┬┤
│Strg│ Fe │ Alt│  Leerzeichen  │ M4 │ Fe │ Me │Strg│
└┴┴┴───┴┴┴┴┘
# 0.931500854918 x100 total penalty per letter
# 0.0103089385914 x10 billion total penalty compared to notime-noeffort
# 4.86585639133 mean key position cost in file 1gramme.txt ( 0.05385053 )
# 2.23579993038 % finger repeats in file 2gramme.txt ( 0.012668733536 )


Die shifts sind also in Neo-Terminologie auf u und y gelandet, und z und ß 
wurden auf ihre Plätze verdrängt. 

Liebe Grüße, 
Arne