Opened 16 years ago

Closed 16 years ago

Last modified 12 years ago

#182 closed Fehler/Defekt (wontfix)

urxvt/xterm + vim, 4. Ebene Ziffern gehen nicht

Reported by: mail@… 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)

comment:1 by anonymous, 16 years ago

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):

URxvt.keysym.KP_Add:    +
URxvt.keysym.KP_Subtract: -
URxvt.keysym.KP_Multiply: *
URxvt.keysym.KP_Divide  : /
URxvt.keysym.KP_Decimal : .
URxvt.keysym.KP_Separator : ,
URxvt.keysym.KP_1:      1
URxvt.keysym.KP_2:      2
URxvt.keysym.KP_3:      3
URxvt.keysym.KP_4:      4
URxvt.keysym.KP_5:      5
URxvt.keysym.KP_6:      6
URxvt.keysym.KP_7:      7
URxvt.keysym.KP_8:      8
URxvt.keysym.KP_9:      9
URxvt.keysym.KP_0:      0

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»).

comment:2 by mail@…, 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 stephan, 16 years ago

Resolution: wontfix
Status: newclosed

Das Problem scheint ein programmspezifisches zu sein, auf das Neo keinen Einfluss hat.

in reply to:  1 ; comment:4 by anonymous, 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.

in reply to:  4 comment:5 by Erik Streb del Toro, 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 anonymous, 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 psycorama, 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

Note: See TracTickets for help on using tickets.