Modify

Erstellt vor 9 Jahren

Zuletzt geändert vor 3 Jahren

#46 assigned Aufgabe/TODO

Bugs melden

Erstellt von: Sepp <nix@…> Verantwortlicher: erik
Priorität: niedrig Meilenstein: Neo Version 2.0
Komponente: sonstiges Version: 2.0 BETA
Stichworte: externe Fehler, Fehler in Fremdprogrammen Beobachter:

Beschreibung (zuletzt geändert von martin_r)

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.

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

Swing (Java)

Siehe Ticket #129 und #104.

Anhänge (0)

Änderungshistorie (19)

comment:1 Geändert vor 9 Jahren durch erik

  • Beschreibung geändert (Diff)

comment:2 Geändert vor 9 Jahren durch erik

  • Beschreibung geändert (Diff)

comment:3 Geändert vor 9 Jahren durch erik

  • Beschreibung geändert (Diff)

comment:4 Geändert vor 9 Jahren durch erik

  • Beschreibung geändert (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 Geändert vor 9 Jahren durch erik

  • Beschreibung geändert (Diff)

comment:6 Geändert vor 9 Jahren durch erik

  • Beschreibung geändert (Diff)

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

comment:7 Geändert vor 9 Jahren durch erik

  • Beschreibung geändert (Diff)
  • Status von new nach assigned geändert
  • Verantwortlicher auf erik gesetzt

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

comment:8 Antwort: Geändert vor 9 Jahren durch 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.

comment:9 als Antwort auf: ↑ description ; Antwort: Geändert vor 9 Jahren durch erik

  • Beschreibung geändert (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.

comment:10 als Antwort auf: ↑ 8 Geändert vor 9 Jahren durch erik

  • Beschreibung geändert (Diff)
  • Meilenstein auf Neo Version 2.0 gesetzt

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.

comment:11 als Antwort auf: ↑ 9 ; Antwort: Geändert vor 9 Jahren durch erik

  • Beschreibung geändert (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 Geändert vor 9 Jahren durch erik

  • Beschreibung geändert (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.

comment:13 als Antwort auf: ↑ 11 Geändert vor 8 Jahren durch erik

  • Beschreibung geändert (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

comment:14 Geändert vor 8 Jahren durch erik

  • Beschreibung geändert (Diff)
  • Stichworte externe Fehler Fehler in Fremdprogrammen hinzugefügt

comment:15 Geändert vor 8 Jahren durch pascal

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

comment:16 Antwort: Geändert vor 8 Jahren durch 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.

comment:17 als Antwort auf: ↑ 16 Geändert vor 8 Jahren durch anonym

Replying to erik:

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.

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?

comment:18 Geändert vor 8 Jahren durch stephan

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

comment:19 Geändert vor 8 Jahren durch martin_r

  • Beschreibung geändert (Diff)

Kommentar hinzufügen

Ticket ändern

Eigenschaften ändern
<Autor-Feld>
Aktion
als assigned .
als Der Status der Lösung wird gesetzt. Der nächste Status wird 'closed' sein.
zu erik wird von der Verantwortlichkeit für das Ticket befreit. Der nächste Status wird 'new' sein.
Autor


E-Mail-Adresse und Benutzername können in den Einstellungen gespeichert werden.

 
Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.