Opened 16 years ago

Last modified 10 years ago

#46 assigned Aufgabe/TODO

Bugs melden — at Version 12

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

Description (last modified by Erik Streb del Toro)

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
  1. 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
  1. 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?))
  1. 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.

  1. 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.

Change History (12)

comment:1 by Erik Streb del Toro, 16 years ago

Description: modified (diff)

comment:2 by Erik Streb del Toro, 16 years ago

Description: modified (diff)

comment:3 by Erik Streb del Toro, 16 years ago

Description: modified (diff)

comment:4 by Erik Streb del Toro, 16 years ago

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

comment:5 by Erik Streb del Toro, 16 years ago

Description: modified (diff)

comment:6 by Erik Streb del Toro, 16 years ago

Description: modified (diff)

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

comment:7 by Erik Streb del Toro, 16 years ago

Description: modified (diff)
Owner: set to Erik Streb del Toro
Status: newassigned

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

comment:8 by pascal, 16 years ago

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 ; comment:9 by Erik Streb del Toro, 16 years ago

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 comment:10 by Erik Streb del Toro, 16 years ago

Description: modified (diff)
Milestone: 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 comment:11 by Erik Streb del Toro, 16 years ago

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).

comment:12 by Erik Streb del Toro, 16 years ago

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.

Note: See TracTickets for help on using tickets.