Ticket #46 (assigned Aufgabe/TODO)

Opened 5 years ago

Last modified 4 years ago

Bugs melden

Reported by: Sepp <nix@…> Owned by: erik
Priority: niedrig Milestone: Neo Version 2.0
Component: sonstiges Version: 2.0 BETA
Keywords: externe Fehler, Fehler in Fremdprogrammen Cc:

Description (last modified by martin_r) (diff)

Es sind an mehrere Projekte Bugs zu melden:

X.org (1)

Behandelt in der Mail: Re: [neo] an die Linuxer: Treiber fertig machen für Xorg vom: 04.07.2008 22:37

Kurz

Wenn in der Xmodmap oder der Xkbmap unter Linux für eine Taste implies angegeben wird, sollte eigentlich laut /usr/include/X11/keysymdef.h das im Kommentar erwähnte Zeichen erscheinen:

⇒ (U+21D2 RIGHTWARDS DOUBLE ARROW)

Es erscheint jedoch das hier: ⊢ (U+22A2 RIGHT TACK)

Kommentare und Ergänzungen

Ist Euch übrigens schon aufgefallen, dass in den offiziellen Unicodetabellen beim Zeichen ⊢ als Kommentar steht:

Aliasnamen:

• turnstile • proves, implies, yields x • reducible

Also auch implies! Bei diesem Zeichen aber nicht „⇒“. Ha. Da hat sicher einer der Programmierer geschlampt.

Wo melden wir das? X-Bug, oder?

Hier die Zeile aus der /usr/include/X11/keysymdef.h:

#define XK_implies                       0x08ce  /* U+21D2 RIGHTWARDS DOUBLE ARROW */

Aber was bedeutet der Code 0x08ce? Ich kann den nirgends finden. Ganz oben in der Einführung der Datei /usr/include/X11/keysymdef.h wird ja noch die Datei xc/lib/X11/KeyBind.c erwähnt. Vielleicht ist da ersichtlich, dass es wirklich falsch ist.

So, ich teste das mal: export GTK_IM_MODULE=xim && gucharmap

Tatsächlich, wenn ich nun versuche den Pfeil ⇒ einzugeben, erscheint dieses komische andere Zeichen. Also ist es wirklich falsch in der /usr/include/X11/keysymdef.h (oder deren Abhängigkeiten) definiert. Da haben die Gnome das mal richtig gemacht, was die Xer falsch gemacht haben (denn unter Gnome erscheint normalerweise immer der richtige ⇒).

X.org (2)

in der Datei /usr/include/X11/keysymdef.h sind uptack und downtack vertauscht!

X.org (3)

Abkürzungen (Greek_SIGMA usw.) für griechische Großbuchstaben funktionieren nicht in xmodmap und xkbmap

Siehe Mail: Re: [neo_layout] an Pascal: Zeichenkürzel ←→ Unicodeabkürzungen vom: 02.04.2008 12:42

und Mail: Re: [neo] an die Linuxer: Treiber fertig machen für Xorg vom: 01.07.2008 16:39

Fehlerbeschreibung

Geht nicht wenn

Griechischen Großbuchstaben erscheinen bei der Eingabe nicht, wenn man sie in der Xmodmap bzw. Xkbmap als Abkürzungen (Greek_SIGMA usw.) angibt, wie sie in der Datei /usr/include/X11/keysymdef.h stehen. Und zwar weder unter KDE noch unter Gnome.

Geht schon wenn

Nur wenn man die Unicodezeichen als UTF16-Kürzel angibt (z.B. U03A3 für Greek_SIGMA), erscheinen sie bei der Eingabe auch.

Hinweise

Der Fehler tritt auf, seitdem die 6. Ebene per Mod3+Mod4 erreicht wird. Vorher, mit Umschalt+Mod4, funktionierte es ohne Probleme.

Vorläufige Lösung

UTF16-Kürzel verwenden und als Kommentar das Zeichen angeben, für welches das UTF16-Kürzel steht.

Nachteil

Fehleranfällig, weil zwei voneinander unabhängige Angaben.

X.org (4)

Manche Buchstaben gehen nicht in den Anwendungen xterm, xfig, xpdf, xedit usw.

Diskutiert wurde dies schon in diversen Mails. Zum Beispiel in der

Mail: Re: [neo] KP_Workaround ist ungeschickt vom: 28.06.2008 16:05

