Comment 40 for bug 96676

Revision history for this message
Thomas Dickey (dickey-his) wrote : Re: [Bug 96676] Re: [feisty] function keys don't work in gnome-terminal

On Tue, 23 Oct 2007, Alexey Borzenkov wrote:

> Thomas, I don't seem to understand you. I just grabbed and compiled
> terminfo.src you gave and while it helped with xterm (except that it's
> just like with my previous attempts, Shift+F2 starts a new file in mc
> instead of Shift+F4) it didn't work in gnome-terminal (because of \E[
> and \EO difference I pointed before). However I just recompiled libvte

I don't use mc, but have read that it stores key-definitions per $TERM
with its learn-keys feature. That may be what's confusing it. Also,
recall that I pointed out that some terminals use different numbering
for the shift-F1 to F10 or F12.

gnome-terminal is a different problem since it hardcodes $TERM to "xterm"
and attempts to read function-key definitions from the termcap interface.
Note that I said "termcap" - iirc, it's only got one table. This makes it
do interesting (buggy) behavior for the shift/control cursor/function
keys, since it guesses incorrectly on the cases where they're not in
termcap.

It does sort-of work for the codes in termcap. (I haven't noticed any
mismatches for the common cases of TERM using tack).

> with changing "#if 1" to "#if 0" and gnome-terminal now works correctly

I'm not sure which "#if 1" you're talking about here.

> (Shift+F4 now starts a new file in mc, with original ubuntu terminfo, no
> other modifications were needed). The change in the source only affects
> addition of "1;" and shouldn't make any difference in regards to
> Shift+F2/Shift+F4 (since I didn't change any resources), should it? If
> it does then I'm clearly missing something big here and I'd like to know
> where I could read what this "1;" actually means at all?

you seem to be referring to here to something like
  \E[1;2A

The "1;" is the first parameter in the control sequence. In my first
version of function-key modifiers, I did something like
  \E[2A

but after some time someone pointed out that it violated the convention
that the cursor key strings could be interpreted the same as the
corresponding cursor movement controls. The first parameter for cursor
movements is a repeat-count. So I added a dummy parameter "1" to fix
that.

gnome-terminal and konsole copied the first version, did not adapt the
improved version. (xterm provides both, and more via the modifyXXX
resources). After some time, gnome-terminal was modified (unsure when -
neither GNOME nor KDE developers document things) to read the termcap.
So it sort-of works.

>
> P.S. I'm not affiliated with ubuntu/debian development yet (merely a
> "new" user who recently returned back to linux after moving to windows a
> decade ago), so I can't even suggest anything going or not going
> upstream. I'm just trying to understand what's going on here with this
> bug.
>
> --
> [feisty] function keys don't work in gnome-terminal
> https://bugs.launchpad.net/bugs/96676
> You received this bug notification because you are a direct subscriber
> of the bug.
>
>

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net