Opened 17 years ago

Last modified 17 years ago

#135 closed Fehler/Defekt

Mit der neuen Version der xkbmap funktioniert ein Großteil der linken Hälfte der vierten Ebene nicht mehr — at Version 24

Reported by: Annika Roppelt Owned by: Erik Streb del Toro
Priority: normal Milestone: Neo Version 2.0
Component: Treiber: Linux – Xkbmap Version: 2.0 BETA
Keywords: Cc: muflax@…

Description (last modified by Annika Roppelt)

Außer Backspace, Tab und Enter funktioniert bei mir keine Taste der linken vierten Ebene mehr. Betriebssystem: Arch Linux, KDE

Change History (24)

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

Gleicher Fehler wie #33 Kommentar 57?

Bei mir funktioniert noch alles. Unter Window Maker und Gnome.

Versionen des X-Servers? KDE?

comment:2 by muflax@…, 17 years ago

Cc: muflax@… added

Ich nutze auch Arch Linux und das sieht nach dem selben Fehler aus. Jetzt wo ich's sehe, scheint es wirklich nur die linke Hälfte zu betreffen. Hatte das nicht gemerkt, da ich die rechte fast nicht nutze. Ich nutze als WM awesome und wmii, aber das Problem ist davon höchstwahrscheinlich unabhängig. Es betrifft wie gesagt nur QT-Apps, also wohl auch KDE. Meine Programmversionen hatte ich in #33 gepostet. X.org ist 1.6.1.

comment:3 by stephan, 17 years ago

Was sagt denn 'xev' oder ein ähnliches Tool bei den nicht funktionierenden Tasten?

Kann das Problem unter Ubuntu mit X.org 1.6.0 nicht nachvollziehen.

comment:4 by muflax@…, 17 years ago

xev-Output für "a", "A" und "mod4-a (down)", nacheinander: http://pastebin.com/m4ed6f812

Ich hab grade was probiert und das Problem für mich behoben. Ich hatte eine (unwirksame) policy unter /etc/hal/fdi/policy/10-keymap.fdi. Da martin_r auch Arch-User ist, wird er die vermutlich auch angelegt haben. Nachdem ich sie entfernt habe, also insbesondere nicht mehr

<merge key="input.xkb.layout" type="string">neo2</merge>
<merge key="input.xkb.variant" type="string">neo</merge>

definiere (ich benenne X/de in neo2 um), geht es korrekt in QT, warum auch immer. Das war sowieso verbuggt und ich nutze stattdessen setxkbmap in meiner .xinitrc.

comment:5 by muflax@…, 17 years ago

Args, sorry, hab Mist gebaut. Grade gemerkt, dass ich ja die falsche Version des Layouts zum Testen genommen habe. Die Änderung bringt also nichts.

Ich wüsste also nicht mehr, wo Ubuntu sich jetzt in der Config unterscheiden könnte, außer in eventl. älteren Paketen.

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

Owner: set to Erik Streb del Toro

Gibt es eine Besserung mit r1824?

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

Oh, auch bei mir gibt es mit KDE-Applikationen die gleichen Fehler. Ich nutze Fedora 10 und Window Maker. Bei GTK-Apps (und selbst bei xterm) gibt es die obigen Fehler der Ebene 4 nicht, daher ist mit das bisher nicht aufgefallen.

Allerdings funktioniert bei mir nur Tab und die Zahlen (Ziffernblock) auf Ebene 4. Bild↑ oder Bild↓, Ende, Pos1, Cursor ←↓→↑, Rück und Entf funktionieren nicht. Enter auch nicht.

comment:8 by stephan, 17 years ago

Ich kann das Problem nun auch bei mir nachvollziehen. Scheinbar weigert sich KDE bestimmte Tasten zu interpretieren, wenn der vMod 'LevelThree' gesetzt ist.

