Ticket #1769 (new defect)

Opened 15 years ago

Last modified 10 months ago

ncurses screen library: no ctrl/shift-key recognized

Reported by: gotar Owned by:
Priority: minor Milestone: Future Releases
Component: mc-tty Version: 4.7.0-pre4
Keywords: Cc: anton.bugs@…, dickey
Blocked By: Blocking:
Branch state: no branch Votes for changeset:

Description

When compiled with ncurses(w) ctrl/shift-keys (like arrows in editor) are not recognized at all.

Change History

comment:1 Changed 14 years ago by anton_kg

  • Cc anton.bugs@… added

I'm experiencing about the same issue with 4.7 release. The shift key is not recognized with ncurces then I want to rename a file, for example. Shift+F6 press is actually trying to delete a file.

comment:2 Changed 14 years ago by E.L.K.

It seems i found the solution for this problem. I'm not sure that this is "right" solution, but it works, and maybe will be useful in diagnosing source of it.

Described here: http://7ocb.blogspot.com/2010/03/screen-midnight-commander-shift-f6.html

comment:3 Changed 14 years ago by angel_il

2gotar:
please show result of
echo $TERM

comment:4 Changed 14 years ago by gotar

  • Priority changed from major to minor

anton_kg, E.L.K.: no, you are talking about something entirely different; your shifts ARE recognized (which is obvious as some behaviour changes), but misinterpreted (see #367). This is caused by using different shift-Fx 'wrap' policy: one is to max out the range (F1-12 shifted == F13-24), the other is to be natural for humans (i.e. in terms of decimal shift: F1-12 shifted == F11-F22, thus doubling F11==shift-F1 and F12==shift-F2). You can go to Options->Learn keys and teach mc to treat F18 (this is what you get as input) as 'Function key 16'.

angel_il: my TERM is plain xterm. When I hit shift-F1 to F10 under mc/ncurses (either in command line or mcedit) i got this: 2P2Q2R2S28~29~31~32~33~34~. I can teach mc to recognize these:

[terminal:xterm]
f13=
eO2R

but there's no place to teach it that ^[[1;2A is shift-up. With slang as screen library the same sequences ARE recognized well. I suspect that ncurses uses only terminfo database, which doesn't contain such combos.

I've just checked 4.7.1 and nothing has changed. But the main question is: what's the point of using/having this screen library at all? Why/when slang is not superior?

comment:5 Changed 13 years ago by andrew_b

  • Branch state set to no branch
  • Milestone changed from 4.7 to Future Releases

comment:6 Changed 10 months ago by ossi

  • Cc dickey added

what's the point of using/having this screen library at all? Why/when slang is [] superior?

that's actually a good question.
ncurses is theoretically a cleaner solution, because it doesn't come bundled with a scripting language interpreter.
but issues like this (and #2837), #4096, and #4144 call this into question.
so given that clearly nobody is fixing this, it may be more pragmatic to simply commit to slang after all, and actually leverage that interpreter (#4187).

comment:7 Changed 10 months ago by zaytsev

so given that clearly nobody is fixing this, it may be more pragmatic to simply commit to slang after all, and actually leverage that interpreter (#4187)

I have no strong opinion about committing (or not committing) to slang, but the interpreter... oh my dear god. I wish somebody would just employ me full time to work on mc some, so that I could resurrect the brilliant mooffie's work - solid architecture and professional implementation, good choice of tools, excellent documentation. Really, a fantastic piece of work!

Note: See TracTickets for help on using tickets.