Wie kann ich meine ISO_Level5_Shift Pfeiltasten in Java Swing GUIs funktionieren?

Ich habe ein Tastatur-Layout, das ISO_Level5_Shift , um Pfeiltasten zur Verfügung zu stellen. Aus meinem Layout Symbole Datei:

 key <AC06> { type[Group1]="EIGHT_LEVEL", [ d, D, ampersand, U2227, Home, Home, Greek_delta, Greek_DELTA ]}; key <AC07> { type[Group1]="EIGHT_LEVEL", [ h, H, parenright, U27E9, Left, Left, Greek_eta, Greek_ETA, U210F ]}; key <AC08> { type[Group1]="EIGHT_LEVEL", [ t, T, parenleft, U27E8, Down, Down, Greek_tau, Greek_TAU ]}; key <AC09> { type[Group1]="EIGHT_LEVEL", [ n, N, slash, U2115, Right, Right, Greek_nu, Greek_NU ]}; key <AC10> { type[Group1]="EIGHT_LEVEL", [ s, S, underscore, U2237, End, End, Greek_sigma, Greek_SIGMA ]}; 

Diese Arbeiten in den meisten Programmen (Firefox, Eclipse, Vim, …). Leider arbeiten sie nicht in irgendeiner Java Swing GUI, die ich je benutzt habe. Insbesondere arbeiten sie nicht in IntelliJ IDEA, und das ist es, was mich besonders geklärt hat.

Gibt es etwas, das ich in meinem Layout ändern könnte, oder Java-bezogene Umgebungsvariablen oder IDEA-Konfiguration, die dieses Problem beheben könnte?

One Solution collect form web for “Wie kann ich meine ISO_Level5_Shift Pfeiltasten in Java Swing GUIs funktionieren?”

OK ich habe eine lösung gefunden Es ist nicht wirklich ideal, aber es bekommt das gewünschte Verhalten.

Zuerst habe ich den kompletten Zustand meiner Tastaturkonfiguration mit

 $ xkbcomp $DISPLAY - > now.xkb 

Dann habe ich die Zeilen gefunden

 interpret Overlay1_Enable+AnyOfOrNone(all) { action= LockControls(controls=Overlay1); }; 

Und hat es geändert

 interpret Overlay1_Enable+AnyOfOrNone(all) { action= SetControls(controls=Overlay1); }; 

Was verhindert, dass der Modifikator "klebrig" ist, dh es gilt nur, während Sie den Schlüssel gedrückt halten.

Dann habe ich den Schlüssel genommen, der früher mein ISO_Level5_Shift war:

 key <TAB> { type= "ONE_LEVEL", symbols[Group1]= [ ISO_Level5_Shift ] }; 

Und änderte es zu Overlay1_Enable:

 key <TAB> { type= "ONE_LEVEL", symbols[Group1]= [ Overlay1_Enable ] }; 

Dann für jeden Schlüssel, wo ich wollte, dass die Änderung wirksam wird, habe ich eine Overlay-Definition hinzugefügt:

 key <AD07> { type= "EIGHT_LEVEL", overlay1= <PGUP>, symbols[Group1]= [ g, G, asterisk, G, Prior, G, Greek_gamma, Greek_GAMMA ] }; 

Dann ist das alles wieder aufgetragen

 $ xkbcomp now.xkb $DISPLAY 

Nützliche Dokumentation:

  • XKB Seite auf ArchLinux Wiki
  • Doug Palmer's XKB Guide
  • Wie deaktiviere man die Tastenkombination Strg + Shift in Windows 8?
  • Verschiedene Standard-Tastatur-Layouts für verschiedene Anwendungen
  • Internationale Dvorak-Tastatur löst keine Hotkeys aus
  • Wie man sich in Windows anmeldet, wenn das Passwort nationale Zeichen und Tastatur hat, ist auf US eingestellt
  • Wie kann ich Windows und Alt-Tasten in OS X neu zuordnen?
  • Was steht auf der Seite des "Mystery Key" auf einer IBM PC 3180 Tastatur?
  • Tastaturlayout im Terminal von Red Hat Linux ändert sich automatisch
  • Apple Aluminium Tastatur und Ubunutu 11.04
  • Verknüpfungen festlegen, um das Tastaturlayout in Windows 10 zu ändern?
  • Mit CapsLock schalten Sie das Tastatursprachenlayout um
  • Windows 8 - 2 Sprachen. Wie sperre die Tastatur nur einer?
  • Lass uns ein Computergenie sein.