Wenn Ebene4 (nach leichter Modifikation an den Types) durch den vMod 'LevelFive' aufgerufen wird, klappt es. Der Fehler ist aufgetaucht, als wir xkb-intern die Levels vertauscht haben (r1803), um #33 zu "umgehen".

Wenn es nach mir ginge, würde ich diesen Tausch wieder rückgängig machen, da #33 (eigentlich ein Gnome-Bug) weniger schwerwiegend ist, da es sich einfach durch die systemweite Installation beheben lässt.

(Obwohl dies hier wohl auch nur ein Qt/KDE-Bug ist ...)

comment:9 by Christian P., 17 years ago

In dem Programm „Konsole“ lässt sich das Problem zumindest umgehen und zwar wiefolgt: unter „Einstellungen/Profile“ verwalten das benutzte Profil auswählen und Profil bearbeiten … anklicken, dort unter der Registerkarte „Eingabe“ statt „Standard (XFree 4)“ „Linux-Konsole“ auswählen und mit „OK“ übernehmen.

comment:10 by muflax@…, 17 years ago

Die neue Version (r1829) hat es noch schlimmer gemacht. Jetzt geht gar nichts außer Mod1 und Mod2 mehr. Da ich keine xmodmap nutze und mir Gnome egal ist, bin ich dafür Stephan's Änderung rückgängig zu machen. (Oder wenigstens einen der beiden Bugs zu fixen, je nachdem, was leichter ist. ;))

comment:11 by stephan, 17 years ago

Das hört sich sehr danach an, als hättest du die zweite Datei 'types/level5' vergessen. Bitte nochmal überprüfen.

comment:12 by muflax@…, 17 years ago

Ah, hab die in r1824 beschriebenen Änderungen mal komplett gemacht. Dann geht zwar Mod3 & Co. wieder, aber es behebt den QT-Bug nicht. (Sorry, ich sollte echt mehr probieren, bevor ich hier schreibe... )

comment:13 by Erik Streb del Toro, 17 years ago

noch ein anderer fehler: Wie Ihr seht kann ich nur mit der rechten Umschalt-taste groß schreiben. die rechte bewirkt kein umschalten auf großschreibung. Auch Capslock geht nicht mehr.

Wie habe ich das geschafft? de/basic als standardbelegung, de/neo als zweitbelegung. das kann man entweder in gnome bei den tastatureinstellungen einstellen (siehe beispiele) oder ganz wie früher üblich per xorg.conf oder hal (siehe Anleitung für die xkbmap).

damit ist wieder fehler 46#X.org5 aktiv, nur in anderer form. :-(

in reply to:  13 ; comment:14 by stephan, 17 years ago

Replying to erik:

damit ist wieder fehler 46#X.org5 aktiv, nur in anderer form. :-(

Hmm, das Layout wird wohl nicht ganz vollständig gewechselt. Wird das Layout mit "setxkbmap" gewechselt, klappt es einwandfrei.

Ich wüsst aber wirklich nicht, wie man sich daran anpassen könnte, ohne wiederrum andere Bugs wiederzubeleben.

in reply to:  14 comment:15 by anonymous, 17 years ago

Replying to stephan:

Replying to erik:

damit ist wieder fehler 46#X.org5 aktiv, nur in anderer form. :-(

Hmm, das Layout wird wohl nicht ganz vollständig gewechselt. Wird das Layout mit "setxkbmap" gewechselt, klappt es einwandfrei.

Ja, aber viel komfortabler ist es eben über ’ne Tastenkombination oder per klick. Und es ist ja so vorgesehen.

Ich wüsst aber wirklich nicht, wie man sich daran anpassen könnte, ohne wiederrum andere Bugs wiederzubeleben.

Wahrscheinlich ist der Fehler sogar in Xorg. Also sollten wir den melden. Am Besten wäre dazu ein Minimalbeispiel, wo der Fehler auch schon auftritt. Reicht es, die Shift-Tasten neu zu belegen? Oder woran liegt es?

