screen-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PgUp and PgDn not working


From: Pieter Luteijn
Subject: Re: PgUp and PgDn not working
Date: Mon, 26 Mar 2007 09:40:51 +0200 (CEST)
User-agent: SquirrelMail/1.4.8

> I'm using Screen version 4.00.02 on FC5 on KDE Konsole and my PageUP and
> PageDown doesn't work while I'm inside screen. I'm pressing
> "shift-Page-up" on a US-International keyboard.

You forget to mention what you want to happen when you press
shift-PgUp/PgDn. But from the 'defscrollback' line you included, I'll
assume you want these to scroll back into the history of the screen.

> I also tried KSH but it doesn't work. My TERM is xterm-color. My
> default shell is Bash version 3.1.7(1).

xterm keeps its own local scroll-back buffer, but NOT when using the
'alternate screen', which screen usually uses. When you press shift-pgup,
this never really gets send to screen, xterm intercepts it, and scrolls
back in its local buffer (which happens to be empty, or has some stuff
from way back before you started screen). There's a few ways to solve
this, depending on what you want. See also this older thread

http://lists.gnu.org/archive/html/screen-users/2005-07/msg00009.html

You could lie to screen that your xterm doesn't have an alternate screen,
or disable the ti/te handling in xterm (see manpage of xterm,
"titeInhibit") but that usually creates a mess in you xterm-scrollback
anyway, especially when using split screens.

You could learn to use <meta> (e.g. ctrl-a, or whatever you set it to)
<esc> to enter screen's scrollback mode.

It's probably better to change xterm's set-up so it passes through the
shift-pgup/dn to screen, and bind these to screen's history function; or
if you don't mind to get used to slightly different keys, bind ctrl or alt
-pgup/pgdn to screen's history function; that's what I did, since another
terminal emulator I use a lot can't be told to pass-through shift pg-up.

Here's how you'd do this:

First, decide which key(s) you want to use to scroll through screen's
scrollback-buffers. For example, alt-pgup and alt-pgdn.

Next, you have to figure out what gets send to screen when you press these.
You can just enter 'cat', push the keys for a while until you figure it
out, then press ctrl-c. Let's assume your chosen keys send "^[[5;3~" and
"^[[6;3~"

Now you have to edit your .screenrc to bind some screen actions to these
escape-sequences:

bindkey ^[[5;3~ eval "copy" "stuff \"^u\"" # alt-page-up goes to copy mode
bindkey ^[[6;3~ eval "copy"  # alt-page-down goes to copy mode
bindkey -m ^[[5;3~ stuff "^u" # alt-page-up sends page-up in copy mode
bindkey -m ^[[6;3~ stuff "^d" # alt-page-down sends page-down in copy mode

No need to type something special to get the <esc> (^[) in. screen parses
it properly if you just type a ^ and a [. So you could just cut and paste
the above, unless sending it through mail messed up the line-breaks :-)

The only thing to remember is that you need to explicitly leave
copy/scrollback mode by e.g. pressing escape, not just scroll back to the
bottom.

Hope this is clear enough and helps you,

Pieter.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]