und in der

Mail: Re: [neo] Steuerung von Programmen mit der NEO (Beispiel: mplayer) vom: 04.07.2008 23:32.

Fehlerbeschreibung

xmodmap

1. Man muss vor xmodmap neo_de.xmodmap immer setxkbmap ie ausfühern, sonst geht folgendes nicht:

  1. die 4 auf der 4. Ebene

2. bei der alten xmodmap (ohne KP-Hack)

  1. W, Ä und » gehen nicht unter xterm und Konsorten (stattdessen Einfg usw.)
  2. fast kein Buchstabe der linken Tastaturhälfte funktioniert unter xedit, xfig und ähnlichen Programmen

3. bei der neuen xmodmap (mit KP-Hack)

  1. gehen die Bewegungstasten auf der 4. Ebene nicht mehr (in keinem Programm), wenn Numlock aktiviert ist (betrifft nur Thinkpads (oder?))

4. nicht alle Probleme können durch den KP-Hack gelöst werden:

  1. bei xpdf: ö geht nicht (stattdessen Tab), Ö macht rücktab
  2. bei xedit: v geht nicht (stattdessen Backspace), ebenso V

X.org (5)

Wenn man den PC mit anderen Teil, die QWERTZ tippen, ist ein Umschalten mittels Umschalt+Umschalt (Shift+Shift) recht praktisch. Jedoch:

xkbmap

1. Wenn man es so lädt

        Option      "XkbLayout" "de,de"
        Option      "XkbVariant" "basic,neo"
        Option      "XkbOptions" "grp:shifts_toggle,grp_led:scroll" # ctrls_toggle und alts_toggle ist in Xorg kaputt, siehe Bug 4927

dann gehen nur die ersten 4 Ebenen in Neo (nachdem man mit Strg+Strg von QWERTZ zu Neo gewechselt hat). Wenn man es jedoch umgekehrt einträgt "XkbVariant" "neo,basic" dann geht alles.

2. Mit setxkbmap de neo funktioniert immer alles. Man kann danach aber nicht mehr mit Strg+Strg zurückschalten. Murks.

Gnome/GTK (1)

Im gnome-terminal kann man normalerweise mit Strg++ und Strg+- (also Strg und + bzw. - gleichzeitig gedrückt) das Fenster vergrößern und verkleinern. Funktioniert aber mit Neo 2 (12. Okt. 2008, xkbmap) nicht!

In Firefox (auch GTK-Programm, oder?) geht es.

Siehe außerdem Fehler in gedit (wahrscheinlich gleiches Problem), siehe Ticket #89.

Swing (Java)

Siehe Ticket #129 und #104.

Attachments

Change History

  Changed 5 years ago by erik

  • description modified (diff)

  Changed 5 years ago by erik

  • description modified (diff)

  Changed 5 years ago by erik

  • description modified (diff)

  Changed 5 years ago by erik

  • description modified (diff)

Zur Ernüchterung:  Diese Präsentation, in der erklärt wird, dass der xkeyboard-config-Code totaler Murks ist, und eigentlich keiner durchblickt. Vielleicht können manche Fehler trotzdem behoben werden.

Wichtige Adressen für die Behebung der Fehler

  Changed 5 years ago by erik

  • description modified (diff)

  Changed 5 years ago by erik

  • description modified (diff)

Für die Fehler X.org (1) und X.org (2) gibt es  hier die aktuelle  keysymdef.h.

  Changed 5 years ago by erik

  • owner set to erik
  • status changed from new to assigned
  • description modified (diff)

X.org (2) wurde gemeldet und behoben. Siehe  http://cgit.freedesktop.org/xorg/proto/xproto/log/ am 14. Oktober 2008.

follow-up: ↓ 10   Changed 5 years ago by pascal

X.org (3) wurde gelöst. Die Zeichen werden immer in Gruppen zu zwei angeordnet. Ist eine Gruppe nur halb definiert (also ein statt zwei Einträgen), wird der entsprechende Kleinbuchstabe genommen.

Beispiel: keycode 24 = A Diese Zeile erzeugt ein kleines(!) a und mit Shift ein großes, obwohl es so gar nicht definiert ist. Aber: keycode 24 = A x Mit dieser voll definierten Gruppe werden die Zeichen genauso erzeugt wie sie definiert sind.