Dann wäre nur noch heraus zu finden, ob der KDE-Fehler ein KDE-Problem ist, oder QT generell schuld ist oder doch X.org oder sogar Neo? Jedenfalls haben wir dafür bis morgen Zeit. :-) Dann wird der Stand für X.org 1.6 eingefroren. Siehe Roadmap.

comment:16 by anonymous, 17 years ago

Intern bekommt man mit einer Kombination Nicht-Neo/Neo folgendes:

    key <LFSH> {
        type[group2]= "TWO_LEVEL",
        symbols[Group1]= [         Shift_L ],
        actions[Group1]= [ NoAction() ],
        symbols[Group2]= [         Shift_L,       Caps_Lock ],
        actions[Group2]= [ SetMods(modifiers=Shift), LockMods(modifiers=Lock) ]
    };

Das NoAction() führt dazu, dass das Shift wirkungslos bleibt.

Abhilfe könnte es bringen, die Umschalttasten aus xkb_symbols "neo" herauszunehmen und in einer gesonderten Tabelle (vielleicht in symbols/shift) zu implementieren. Dann kann man die Umschalttasten im Neo-Stil als Option für alle Belegungen verfügbar machen. Ich bezweifle aber, dass es dazu bis morgen reicht.

comment:17 by knittl, 17 years ago

r1831 macht bei mir mehr probleme, als sie löst.

ebene 4 geht in gar keinen programmen mehr, stattdessen erscheint ebene 1

aber sonst: gute arbeit soweit!

comment:18 by wettstein509@…, 17 years ago

In Zeile 284 von de «NumLock» durch «LevelFive» ersetzen sollte Ebene 4 wieder erreichbar machen.

in reply to:  18 ; comment:19 by muflax@…, 17 years ago

Replying to wettstein509@solnet.ch:

In Zeile 284 von de «NumLock» durch «LevelFive» ersetzen sollte Ebene 4 wieder erreichbar machen.

Tut es. QT scheint jetzt auch korrekt zu funktionieren.

in reply to:  19 comment:20 by Christian P., 17 years ago

Replying to muflax@gmail.com:

Replying to wettstein509@solnet.ch:

In Zeile 284 von de «NumLock» durch «LevelFive» ersetzen sollte Ebene 4 wieder erreichbar machen.

Tut es. QT scheint jetzt auch korrekt zu funktionieren.

Dem kann ich nur zustimmen.

in reply to:  16 comment:21 by Erik Streb del Toro, 17 years ago

Replying to anonymous:

Abhilfe könnte es bringen, die Umschalttasten aus xkb_symbols "neo" herauszunehmen und in einer gesonderten Tabelle (vielleicht in symbols/shift) zu implementieren. Dann kann man die Umschalttasten im Neo-Stil als Option für alle Belegungen verfügbar machen. Ich bezweifle aber, dass es dazu bis morgen reicht.

Wäre es möglich dies mal testweise zu implementieren, denn so wie jetzt ist Neo mit keiner anderen Belegung kompatibel, wenn man eine andere Belegung als Erstbelegung wählt und Neo als die zweite.

comment:22 by wettstein509@…, 17 years ago

Die Methode mit Auslagern von Shift funktioniert.

  • In xkb/symbols/shift ergänze:
    partial modifier_keys
    xkb_symbols "lshift_both_capslock" {
      key <LFSH> {
        type[Group1]="TWO_LEVEL",
        symbols[Group1] = [ Shift_L,                       Caps_Lock                ],
        actions[Group1] = [ SetMods(modifiers=Shift),      LockMods(modifiers=Lock) ]
      };
    };
    
    partial modifier_keys
    xkb_symbols "rshift_both_capslock" {
      key <RTSH> {
        type[Group1]="TWO_LEVEL",
        symbols[Group1] = [ Shift_R,                       Caps_Lock                ],
        actions[Group1] = [ SetMods(modifiers=Shift),      LockMods(modifiers=Lock) ]
      };
    };
    partial modifier_keys
    xkb_symbols "both_capslock" {
      include "shift(lshift_both_capslock)"
      include "shift(rshift_both_capslock)"
    };
    
  • Nimm die entsprechenden Belegungen aus de heraus
  • In rules/xorg ergänze eine Zeile unter
    ! option        =       symbols
    

