neo in swing (java), kein Mod4 #129
Labels
No Label
(╯°□°)╯︵ ┻━┻
Bug
Diskussion
Dokumentation
Duplikat
Gitea
Hardware
Hilfe
Invalid
Java
Lernen
Qt
Remote
Subversion
Tablet
Tastaturbelegung
Test
Treiber/Android
Treiber/iOS
Treiber/Linux/Konsole
Treiber/Linux/xkb
Treiber/Linux/xmodmap
Treiber/MacOS
Treiber/Windows/AHK
Treiber/Windows/kbdneo
Treiber/Windows/ReNeo
Verbesserung
Website
Windows 11
Wontfix
Worksforme
No Milestone
No Assignees
18 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: neo/neo-layout#129
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Hallo zusammen!
• Ich benutze neo unter Linux, mit der "sudo cp linux/X/de /usr/share/X11/xkb/symbols/de" Methode.
Nun ist es ja so, dass man mit der Taste rechts von der Leertaste eine Mod5 Taste hat, mit der man zum Beispiel die Tasten s, d, f und e zu Pfeiltasten umfunktionieren kann. Das ist sehr praktisch, vor allem zum navigieren in Texten.
Nun habe ich aber festgestellt, dass das in netbeans mit der jvm von sun nicht zu funktionieren scheint, alles andere aber ohne Probleme funktioniert.
Weiss da vielleicht jemand, was das Problem sein könnte? Wenn ich "Alt Gr" + d drücke, um z. Bsp. eine Zeile nach unten zu navigieren, passiert einfach gar nichts...
Hat vielleicht sonst noch jemand dasselbe Problem? Oder klappt es vielleicht bei jemandem?
Danke schonmal vorab,
Jan Rüegg
nur für's protokoll, damit sich das nicht falsch einbürgert – weil ich es doch sehr oft sehe – die mods und dazugehörige navigationsebene sind mod4 und ebene4, nicht fünf. ebene 5 ist die ebene mit den kleinen griechischen buchstaben und mod5 ist shift+mod3, also zwei mods gemeinsam gedrückt.
Dieser Fehler klingt ähnlich wie Ticket #74 und könnte mit r1803 behoben sein. Bitte ausprobieren und berichten.
Vielen Dank für den Hinweis. Ich habe Nun die r1084 ausprobiert und wie immer ein "sudo cp linux/X/de /usr/share/X11/xkb/symbols/de" gemacht und neugestartet, das hat das Problem jedoch nicht behoben.
Wenn ich irgendwie sonst noch weiterhelfen kann, stehe ich gerne zur Verfügung...
-- Jan Rüegg
neo in java (netbeans), kein Mod5?to neo in java (netbeans), kein Mod4Ich habe das ganze gerade noch etwas weiter eingegrenzt:
-> Es funktioniert weder mit der offiziellen jre noch mit OpenJDK
-> Es funktioniert weder mit xmodmap noch mit der "Xserver" - Methode
-> Die normalen Pfeiltasten der Tastatur hingegen funktionieren ohne Probleme in Java
-- Jan Rüegg
Es scheint nicht generell an Java zu liegen.
Eclipse z.B. funktioniert bei mir mit der xkbmap einwandfrei.
neo in java (netbeans), kein Mod4to neo in netbeans, kein Mod4Hmm... dann muss es wohl doch an netbeans liegen... seltsam.
Ich habe gerade herausgefunden, dass es an SWING liegen muss...
Man sieht das Problem schön, wenn man es mit http://editor.netbeans.org/doc/KeyboardIssues/JEP.java ausprobiert. (javac JEP.java && java JEP)
neo in netbeans, kein Mod4to neo in swing (java), kein Mod4Den FEhler haben wir schon im Ticket #104
In #104 geht es ursprünglich um den Windows-Treiber.
Ich würde das Ticket also nicht als duplicate, sondern wenn, dann als wontfix oder invalid schließen.
Außerdem sollte es im Wiki erwähnt werden.
Wenn das Windows-Treiber-Problem in #104 behoben worden ist, kann es auch geschlossen werden.
Unter Linux ist dieses Problem anscheinend noch vorhanden, also sollte auch dieses Ticket offen bleiben.
Ich selbst nutze leider (noch) kein Linux, aber kann man anhand der JEP.java nicht den Fehler soweit eingrenzen bzw. die Ursache feststellen, dass wir einen brauchbaren Fehlerbericht für das OpenJDK-Projekt schreiben können?
PS: In Ticket #104 wird wie bereits gesagt ein sehr ähnliches, aber eben /Windows/-spezifische Problem behandelt.
Nach meiner Beobachtung werden in netbeans Steuerzeichen nur dann behandelt, wenn sie auf dem ersten Level der ersten Gruppe liegen. Das bedeutet praktisch, dass man diesen netbeans-Bug mit einer anderen Zuordnung zwischen Neos Ebenen, XKB-Levels und X-Modifikatoren nicht umgehen kann, und auch unter Einbeziehen von Gruppenumschaltung bestenfalls eine hässliche Teillösung denkbar ist.
Man kann aber mit Redirect-Actions zum Ziel kommen: Mit Redirect-Actions lügt man Anwendungen bei Eingabe eines Ebene4-Steuerzeichens vor, dass die entsprechende physische Steuertaste gedrückt worden wäre, und die hat nur ein Level auf dem das gewünschte Steuerzeichen liegt. Der monolithische XKB-Treiber (http://wettstae.home.solnet.ch/neo.sh.gz) geht diesen Weg, und für netbeans funktioniert das wie gewünscht.
Ich verwende das Java-Programm OmegaT unter Ubuntu 9.10 und habe durch Suche dies Problem hier gefunden, das scheinbar identisch ist. In Mod4 geht normalerweise alles, außer im besagten Programm OmegaT, dort gehen die Zahlen von Mod4 aber nicht die Pfeiltasten etc. Leider habe ich keine Lösung dafür gefunden, gibt es eine ?
Danke und Grüße an die stets hilfsbereite NEO-Community :)
Das Problem besteht auch in IntelliJ IDEA (reproduziert in Version 9) und Aqua Data Studio (reproduziert in Version 6.5). In eclipse tritt das Problem wahrscheinlich nicht auf, da es SWT als GUI Bibliothek benutzt. Es scheint also ein reines swing Problem zu sein (IntelliJ und Aqua Data Studio sehen so aus, als würden beide swing benutzen)
Bin gerade auf das gleiche Problem gestoßen. Wenn ich mir mit dem oben genannten script eine xkb Datei bauen lasse, dann kommt erst gar nichts und dann stürzt X11 mit diesen Nachrichten und ein paar Speicheradressen ab und startet sich neu:
Valuators reported for non-valuator device "Logitech USB Multimedia Keyboard". Ignoring event.
Valuators reported for non-valuator device "Virtual core keyboard". Ignoring event.
Fatal server error:
Caught signal 11 (Segmentation fault). Server aborting
habe auch versucht, die redirect Anweisungen einzeln zu schreiben, aber da habe ich wohl zu wenig Ahnung davon.
Vielleicht ein Hinweis:
Wenn man in Netbeans unter Keymaps nach shortcuts sucht und Mod4 drück, erscheint da UNDEFINED.
Vielleicht ist das mit Swing ein ähnliches Problem wie früher in xterm, das also als Taste UNDEFINED+Left ankommt, was nicht gleich ist mit Left. Finde die Mailingliste aber gerade nicht, wo ich das gelesen habe.
Hat denn jetzt eigentlich jemand eine Lösung dafür bzw. weiß, wie man wettstein509@solnet.ch Lösung anwendet?
Vielleicht könnte man auch die Entwickler von jVi fragen, das ist ein Netbeans Plugin für vi-ähnliche Steuerung. Die könnten ja vielleicht das Mod4 links abfangen und als normales Links umsetzen. So wäre es dann wenigstens in Netbeans gelöst.
Da ich IntelliJ unter Linux benutze ist der bug besonders ärgerlich für mich. Ich hab also mal ein wenig tiefer gegraben und mir eine kleine Testapp in JAVA geschrieben. Das Problem liegt nicht an Swing sondern an AWT (das ist die ältere JAVA GUI lib die auf der Swing aufbaut). Swing „erbt” sozusagen das Problem von AWT. Das Problem ist das die Klasse, die X-Window Events für AWT „übersetzt“ (sun.awt.X11.XKeysym, Methode static Keysym2JavaKeycode getJavaKeycode( XKeyEvent ev ) ) den event falsch in ein "keysym" übersetzt (sagt das den X11 Experten vll mehr?). Im Code von Sun ist auch ein komischer Kommentar, der vll. hilfreich ist:
Da ich nicht weiß, ob es jetzt wirklich ein Bug in AWT ist und (leider) bezweifle, dass sich da einer drum kümmern würde, wenn man ihn bei Sun/Oracle meldet, habe ich einen kleinen, sehr dreckigen workaround gebaut, mit dem man Programme wie IntelliJ und Aqua Data Studio trotzdem nutzen können sollte. Die Beschreibung des hacks findet ihr hier:
http://henkelmann.eu/2010/11/20/neo2_java_swing_awt_hack
Kurzzusammenfassung: man baut ein if in die oben erwähnte Methode ein, das bei Ebene-4-Events einige der Tasten auf die keysyms für links/rechts etc. ummappt. Der Java code der das macht ist folgender:
*insert this after the normal keysym mapping in getJavaKeycode:
if ((ev.get_state() & 0x20) != 0 && *neo 2 layer 4 keypress
neo2level4Hacks.containsKey(keysym))*it is one of the keys we want to remap
{
keysym = neo2level4Hacks.get(keysym);
*System.out.println("Applied Neo2 hack, new keysym: 0x" + Long.toHexString(keysym));
}
Die map sieht so aus:
*add somewhere in the body of the XKeysym class
static final Hashtable<Long, Long> neo2level4Hacks = new Hashtable<Long,Long>(16);
static {
neo2level4Hacks.put(XKeySymConstants.XK_i, XKeySymConstants.XK_Left);
neo2level4Hacks.put(XKeySymConstants.XK_e, XKeySymConstants.XK_Right);
neo2level4Hacks.put(XKeySymConstants.XK_l, XKeySymConstants.XK_Up);
neo2level4Hacks.put(XKeySymConstants.XK_a, XKeySymConstants.XK_Down);
neo2level4Hacks.put(XKeySymConstants.XK_v, XKeySymConstants.XK_BackSpace);
neo2level4Hacks.put(XKeySymConstants.XK_c, XKeySymConstants.XK_Delete);
neo2level4Hacks.put(XKeySymConstants.XK_u, XKeySymConstants.XK_Home);
neo2level4Hacks.put(XKeySymConstants.XK_o, XKeySymConstants.XK_End);
neo2level4Hacks.put(XKeySymConstants.XK_p, XKeySymConstants.XK_Return);
neo2level4Hacks.put(XKeySymConstants.XK_odiaeresis, XKeySymConstants.XK_Tab);
}
Auf der oben erwähnten Seite findet Ihr einen Link auf ein fertig kompiliertes jar, dass den modifizierten code enthält. Den source findet ihr dort auch.
Man muss dann die modifizierte Klasse mit -Xbootclasspath/p vor die echte Klasse laden. Klappt bei mir unter OpenJDK 6 und dem Sun JDK 6. Z.b. so:
java -Xbootclasspath/p:/your/path/to/the/jar/neo2-awt-hack-1.0-SNAPSHOT.jar -cp foo.jar com.example.Foo
Bei IntelliJ müsst Ihr den parameter in die Datei bin/idea.vmoptions eintragen.
Ich hoffe das hilft Euch, ich bin froh, endlich IntelliJ „richtig“ benutzen zu können.
OK, ich hab diesen Hack probiert, leider funktioniert er nicht: Der entsprechende AWT Code wird bei mir nicht ausgeführt. Deshalb hab ich das ganze mal auf Swing-Ebene nachgebaut, indem ich den selben Trick in der javax.swing.events.KeyEvent Klasse angewandt habe. Funktioniert soweit recht zuverlässig bei mir.
Der Hack findet sich auf GitHub: http://github.com/karottenreibe/Neo2SwingHack
Fabian hat mich drauf aufmerksam gemacht, dass der vorher beschriebene AWT-Hack nur mit dem XToolkit von AWT funktioniert. Fabians Swing Hack hingegen funktioniert nur mit dem MToolkit. Wollt Ihr den AWT Hack benutzen müsst daher (eventuell) noch folgende Umgebungsvariable setzen:
Damit zwingt Ihr AWT das XToolkit zu nutzen. Ab JAVA 1.5 sollte unter Linux allerdings das XToolkit standardmäßig verwendet werden. Unter Solaris ist wohl noch das MToolkit Standard.
Fabian hat den Hack auch noch um einige fehlende Zeichen für Ebene 4 erweitert, die neue Version findet Ihr nun unter:
Ich habe beide hacks probiert, allerdings hat keiner der beiden funktioniert :(
Beim ersten hack funktionierte die Tastatur in IntelliJ überhaupt nicht mehr, mit dem Swing hack von Christoph bekomme ich beim Starten von IntelliJ diesen Fehler:
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
[ 34133] ERROR - pplication.impl.LaterInvocator - java.awt.event.KeyEvent.getExtendedKeyCodeForChar(I)I
java.lang.NoSuchMethodError: java.awt.event.KeyEvent.getExtendedKeyCodeForChar(I)I
at ...
[ 34154] ERROR - pplication.impl.LaterInvocator - IntelliJ IDEA 10.5.2
[ 34154] ERROR - pplication.impl.LaterInvocator - JDK: 1.7.0
[ 34168] ERROR - pplication.impl.LaterInvocator - VM: Java HotSpot(TM) 64-Bit Server VM
[ 34169] ERROR - pplication.impl.LaterInvocator - Vendor: Oracle Corporation
[ 34169] ERROR - pplication.impl.LaterInvocator - OS: Linux
Hat jemand Ideen wie ich das mit meinem Java/dem JDK 7 zum laufen bringen kann?
Ich hab den Swing hack auf Basis von 1.6 gemacht. Da scheint sich mit 1.7 zuviel geändert zu haben. Daher der NoSuchMethodError - mein hack ruft eine Funktion auf, die es in 1.7 nicht mehr gibt. Wird allerdings eine Woche dauern, bis ich dazu Zeit finde.
Für X-Server ab Version 1.9.0.901 (oder vor 1.7) kannst du dein Glück mit dem monolithischen Treiber probieren (http://wettstae.home.solnet.ch/neo.sh.gz). Mit der Option -n sollte der Treiber auch mit anderen Versionen funktionieren, allerdings ist für -n die Ebene 4 nur teilweise und die Ebene 6 garnicht implementiert (wäre aber im Prinzip machbar).
Diese Hacks (insbesondere der von Christoph) funktioniert nur mit xkbmap. Wenn man die Neo-Xmodmap verwendet ist der Mod4-Keystate nicht 0x20, sondern 0x80. Die geänderte Variante ist im Wiki verlinkt: http://wiki.neo-layout.org/wiki/JavaMod4Fix
Vielleicht kann Christoph das auch noch schön in seine Version einbauen. Option übergeben oder so?
FYI: Ich verwende die regulären Debian-Pakete für Neo2, was bis auf dieses Problem wunderbar funktioniert(setxkbmap -rules evdev -model pc105 -layout de -variant neo -option ""). Leider sind mir die ganzen Hintergründe um keycodes, maps etc. unbekannt und die hier erwähnten Lösungen klingen fürchterlich kompliziert. Es wäre fantastisch wenn das Problem irgendwie an der Wurzel(Treiber in Debian) behoben werden könnte. Gibt es dazu vlt. einen Patch gegen ein Debian-Paket?
Dann müsste Java verändert werden. Die Lösungen sind gar nicht kompliziert. Im Wiki sind sie sehr kurz und gut verständlich beschrieben: JavaMod4Fix
Noch kürzer: Die Datei dort herunter laden und dem Java-Programm als Option übergeben. Fertig. Falls trotzdem was unklar ist, bitte im Chat melden. Dazu auf die Hauptseite gehen https://neo-layout.org/ und dort auf Neo-Chat.
die wiki:seite klingt gut. Aber...
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
da müssen wohl noch ein paar weitere Pfade in Xbootclasspath eingetragen werden...
das sagen die properties: /usr/lib/jvm/java-6-openjdk-amd64/jre...
nur, das klappt leider nicht
Wäre schön, wenn Du das Problem im Neo-Chat oder auf der Mailingliste klären und anschließend hier die Lösung hier beschreiben könntest. Im Chat können Dir Rückfragen gestellt werden, die Du dann beantworten und gegebene Ratschläge gleich ausprobieren kannst.
http://wiki.neo-layout.org/wiki/JavaMod4Fix wenn man es richtig liest und korrekt umsetzt dann klappt es auch. Ich habe mich nun nochmal daran gemacht. Mein entscheidender Fehler war dass ich bei -J-Xbootclasspath/p:/path/to/hack/neo2-awt-hack-0.2.jar das /p nicht beachtet hatte. Das ist der entscheidende switch um diesen Pfad zu prependen (p) und ihn nicht vollständig zu ersetzen, was zu einem Fehler führt. Jetzt endlich auch in Netbeans Ebene 4. :)
Schrecklich! Mit Java 1.7 geht es schon wieder nicht. Wenn man den neo2-awt-hack-0.2.jar dann einbindet reagiert das Javaprogramm auf keinerlei Tastatureingaben. :-(
Verwende Java in Version 1.7.0_b147-icedtea, OpenJDK Runtime Environment (fedora-2.1.fc17.1-x86_64)
OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode).
Da dieser Fehler mittels unseres Patches behoben ist und wir nichts an Java ändern können, werde ich diesen Fehler schließen (fixed, denn „wir“ haben den Patch zum korrigieren des Fehlers erstellt).
Doch, es ist ein Fehler vorhanden. Und zwar äußert er sich so, dass ich diese Fehlermeldung bekomme, wenn ich eine Taste drücke:
Scheint so, als wäre in Version 1.7 von Java eine Methode entfernt oder umbenannt worden.
Auf meinem System gibt es unter Xmonad noch einen anderen Fehler, dass ich auch ohne unseren Neo-Hack nicht tippen kann. Unter Gnome3 geht es aber. Daher meine Verwirrung.
Oh man, was für eine Erkenntnis: Java in Version 1.7 braucht den Hack einfach gar nicht mehr. Es funktioniert! Ohne Hack, ohne sonst was. Mein Fehler tritt nur auf, wenn ich den Hack verwende, sonst läuft Ebene 4 fast einwandfrei.
Außer: Tab! Weder das Tab auf ö noch das auf 7 der Ebene 4 funktionieren in Java-AWT-Programmen. Das kann man aber verschmerzen. Seltsam ist es trotzdem.
Also: Fixed! (nicht von uns, sondern von Oracle oder den IcedTea-Leuten)
Hey, ich habe den gleichen Fehler mit Java 7. Sowohl mit OpenJDK als auch mit Oracle. Die Hacks funktionieren nicht für Java 7. Irgendwelche Ideen?
java version "1.7.0_07"
OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-0ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)
Hey, bist du sicher? Wie erik weiter oben festgestellt hat, funktionieren Mod4 keys unter Java 1.7 auch ohne Hack. Beispielprogramme: jabref & jameica
Ja, leider bin ich sicher. Zuerst habe ich PyCharm und jetzt auch Jabref ausprobiert.
Wenn ich auf OpenJDK 1.6 umstelle und den hack verwende geht es.
Vielleicht nehme ich das erst mal als workaround...
Bei mir funktioniert es auch leider nicht (ebenfalls mit openjdk7 und oracle ausprobiert). Einige Programme, die dazu gehören sind zB. vym und Intellij IDEA. Währed man innerhab einer Textbox (oder ähnlichem) schreibt, funktioniert die 4. Ebene perfekt, Aber in anderen Bereichen geht es wieder nicht. Leider gehört dazu auch der Editor von IDEA. Der Hack von http://henkelmann.eu/2010/11/20/neo2_java_swing_awt_hack hat nur Exceptions geworfen und ich habe dann mir den Quellcode von openjdk7 gezogen und damit den hack nachprogrammiert. Und es läuft ohne Exceptions, aber es ändert nichts an der Funktion, sogar wenn ich prints da rein baue, werden diese nicht ausgegeben.
Vielleicht will jemand mal folgendes ausprobieren:
test.xkb
schreiben:xkbcomp :0 test.xkb
}}}
test.xkb
editeren, und zwar den Eintrag fürkey <AD02>
durch Ergänzen deractions
-Zeile ändern in:{{{
key {
type= "EIGHT_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ u, U, underscore, NoSymbol, BackSpace, BackSpace, includedin, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), NoAction(), RedirectKey(key=,clearMods= Lock+Mod2+Mod3+Mod5), RedirectKey(key=,clearMods= Lock+Mod2+Mod3+Mod5), NoAction(),NoAction(),NoAction() ]
};
}}}
(das Komma am Ende der
symbols
-Zeile nicht vergessen).Die geänderte Belegung auf den Server laden:
{{{
xkbcomp test.xkb :0
}}}
Nachprüfen, ob jetzt das Ebene4-Backspace funktioniert.
Noch mehr Infos: Eclipse zB. funktioniert einwandfrei (also auch wieder swing-/awtproblem). Ich denke mal, dass Anwendungen dann Probleme haben, wenn sie das KeyEvent abfragen. Z.B. die Demo von http://www.java2s.com/Code/Java/Event/KeyEventDemo.htm : während die 4. Ebene beim schreiben funktioniert (also auch das Backspace löscht Zeichen), aber bei dem KeyEvent wird unknown für die Mod4-Taste angezeigt und es steht dann 'V' in der Beschreibung. Falls ich java6 mit hack benutze, steht beim KeyEvent backspace in der Beschreibung und auch die IDEA lässt sich bedienen.
Ich habe dasselbe Problem. 4te Ebene funktioniert in IntelliJ auch mit Java 7 nicht. Wäre prima wenn jemand dafür eine Lösung finden würde :)
Es würde mich schon interessieren, was da los ist, denn das sollte eigentlich keine garkeine Auswirkung auf die Belegung haben. Da hast du Pech gehabt. Ich habe
KeyEventDemo.java
ausprobiert, und dieactions
funktionieren wie gewünscht. Wer Mut hat, kann auch im Treiber direkt eingreifen. An einfachstenin
/usr/share/X11/xkb/compat/misc
einfügen, setxkbmap ausführen oder X neu starten.Hab das gerade ausprobiert, hat für Backspace funktioniert (konnte es auch in Intellij benutzen, natürlich funktionierte der Rest immer noch nicht). Es fühlt sich zwar seltsam an, wenn man es länger drückt (scheint langsamer als das normale Backspace zu sein, aber es läuft). Werde mal heute den Rest umschreiben, hast du auch eine Lösung für das langsam sein beim Repeaten?
Bzw. Das Langsamsein ist wahrscheinlich deswegen, weil Backspace nicht mehr wiederholt wird (Während das Mod4-BKSP langsam wiederholt wird, wird das echte nicht mehr wiederholt), hab auch mit "repeat= True;" ausprobiert, aber immer noch kein Repeat. Hab in den Output von xkbcomp geguckt und da ist ein "interpret.repeat= False;" vor dem Interpret-Block, was mir suspekt erscheint. Ist das Schuld daran? Wenn ja, wo kommt das her?, (xkbcomp funktioniert bei mir ja nicht wirklich, sonst hätte ich das ausprobiert, es zu ändern)
Das langsamerwerden ist ein Bug im X-Server. Ich werde einen Patch dafür einreichen, aber das braucht noch etwas, und wird wohl bestenfalls für Version 1.15 übernommen. Bis dahin kann man die repeat-Rate hochdrehen.
Dass die echte Backspace-Taste nicht mehr wiederholt sollte eigentlich von dem
repeat= yes;
verhindert werden.Das Zeug vor den Blöcken ist eine Art default, was in den Blöcken steht sollte jedoch meines Wissens vorgehen. Du kannst natürlich damit experimentieren, aber wenn du dabei das repeat der Shift-Tasten versehentlich abschaltest wird es unangenehm.
Statt am repeat rumzudrehen kann man auch in
/usr/share/X11/xkb/compat/misc
statt der Variante mitBackSpace
verwenden und in
/usr/share/X11/xkb/symbols/de
dasBackSpace
in Ebene 4 und der Pseudo-Ebene durch0x1100001
ersetzen.0x1100001
ist eine keysym einem privaten Unicode-Bereich. Für die anderen Steuerzeichen muss man natürlich andere Werte nehmen (0x1100002
usw). Der Umweg über die private Unicode-keysym macht zwar etwas mehr Arbeit, aber dafür wird die Orginal-Taste nicht beeinflusst, und man umgeht nebenbei noch die Probleme, die mit einigen Xt-Applikationen auftreten.Danke soweit, für die Anderen, hier mal, wie ich es bei mir gemacht habe:
in /usr/share/X11/xkb/compat/misc hinzufügen, und in /usr/share/X11/xkb/symbols/de die Sachen mit den entsprechenden Codes von unten ersetzen (ich habe keine Ahnung, ob man auf jedem Rechner die Zeilen einfach so übernehmen darf^^)
Falls die Tasten langsam wiederholt werden, z.B.
ausführen.
Danke für die Anleitung geht natürlich an den Herrn über mir
Hat das inzwischen jemand versucht?
Inzwischen gibt es mit dem Android Studio einen weiteren prominenten Vertreter für den Bug. Da wäre eine Lösung wirklich schön.
Ich habe das gleiche Problem in IntelliJ 12.1.4. Java ist in Version 1.7.0_40 installiert.
siehe auch #364 und IDEA Bugtracker
Unter Fedora 20 mit OpenJDK8 funktioniert Neo2 unter Swing (Netbeans 7.3.1, JDownloader 2, MediathekView) und SWT (Eclipse 4.?) einwandfrei.
Unter Arch Linux mit OpenJDK7 oder OpenJDK8 funktioniert Mod4 nicht in IntelliJ 12.1.6
Ich habe ein ähnliches Problem (nicht funktionierende Pfeiltasten in Ebene 4) mit Sublime Text 3 unter Ubuntu 12 (mit xmod). Allerdings funktioniert obiger Hack mit der Java-Klasse nicht, da Sublime selber kein Java-Program ist bzw. zu sein scheint (java sublime_text resultiert in Error: Could not find or load main class). Irgendwelche Ideen wie man die Pfeiltasten unter Sublime zum Laufen bekommt?
Kurzer Hinweis zu diese Problem:
Unter Ubuntu 14.10 ist es möglich, die vierte Ebene nach wie vor durch die Verwendung von OpenJDK 6 mit dem Hack von Christoph Henkelmann zu aktivieren. In meinem Fall war es jetzt Webstorm, aber das basiert ja alles mehr oder weniger auf NetBeans. Ich habe in der webstorm.sh ganz unten den Hack eingepflegt, seit dem geht das alles prima. Nur Webstorm schimpft, dass die OpenJDK-Version eigentlich nicht unterstützt wird.
Bei mir sind alle Probleme verschwunden seitdem ich Java 1.8 verwende (OpenJDK unter Fedora Linux). Ganz ohne Hack.
Also kann dieser Bug geschlossen werden?
Meine aktuellen Beobachtungen in IntelliJ unter Ubuntu 17.04 mit OpenJDK 8:
Beispiel: Alt+Enter, um das Intention Popup zu öffnen. Hier kann ich ohne den Henkelmannschen Fix die Mod4 Rechts- und Links-Pfeiltasten nicht benutzen und die Entertaste nicht zum Auswählen der Menüoptionen benutzen.
Anderes Beispiel: Shift Shift, um Search Everywhere aufzumachen. Hier kann ich nur sproadisch die Enter-Taste von Mod4 benutzen, um Einträge auszuwählen.
Mit dem Bootclasspath Jar funktionieren die genannten Tasten in meinen Experimenten aber in diesen Situationen immer korrekt.