Re: [Neo] Ordinal Zahlen mit hochgestellten st nd rd er ..

2011-03-31 Diskussionsfäden Florian Janßen
Wolf Belschner schrieb am 30.03.2011 um 20:56 Uhr:
 Am 30.03.2011 19:47, schrieb Florian Janßen:
 Ulrich Bär schrieb am 30.03.2011 um 17:34 Uh

 Also Neo kbdneo32 treiber mit AHK

 Windows kann kein Compose, die vorhanden Kombinationen sind alle direkt
 im Treiber hinterlegt. Es sollten alle mit dem Schema ♫AB=C und viele
 mit dem Schema ♫ABC=D funktionieren.

 Funktioniert bei mir ganz prima

Bestimmt nicht ^^

 ♫ + 3 + r + d = 3ʳᵈ
 
 1ˢᵗ 2ⁿᵈ 3ʳᵈ 4ᵗʰ

Das kann der neo-vars, aber das kann kein Windowstastaturtreiber.

Gruß Florian



signature.asc
Description: OpenPGP digital signature


Re: [Neo] Ordinal Zahlen mit hochgestellten st nd rd er ..

2011-03-31 Diskussionsfäden Wolf Belschner
Am 31.03.2011 10:30, schrieb Florian Janßen:

 Funktioniert bei mir ganz prima
 
 Bestimmt nicht ^^
 
 ♫ + 3 + r + d = 3ʳᵈ

 1ˢᵗ 2ⁿᵈ 3ʳᵈ 4ᵗʰ
 
 Das kann der neo-vars, aber das kann kein Windowstastaturtreiber.

Stimmt, da hab ich wohl den Kontext verpasst, sorry

Gruß
Wolf



[Neo] Zeichen in der 6ten Ebene nur einseitig erreichbar, Linux

2011-03-31 Diskussionsfäden Eric Wolf
Hallo!

Mir ist gerade was komisches aufgefallen.

Manche Zeichen der 6ten Ebene, zum Beispiel
Ω,×,Σ
kann ich nur einseitig erreichen, indem ich
mod3 und mod4 auf der rechten Seite der Tastatur
drücke.

Wenn ich die linksseitigen Tasten mod3 und mod4
nehme, dann kommt für die dritte Taste, zum Beispiel
w für Ω, nicht mal bei xev ein x-event 
an.

Ist jetzt der Treiber oder meine Tastatur im
Eimer? (Bevor ich einen Bug poste, wo keiner 
ist.)

mfg,

Eric



Re: [Neo] Zeichen in der 6ten Ebene nur einseitig erreichbar, Linux

2011-03-31 Diskussionsfäden Peter Eberhard

Hallo,

Am 01.04.2011, 00:26 Uhr, schrieb Eric Wolf e...@boese-wolf.eu:

Manche Zeichen der 6ten Ebene, zum Beispiel
Ω,×,Σ
kann ich nur einseitig erreichen, indem ich
mod3 und mod4 auf der rechten Seite der Tastatur
drücke.



Ist jetzt der Treiber oder meine Tastatur im
Eimer? (Bevor ich einen Bug poste, wo keiner
ist.)


Weder noch.

Die meisten Tastaturen (jedenfalls die billigen) können nicht beliebig  
viele Tastendrücke gleichzeitig erkennen; dazu müsste man für jede
Taste separate Schaltungen einbauen oder so (kenne mich mit den  
Einzelheiten nicht so aus). Maximal zwei Tastendrücke können garantiert  
erkannt werden, mehr nur bei bestimmten Tasten. Besondere Kombinationen  
werden, so habe ich mal irgendwo gelesen, separat behandelt (Strg+Shift  
z.B.). Neo nutzt aber Kombinationen, die normale Tastaturen nicht  
erkennen, eben diese mit Mod4l und Mod3r.


Das mag etwas unbequem sein, ist aber nicht zu ändern. Wenn du bei  
künftigen Tastaturkäufen das Problem ausschließen willst, achte auf  
“n-key-rollover”. Solche Tastaturen erkennen beliebig viele Tastendrücke  
gleichzeitig, sind aber wohl meistens teurer.


Gruß,
Peter



[Neo] remap für Linux: Problem mit der Interpretation der Mod-Werte.

2011-03-31 Diskussionsfäden Navid Zamani

Hallo, wie ihr euch vielleicht erinnert, wollte ich ein
Tasten-Zuordnungsscipt schreiben.
Nun, ich bin fast fertig. Aber es gibt ein Problem:

xev spuckt mir die Mod-Tasten-Zustände so aus:
0x80 → Mod3
0x20 → Mod4
…und folglich…
0xa0 → Mod3+Mod4

Das Problem ist nun, dass bei xmodmap die Mappings z.B. für „A“ (QWERTZ
„D“) so aussehen:
keycode  40 = a A d D braceleft Greek_alpha Down Down U2200 NoSymbol eth ETH
(Ich hab QWERTZ auch noch als Zweitlayout, wie man sehen kann.)

Also muss ich aus z.b. 0xa0 finden, welche „Spalte“ in der „keycode 
40“-Zeile ich ersetze…


Das scheint mir jetzt irgendwie kaum zu machen… (Ausser man könnte 
rausfinden, welche Spalte welchem Mod-Zustand zugeordnet wäre. Und 
0x80=Mod3 passt da irgendwie garnicht ins Konzept, da es laut „xmodmap 
-pm“ 0x20=Mod3 sein müsste… [Ja, hab extra nochmal nachgeschaut ob ich 
nix verwechselt hab.] Oder ist ISO_Level5_Shift mod4, obwohl daneben 
mod3 steht??)


Aaaber: NEO hat doch so schöne xmodmap- und andere Generierscripte.