nämlich:

  shift:both_capslock   =       +shift(both_capslock) 
  • Benutze XkbOption shift:both_capslock. In xorg.conf habe ich z.B. ausprobiert:
            Option      "XkbLayout"  "us,de"
            Option      "XkbVariant" "intl,neo"
            Option      "XkbOptions" "shift:both_capslock,grp:ctrls_toggle"
    

Damit funktioniert Shift auch im US-Layout, inklusive dem allseits beliebten Neo-CapsLock.

comment:23 by Erik Streb del Toro, 17 years ago

Nur um nochmal den aktuellen Stand festzuhalten:

  • Bei Version r1803 gibt es zwar nur Shift-Lock (statt Caps-Lock) und dieses lässt sich auch nur durch Drücken einer Shift-Taste deaktivieren, aber dafür funktioniert das Umschalten zwischen zwei Belegungen (zum Beispiel QWERTZ und Neo) ohne Probleme:
    setxkbmap -layout "de,de" -variant "basic,neo" -option "grp:alt_shift_toggle,grp_led:scroll" -model pc105
    
    (Alt + Umschalt zum Wechseln zwischen QWERTZ (= basic) und Neo, leuchtende Rollen-LED zeigt Neo an)
  • Mit der aktuellen Version r1834 lässt sich zwar in KDE-Programmen auch auf Ebene 4 alles verwenden, aber Caps-Lock funktioniert gar nicht mehr. Mod4-Lock schon. Und Umschalten (wie oben angegeben) kann man auch nicht mehr: Es passiert einfach nichts, wenn man Alt+Umschalt drückt.
  • Die in 135#comment:22 genannten Änderungen bewirken mit
    setxkbmap -layout "de,de" -variant "basic,neo" -option "shift:both_capslock,grp:alt_shift_toggle,grp_led:scroll" -model pc105
    
    leider nur, dass die 3. Ebene (deshalb auch die 6.) nicht mehr funktioniert. Und bei KDE-Programmen auch wieder die Bewegungstasten der 4. Ebene nicht (sonst schon!). Vielleicht muss ich X erst neu starten bzw. ein zweites X starten um es dort zu probieren? Also mit Strg+Alt+F3 auf eine Textkonsole gewechselt und dort angemeldet. Dann mit
    startx -- :1
    
    einen zweiten X-Server gestartet. Oh! Dabei fällt mir auf, dass es Fehler mit der symbols/de zu geben scheint (mir wird dort unter Gnome ein Fehler angezeigt, dass symbols/de nicht geladen werden kann). Daher kann ich dort nicht weiter testen.

Was mir auch noch aufgefallen ist: Mit r1834 kann ich auch nicht mehr mit Strg+Alt+F3 auf eine Textkonsole wechseln. Die de-Datei scheint also wirklich defekt zu sein. Werde gleich mal wieder auf eine etwas ältere Version wechseln.

Auch mit r1830 ist es nicht besser. Komisch. Na jedenfalls geht das Umschalten auf ’ne Textkonsole (tty) mit Strg+Alt+F3 mit r1803 noch.

Oder liegt das alles jetzt nur an meinem System?

in reply to:  23 comment:24 by Annika Roppelt, 17 years ago

Description: modified (diff)

Replying to erik:

Mit der aktuellen Version r1834 lässt sich zwar in KDE-Programmen auch auf Ebene 4 alles verwenden, aber Caps-Lock funktioniert gar nicht mehr.

Bei mir schon: ShiftL+ShiftR (Deaktivieren genauso :) )

Note: See TracTickets for help on using tickets.