Unser Problem: Die vierte Gruppe war halb definiert und hat darum einen Kleinbuchstaben erzeugt. Es muss also irgend etwas (nicht NoSymbol!) dort stehen, um die Gruppe zu füllen. Dann funktioniert alles.

in reply to: ↑ description ; follow-up: ↓ 11   Changed 5 years ago by erik

  • description modified (diff)

Replying to Sepp <nix@da>:

= X.org (1) = == Kurz == Wenn in der Xmodmap oder der Xkbmap unter Linux für eine Taste implies angegeben wird, sollte eigentlich laut /usr/include/X11/keysymdef.h das im Kommentar erwähnte Zeichen erscheinen: ⇒ (U+21D2 RIGHTWARDS DOUBLE ARROW) Es erscheint jedoch das hier: ⊢ (U+22A2 RIGHT TACK) Hier die Zeile aus der /usr/include/X11/keysymdef.h: {{{ #define XK_implies 0x08ce /* U+21D2 RIGHTWARDS DOUBLE ARROW */ }}} Aber was bedeutet der Code 0x08ce? Ich kann den nirgends finden.

Habe die Datei gefunden, wo die Keysyms in Unicode-Zeichen gewandelt werden (als Konstanten definiert). Und zwar in der Datei  src/xlibi18n/imKStoUCS.c. In Zeile 123 steht tatsächlich das falsche Zeichen für 0x08ce (vorletztes in der Zeile), nämlich 0x22a2 statt 0x21d2.

Testen kann ich es allerdings nicht, weil ich nicht geübt im Kompilieren von X.org bin.

in reply to: ↑ 8   Changed 5 years ago by erik

  • description modified (diff)
  • milestone set to Neo Version 2.0

Replying to pascal:

X.org (3) wurde gelöst. Die Zeichen werden immer in Gruppen zu zwei angeordnet. Ist eine Gruppe nur halb definiert (also ein statt zwei Einträgen), wird der entsprechende Kleinbuchstabe genommen.

Ich habe die Datei gefunden, in der Definiert wird, bei welchen Zeichen genau das passiert. Es ist die Datei  KeyBind.c ab Zeile 306 bis Zeile 644.

Ich schätze, das sind auch die Zeichen, die mit Capslock verändert werden. Gut zu wissen, wie ich finde.

in reply to: ↑ 9 ; follow-up: ↓ 13   Changed 5 years ago by erik

  • description modified (diff)

Replying to erik:

Replying to Sepp <nix@da>:

= X.org (1) = == Kurz == Wenn in der Xmodmap oder der Xkbmap unter Linux für eine Taste implies angegeben wird, sollte eigentlich laut /usr/include/X11/keysymdef.h das im Kommentar erwähnte Zeichen erscheinen: ⇒ (U+21D2 RIGHTWARDS DOUBLE ARROW) Es erscheint jedoch das hier: ⊢ (U+22A2 RIGHT TACK) Hier die Zeile aus der /usr/include/X11/keysymdef.h: {{{ #define XK_implies 0x08ce /* U+21D2 RIGHTWARDS DOUBLE ARROW */ }}} Aber was bedeutet der Code 0x08ce? Ich kann den nirgends finden.

Habe die Datei gefunden, wo die Keysyms in Unicode-Zeichen gewandelt werden (als Konstanten definiert). Und zwar in der Datei  src/xlibi18n/imKStoUCS.c. In Zeile 123 steht tatsächlich das falsche Zeichen für 0x08ce (vorletztes in der Zeile), nämlich 0x22a2 statt 0x21d2. Testen kann ich es allerdings nicht, weil ich nicht geübt im Kompilieren von X.org bin.

Bernd Steinhauser hat es getestet. Es funktioniert! Habe es gestern an Peter Hutterer von Red Hat gemeldet. Hoffentlich lädt er den Patch bald hoch (dann wäre X.org 7.5 befreit von dem Fehler).

  Changed 5 years ago by erik

  • description modified (diff)

Fehler in Xorg verhindert weitere Verwendung von alts_toggle und ctrls_toggle (Fehler gefunden, aber erfordert ein Neuschreiben von xkbcomp → keiner hat Bock drauf (seit 2005!)

Siehe Bugreport:  http://bugs.freedesktop.org/show_bug.cgi?id=4927 und kleine Beschreibung des Fehlers:  http://bbs.archlinux.org/viewtopic.php?id=50353

Novells/Suses Lösung: Ignorienen und einfach nicht mehr anbieten! Naja…  https://bugzilla.novell.com/show_bug.cgi?id=373197

Daher diese Änderung in der Beschreibung.

in reply to: ↑ 11   Changed 4 years ago by erik

  • description modified (diff)

Replying to erik:

Replying to erik:

Replying to Sepp <nix@da>:

= X.org (1) = == Kurz == Wenn in der Xmodmap oder der Xkbmap unter Linux für eine Taste implies angegeben wird, sollte eigentlich laut /usr/include/X11/keysymdef.h das im Kommentar erwähnte Zeichen erscheinen: ⇒ (U+21D2 RIGHTWARDS DOUBLE ARROW) Es erscheint jedoch das hier: ⊢ (U+22A2 RIGHT TACK) Hier die Zeile aus der /usr/include/X11/keysymdef.h: {{{ #define XK_implies 0x08ce /* U+21D2 RIGHTWARDS DOUBLE ARROW */ }}} Aber was bedeutet der Code 0x08ce? Ich kann den nirgends finden.

Habe die Datei gefunden, wo die Keysyms in Unicode-Zeichen gewandelt werden (als Konstanten definiert). Und zwar in der Datei  src/xlibi18n/imKStoUCS.c. In Zeile 123 steht tatsächlich das falsche Zeichen für 0x08ce (vorletztes in der Zeile), nämlich 0x22a2 statt 0x21d2. Testen kann ich es allerdings nicht, weil ich nicht geübt im Kompilieren von X.org bin.

Bernd Steinhauser hat es getestet. Es funktioniert! Habe es gestern an Peter Hutterer von Red Hat gemeldet. Hoffentlich lädt er den Patch bald hoch (dann wäre X.org 7.5 befreit von dem Fehler).

¡Endlich Fehler Xorg(1) behoben!

Hier:  http://cgit.freedesktop.org/xorg/lib/libX11/commit/?id=091c1624fd2f9d933329d6152e4ecd865aa7903a

  Changed 4 years ago by erik

  • keywords externe Fehler, Fehler in Fremdprogrammen added
  • description modified (diff)

  Changed 4 years ago by pascal

Den Fehler „X.org (3)“ habe ich vor über 3 Monaten behoben. Vorschlag: Ticket (vielleicht auch in Teilen) wieder neu anlegen.

follow-up: ↓ 17   Changed 4 years ago by erik

Auch der Fehler, der oben als  X.org (5) bezeichnet wird ist mit r1803 endlich behoben. Als Nicht-Allein-Nutzer meines PC-Systems hat das den Vorteil, dass ich weder auf Ebene 4 verzichten muss, noch die anderen Nutzer mit Neo plagen muss (weil das Wechseln ja mit Umschalt+Umschalt (hier in der Fehlerbeschreibung und bei mir zu Hause) oder Scroll-Lock (siehe offizielle Anleitung) ganz einfach ist).

Somit bleiben noch ungelöst:

welche vielleicht tatsächlich in eigene Tickets verschoben werden sollten, sofern sie nicht noch ganz schnell und einfach gelöst werden können, um dieses Ticket hier endlich schließen zu können.

in reply to: ↑ 16   Changed 4 years ago by anonymous

Replying to erik:

Somit bleiben noch ungelöst: * X.org (4) und * Gnome/GTK (1), welche vielleicht tatsächlich in eigene Tickets verschoben werden sollten, sofern sie nicht noch ganz schnell und einfach gelöst werden können, um dieses Ticket hier endlich schließen zu können.

So, der Fehler „X.org (4)“ ist auch zufriedenstellend gelöst. Mit einem FAQ-Eintrag, der auf Andreas’ ausführliche Anleitung verweist.

Wer löst das Gnome/GTK (1)-Problem?

  Changed 4 years ago by stephan

Könnte hier jemand das Java-Swing-Problem, wie es in #129 und #104 beschrieben wird, hinzufügen?

  Changed 4 years ago by martin_r

  • description modified (diff)

Add/Change #46 (Bugs melden)

Author


E-mail address and user name can be saved in the Preferences.


Change Properties
<Author field>
Action
as assigned
as The resolution will be set. Next status will be 'closed'
to The owner will change from erik. Next status will be 'new'
 
Note: See TracTickets for help on using tickets.