Daher meine Frage: Wo fände ich in den Scripten ein Codeschnipsel, das 
mir hierbei behilflich wäre? Erinnert sich jemand an was, das mir das 
möglich machen würde?


Navid




Re: [Neo] Idee für die *schnelle* individuelle Belegung

2011-03-31 Diskussionsfäden Navid Zamani

Ok, ich habe doch tatsächlich einen Prototypen hinbasteln können!

Das Ding kann sich zwar die xmodmaps noch nicht dauerhaft merken, ist 
aber leicht gelöst und kommt beim nächsten Mal. Zudem gibt es noch ein 
paar Probleme:


• Laufende „xev“s werden gekillt.
• Tasten(kombinationen), die noch nicht zugeordnet sind, können nicht
  neu zugeordnet werden.
• Wenn sich /usr/include/X11/keysymdef.h woanders befindet, kann es den
  Namen der Taste nicht finden. Dann benutzt es einfach den
  Unicode-Code.
• Wenn für einen Tastencode mehrere Ebenen dem Zeichen zugeordnet sind,
  werden diese alle ersetzt.

Und um zu laufen, braucht es folgende Tools:
xclip, kcharselect, kdialog, xev, grep, cut, sed, xmodmap, bash.

Ansonsten läuft es aber ganz nett. Auch wenn die tatsächliche 
xmodmap-Ersetzung mir noch zu Spaghetti-Codeisch ist. ;) Das ist noch 
verbesserbar.


Ich weiss nicht wie ihr das hier mit Anhängen haltet, also hänge ich das 
Script einfach mal an. Viel Spaß beim ausprobieren! :)


Navid
#! /bin/bash

# BENÖTIGT: xclip, kcharselect, kdialog, xev, grep, cut, sed, xmodmap, bash. 
Und /usr/include/X11/keysymdef.h.

# Remap-Taste für NEO:
# 1. remap-taste drücken (eine obskure, wie rollen/pause/o.ä.) → öffnet 
unicode-tabelle mit zeichenauswahl
# 2. in unicode-tabelle zeichen auswählen, das gemappt werden soll → zeigt 
„bitte taste drücken“-meldung.
# 3. taste drücken die gemappt werden soll. (Erlaubt mod-tasten) → zeigt 
„Zeichen X auf Taste Y gemappt“-meldung.
# Optional: Ebenen-Mapping / Modus-Umschaltung.

# Ereignis: Remap-Taste gedrückt

# Vorbereiten
ZEICHEN= # Ausgewähltes Unicode-Zeichen
TASTE=   # Zeichencode der gedrückten Taste
MODS=# Mod-Tasten
echo -n  | xclip # Zwischenablage leegen

# Unicode-Tabelle mit Zeichenauswahl öffnen.
kcharselect 
CSPID=$!
kdialog --title remap --passivepopup Bitte strongein/strong Zeichen 
auswählen, und in die Zwischenablage kopieren. 5
# Auf kopieren des Zeichens warten, und in Variable speichern.
while [ $ZEICHEN ==  ]; do
  #qdbus org.kde.kcharselect-$CSPID /kcharselect/MainWindow_1/actions/copy_clip 
trigger
  sleep 0.25
  ZEICHEN=$( xclip -o )
done
# Zeichenauswahl schliessen.
kill $CSPID

# Tastendruck-Erkennung ausführen, und Taste in Variable speichern.
kdialog --title remap --passivepopup Bitte die Taste drücken, die dem 
Zeichen zugeordnet werden soll. 5
TASTE=$( xev | grep -A 2 --line-buffered KeyRelease | grep --line-buffered 
keycode | ( read TASTE; echo -n $TASTE; killall xev ) ) # ZU TUN: Nur das 
eigene xev beenden.
# Mods von Taste trennen.
MODS=$( echo $TASTE | cut -d ' ' -f 2 )
ALTES_ZEICHEN=$( echo $TASTE | cut -d ' ' -f 7 | sed 's/),//' ) # ZU TUN: 
Was wenn der Taste(nkombination) kein Zeichen zugeordnet ist?
TASTE=$( echo $TASTE | cut -d ' ' -f 4 )

# Taste mithilfe von xmodmap neu zuordnen.
kdialog --title remap --passivepopup Ordne Taste $TASTE mit Mod-Tasten $MODS 
dem Zeichen „$ZEICHEN“ zu.
ALTES_MAPPING=$(xmodmap -pke | grep keycode *$TASTE)
echo ALT: $ALTES_MAPPING
ZEICHEN=$(printf '%04X' '$ZEICHEN')
SYM=$( grep 0x$ZEICHEN /usr/include/X11/keysymdef.h | cut -d ' ' -f 2 | sed 
's/XK_//' ) # ZU TUN: Was, wenn sich die Datei woanders befindet? Oder ist sie 
immer da?
[ $SYM !=  ]  ZEICHEN=$SYM || ZEICHEN=U$ZEICHEN
# NEUES_MAPPING=$( echo $ALTES_MAPPING | ersetzeSpalte (modsZuSpalte $MODS)) 
$TASTE )
NEUES_MAPPING=$( echo $ALTES_MAPPING | sed s/$ALTES_ZEICHEN/$ZEICHEN/ ) # 
ZU TUN: Was wenn mehrere Positionen mit dem alten Zeichen belegt sind?
echo NEU: $NEUES_MAPPING
xmodmap -e $NEUES_MAPPING

# ZU TUN: Einstellung dauerhaft speichern? (Merkt sich xmodmap was?)
kdialog --title remap --error Die dauerhafte Speicherung der Zuordnung ist 
noch nicht implementiert. Zudem gibt es ein paar weitere Probleme.

# Fertig.