#182 closed Fehler/Defekt (wontfix)
urxvt/xterm + vim, 4. Ebene Ziffern gehen nicht
| Reported by: | Owned by: | ||
|---|---|---|---|
| Priority: | normal | Milestone: | Neo Version 2.0 |
| Component: | Treiber: Linux – Xkbmap | Version: | 2.0 BETA |
| Keywords: | Cc: |
Description
Ich benutze das neueste neo-layout. Wenn ich im Terminal urxvt oder xterm einen vim starte und dort eine Zahl über den integrierten Nummernblock der 4.Ebene (Leertaste, m,.nrthgf) eingeben möchte wird eine neue Zeile über der aktuellen angelegt und dort ein einzelner, kleiner Buchstabe geschrieben (pq...y) abgesehen von 3 und 9. Dort wird nur gescrollt. Bei 3/s nach unten und bei 9/y nach oben. Im Konsole-Terminal (KDE) passiert dieses Problem nicht. Auch bei anderen Anwendungen oder in der Kommandozeile in urxvt/xterm funktioniert alles prima. Das Problem wurde auch von anderen beobachtet.
xev-Ausgabe bei "4" auf der 4.Ebene:
KeyPress event, serial 34, synthetic NO, window 0x5600001,
root 0x329, subw 0x0, time 22545944, (-561,929), root:(1731,988), state 0x0, keycode 94 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES, XKeysymToKeycode returns keycode: 93 XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False
KeyPress event, serial 34, synthetic NO, window 0x5600001,
root 0x329, subw 0x0, time 22546188, (-561,929), root:(1731,988), state 0x20, keycode 44 (keysym 0xffb4, KP_4), same_screen YES, XKeysymToKeycode returns keycode: 83 XLookupString gives 1 bytes: (34) "4" XmbLookupString gives 1 bytes: (34) "4" XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x5600001,
root 0x329, subw 0x0, time 22546261, (-561,929), root:(1731,988), state 0x20, keycode 44 (keysym 0xffb4, KP_4), same_screen YES, XKeysymToKeycode returns keycode: 83 XLookupString gives 1 bytes: (34) "4" XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x5600001,
root 0x329, subw 0x0, time 22546650, (-561,929), root:(1731,988), state 0x20, keycode 94 (keysym 0xfe13, ISO_Level5_Lock), same_screen YES, XKeysymToKeycode returns keycode: 23 XLookupString gives 0 bytes: XFilterEvent returns: False
System: Gentoo Linux vim 7.2.182
Change History (7)
follow-up: 4 comment:1 by , 16 years ago
comment:2 by , 16 years ago
Ich konnte zumindest die Lösung für urxvt sowohl für den normalen Ziffernblock als auch für den auf der 4. Ebene verifizieren. Danke erstmal dafür.
comment:3 by , 16 years ago
| Resolution: | → wontfix |
|---|---|
| Status: | new → closed |
Das Problem scheint ein programmspezifisches zu sein, auf das Neo keinen Einfluss hat.
follow-up: 5 comment:4 by , 12 years ago
Damit die Home und End Tasten von Ebene 4 in urxvt funktionieren, muss noch
URxvt.keysym.Home: \033[1~ URxvt.keysym.End: \033[4~
in den X-Resourcen ergänzt werden.
comment:5 by , 12 years ago
Replying to anonymous:
Damit die Home und End Tasten von Ebene 4 in urxvt funktionieren, muss noch
URxvt.keysym.Home: \033[1~ URxvt.keysym.End: \033[4~in den X-Resourcen ergänzt werden.
Also bei mir haben diese seit eh und je funktioniert. Nutze hier aktuell Fedora 17 (aber auch mit Fedora 20 geht es).
vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled May 14 2013 13:54:27)
urxvt --version
rxvt-unicode (urxvt) v9.16 - released: 2012-11-06
X -version
Build ID: xorg-x11-server 1.12.4-7.fc17
uname -r
3.9.10-100.fc17.i686
comment:6 by , 12 years ago
Das Problem trat mit einem neu installierten openSuse 13.1 auf. Nach einem Update gehen Home und End jetzt bei mir auch ohne die zwei Einträge.
comment:7 by , 12 years ago
Ich konnte mein Problem auf screen zurückführen. Unter der Verwendung von den oben dargelegten Zeilen, welche ich erweitert habe mit
URxvt.keysym.M-KP_$ZAHL: \033$ZAHL
konnte ich das von mir gewünschte Verhalten im screen erreichen. Siehe auch, die Änderungen in meiner config https://github.com/psycorama/scripts/commit/c92c5149ed40295dcc0335d862ed9e8f013765ce#diff-0f106636d9dda3210c9ca08b9229d299

Ich sehe dieses Problem nicht nur mit dem Ebene 4-Ziffernblock, sondern auch mit dem echten, und nicht nur mit vim, sondern auch mit nvi.
Entweder werden die Keysyms nicht richtig in Steuersequenzen umgesetzt oder vim/nvi können mit den Steuersequenzen nicht umgehen. Falls sich jemand mit termcap und dergleichen auskennt könnte man in dieser Richtung weiterbohren; vielleicht muss man ja nur TERM geeignet setzen.
Hier zunächst einmal ein Vorschlag, das Problem für den echten Ziffernblock zu umgehen; der Ebene-4-Ziffernblock sollte sich ähnlich behandeln lasse (Da ich den offiziellen XKB-Treiber nicht verwende kann ich das nicht verifizieren)
Für urxvt schreibt man in die X-Resourcen (siehe die urxvt man page):
Für xterm ergänzt man die VT100-Translations:
XTerm*VT100.translations: \ :<KeyPress> KP_Add:string("+") \n\ :<KeyPress> KP_Subtract:string("-") \n\ :<KeyPress> KP_Multiply:string("*") \n\ :<KeyPress> KP_Divide:string("/") \n\ :<KeyPress> KP_Decimal:string(".") \n\ :<KeyPress> KP_Separator:string(",") \n\ :<KeyPress> KP_1:string("1") \n\ :<KeyPress> KP_2:string("2") \n\ :<KeyPress> KP_3:string("3") \n\ :<KeyPress> KP_4:string("4") \n\ :<KeyPress> KP_5:string("5") \n\ :<KeyPress> KP_6:string("6") \n\ :<KeyPress> KP_7:string("7") \n\ :<KeyPress> KP_8:string("8") \n\ :<KeyPress> KP_9:string("9") \n\ :<KeyPress> KP_0:string("0") \n\ …wobei … der bisherige Inhalt der VT100-Translations ist; siehe die xterm man page (und zum Syntax Anhang B von «X Toolkit Intrinsics - C Language Interface»).