How to make mouse wheel scroll the less pager using bash and gnome-terminal?

25

7

I have two computers with the latest Fedora. On the first, I'm using zsh and the mouse wheel can be used with the less pager within gnome-terminal to scroll the pager.

On the second, I use bash and the mouse whell scroll the terminal history, not the pager.

The shell shouldn't make any difference, why can't I use the mouse wheel to scroll in the second case?

To illustrate what it does, imagine I have a document like this:

AAAA
BBBB
CCCC
DDDD
EEEE

And I have a two line terminal. If I use less, I get on the screen

AAAA
BBBB

The mouse wheeel cannot scroll further down. If I scroll upwards, I get the bash prompt history. Now I use the page down key to get to the bottom of the document, I get on screen:

DDDD
EEEE

Scrolling upwards gets me

BBBB
DDDD

-->

user36520

Posted 2011-08-02T07:19:20.700

Reputation: 1 795

On Guake 0.4.4 (Ubuntu 14.04) there ia a bug that has already been fixed upstream: https://bugs.launchpad.net/ubuntu/+source/guake/+bug/1370762

– Ciro Santilli 新疆改造中心法轮功六四事件 – 2015-01-28T14:20:24.960

Answers

27

The computer where less scrolled had LESS=-r, the other had LESS=-asXFMMRqix8.

From the less man page:

-q or --quiet or --silent

      Causes moderately "quiet" operation: the terminal bell is not rung if an attempt is made to scroll past the end of the file or before the beginning of the file.  If the terminal has a "visual bell", it is used instead.  The bell will be rung on certain other errors, such as typing an invalid character.  The default is to ring the terminal bell in all such cases.

-X or --no-init

      Disables sending the termcap initialization and deinitialization strings to the terminal.  This is sometimes desirable if the deinitialization string does something unnecessary, like clearing the screen.

The -X option prevented scrolling all together and the -q option caused the pager to enter a non-scrollable state when scrolling past the beginning or end of file.

My options are now LESS=-asrRix8.

user36520

Posted 2011-08-02T07:19:20.700

Reputation: 1 795

3Ugh. So disappointing: I love -XE, because I love having small files immediately dumped at the prompt, i.e. using less as a cat replacement for small files. I wish I could have -XE behaviour with scrolling on longer files … e-mailed the author in hopes this is something achievable. I suspect not. >: – ELLIOTTCABLE – 2016-01-26T21:59:25.200

5

For those who are as a newbie as me, you have to enter the following to your terminal:

export LESS=-r

or use this

export LESS=-R

you can use man less to see the difference

To have the effect persist, you can add this line to your ~/.bashrc and reopen your terminal again

Ryan Chen

Posted 2011-08-02T07:19:20.700

Reputation: 51

2

export LESS='--mouse --wheel-lines=3'

Matt Monaco

Posted 2011-08-02T07:19:20.700

Reputation: 21

Please add context to this answer (i.e. what file this should be added to or if you're intending for it to be entered directly into a terminal as a standalone command) – JW0914 – 2020-01-05T16:09:18.773

Also worth mentioning that this solution requires version 5.4.3+ of less – ivan – 2020-02-13T14:03:13.107