How do I scroll with either the keyboard or mouse? The tmux
man page indicates one must enter copy-mode to scroll. Is there a way to quickly scroll without manually entering copy-mode?

- 3,362
- 5
- 33
- 55

- 18,339
- 3
- 15
- 9
-
8What overhead are you concerned with? `copy-mode` is the way to view history (and optionally copy stuff out of it). – Chris Johnsen Nov 11 '10 at 05:48
-
3for me you can press f7 for scroll mode and q to quit – JohnMerlino Jul 25 '14 at 14:56
-
17`set -g mode-mouse on` per @chaiyachaiya's answer was the winner for me – Peter Berg Jul 21 '16 at 19:36
-
14Just run: `echo "set -g mouse on" >> ~/.tmux.conf` and you'll be able to scroll. – Noam Manos Mar 10 '20 at 08:28
-
related: https://stackoverflow.com/questions/72147360/how-does-one-set-the-mouse-on-a-remote-hpc – Charlie Parker May 06 '22 at 21:06
14 Answers
Ctrl-b then [ then you can use your normal navigation keys to scroll around (eg. Up Arrow or PgDn). Press q to quit scroll mode.
Alternatively you can press Ctrl-b PgUp to go directly into copy mode and scroll one page up (which is what it sounds like you will want most of the time)
In vi
mode (see below), you can also scroll the page up/down line by line using Shift-k and Shift-j (if you're already in scroll mode). Unshifted, the cursor moves instead of the page.
Excerpts from the man page:
tmux may be controlled from an attached client by using a key combination of a prefix key, ‘C-b’ (Ctrl-b) by default, followed by a command key.
The default command key bindings are:
[ Enter copy mode to copy text or view the history.
Function vi emacs
-------- -- -----
Half page down C-d M-Down
Half page up C-u M-Up
Next page C-f Page down
Previous page C-b Page up
Scroll down C-Down or C-e C-Down
Scroll up C-Up or C-y C-Up
Search again n n
Search again in reverse N N
Search backward ? C-r
Search forward / C-s
Plus a bunch more. Note that you have to press C-b
twice if you use that for page up since C-b
is bound as the command key. See the man page for information on prefacing a copy mode command with a repeat count.
You can set the key binding mode using Ctrl-b, then
:set-window-option mode-keys emacs
or vi
.

- 102,367
- 18
- 163
- 186
-
20I think `C-b =` is `choose-buffer` by default. Did you mean `C-b [` (which is `copy-mode` by default)? Also you can also use `C-b PageUp` to start copy-mode directly on the previous page (very handy when you know what you want to view/copy has already scrolled off the current page). – Chris Johnsen Nov 11 '10 at 05:55
-
1@Chris: In my tmux 0.8 (and its man page), `C-b =` is `scroll-mode`. [Apparently](http://tmux.cvs.sourceforge.net/viewvc/tmux/tmux/CHANGES), newer versions have dropped that. – Dennis Williamson Nov 11 '10 at 11:53
-
1Ahh, that explains it. I think I started with 1.1 which was already after `scroll-mode` had been subsumed. The OP says ‘only two instances of the word "scroll" [in the man page]’, so the version is probably one without `scroll-mode`. – Chris Johnsen Nov 11 '10 at 12:22
-
4Correct, my tmux has no scroll-mode. You need to `C-b [` to enter copy mode and then use either the emacs or vi key-bindings to scroll around. This seems like a lot of steps just to scroll, but the benefits of tmux still outweigh these annoyances. I'm on a macbook and there is no PageUp key :-\. (Also, how do I make keys with markdown like you did, Dennis?) – chadoh Nov 11 '10 at 17:11
-
49@chadoh: Try these on your Macbook: Home: fn-LeftArrow; End: fn-RightArrow; Page Up: fn-UpArrow; Page Down: fn-DownArrow. To make keycaps: `Ctrl` – Dennis Williamson Nov 11 '10 at 18:43
-
6
-
16On a macbook if you're in scroll mode you can use fn+Shift+LeftArrow to scroll up a page. – Nick Hammond May 18 '13 at 17:51
-
With vi mode-keys you can also use it's typical: C-y and C-e to scroll up/down line by line – wik Jul 29 '13 at 12:07
-
@chaiyachaiya's answer is much better (If you can bear to reach for the mouse) – Jonathan Hartley Nov 04 '13 at 09:44
-
2To escape from scroll mode, press Escape or Q. Don't get stuck like I did :) – Graham Perks Feb 04 '15 at 01:59
-
Isn't there a better way than just up and down arrows to scroll tmux? Like batch scrolling as in ctrl+b similar to VIM? – Charlie Parker Jan 26 '16 at 00:34
-
1@CharlieParker: I've expanded my answer to include some navigation key bindings. Note that you can use numeric count prefixes like you would in `vim` so (set to vi key bindings) you could press `2` then `PageUp` (or `Ctrl-b` (twice)) and you'd move up two screen fulls. – Dennis Williamson Jan 26 '16 at 00:52
-
2So much hassle just to accomplish basic stuff - why UI has to be so poor? – Dima Knivets Apr 07 '16 at 12:22
-
Is `Shift-j` and `Shift-k` line by line scrolling enabled by default? It seems like it is on my machine. – mbigras Apr 05 '17 at 16:13
-
-
@DennisWilliamson does that mean tmux is in vi mode by default? Or does it only have some of the functionality? Line by line scrolling in this case. – mbigras Apr 05 '17 at 16:18
-
@mbigras: From the man page: "mode-keys [vi | emacs] Use vi or emacs-style key bindings in copy mode. The default is emacs, unless VISUAL or EDITOR contains 'vi'." – Dennis Williamson Apr 05 '17 at 16:30
-
@DennisWilliamson thank you! Makes sense, `$echo $EDITOR #=> vim` what did you search for in the man page? For example, `:/foobar` – mbigras Apr 05 '17 at 16:32
-
-
1
-
`CTRL-B` and then `PgUp` is working fine. Then I can use `PgUp`, `PgDn` or `ArrUp`, `ArrDn`. To leave and auto scroll to the end hit `Esc` – Markus Zeller Nov 17 '18 at 16:44
-
I know this is sort of against the spirit but I want to use my mouse... – Charlie Parker Mar 25 '21 at 22:25
-
@CharlieParker: https://gist.github.com/paulodeleo/5594773 (I haven't tested this) – Dennis Williamson Jun 27 '22 at 12:57
Well, you should consider the proper way to set scrolling:
add in your ~/.tmux.conf
set -g mouse on #For tmux version 2.1 and up
or
set -g mode-mouse on #For tmux versions < 2.1
It worked for me in windows and panes. Now tmux is just perfect.
Practical tmux has more info on tmux.conf files.

- 9,308
- 25
- 112
- 167

- 4,699
- 1
- 11
- 2
-
7When I do this, mouse clicks and scrolls cause gibberish characters to be printed to the prompt area of the terminal I'm using with tmux. Any ideas? – ely Aug 01 '13 at 15:38
-
This works great for me. Now if only we can figure key bindings to do the same (maybe a screen at a time), I'll be a very happy camper. – Jonathan Hartley Nov 04 '13 at 09:45
-
41Future tmux mouse users: To save you having to scroll to the bottom again before typing, you can hit `q` to exit scroll mode. – Jezen Thomas Jan 07 '14 at 05:11
-
23Mouse scrolling works fine with this, but unfortunately I cannot use the mouse to select text anymore. Using Tilda and tmux. – friederbluemle Mar 17 '15 at 03:40
-
42Important note: This setting breaks highlighting and copying text. Use shift+click to maintain this functionality. – Shadoninja May 04 '16 at 22:50
-
-
31) we can no longer select text using clicks 2) we can't scroll into vim – pltrdy Nov 27 '17 at 15:54
-
2This worked for me, but only after killing the tmux server with `tmux kill-server`. – Blaine Lafreniere Aug 28 '18 at 22:16
-
3@pltrdy @friederbluemle @Shadoninja: with `mode-mouse on` use can still select text with **_Shift + mouse drag_** or **_Option + mouse drag_** on Mac. – ccpizza Apr 24 '19 at 20:27
-
1
-
Note for Windows Terminal (microsoft/terminal) users, this won't work until [this](https://github.com/microsoft/terminal/issues/545) issue is fixed. – Taylan Jan 02 '20 at 19:29
-
1Related: https://stackoverflow.com/questions/11832199/tmux-set-g-mouse-mode-on-doesnt-work/33336609#33336609 – Gabriel Staples Mar 26 '20 at 21:00
-
1`tmux -V` to see your tmux version. It would be nice to know how to do this within tmux too and if it was in the answer. – Charlie Parker Mar 26 '21 at 16:22
-
-
From my .tmux.conf:
# Sane scrolling
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
This enables native xterm scrolling.
-
37
-
7
-
17
-
9Check this out if you're confused about togdon's answer: http://superuser.com/questions/310251/use-terminal-scrollbar-with-tmux?lq=1 IMO, if you have only a single pane, this solution works better than the accepted answer. – thameera Apr 16 '13 at 07:48
-
2Nice, but it breaks (for me) after displaying some file using the `less` command, i.e., the mouse wheel scrolling up will display N empty lines, where N=length of file displayed with `less`. – dehmann Nov 07 '13 at 22:11
-
Works as expected in ubuntu. Pgup and Pgdn keys enable you to scroll. Thanks. – Shnkc Feb 05 '14 at 09:55
-
This is really weird. If you look at the scroll bar, it stays at the top until you start scrolling; then it shoots to the top. I am kind of glad this works, though. – dylnmc Apr 17 '15 at 07:42
-
3
-
I thought it was working at first, but in the end I had to disable it, it sometimes messes my output. – nha Jul 03 '15 at 09:15
-
2
-
2This does not work for multiple panes. It will scroll the main host terminal instead of the emulated terminals running inside of tmux – Shadoninja May 04 '16 at 22:48
-
This works for me on OS X. For `screen` I used to do something similar in my `.screenrc` as well to achieve the same effect: `termcapinfo xterm* ti@:te@` – nishanthshanmugham May 22 '16 at 07:37
-
1This, no longer seem to work. When I scroll the output is missing lines and is incomplete. – Ashesh Nov 01 '17 at 17:14
-
-
For the newest tmux 2.1, to scroll with your mouse sanely, this is the right answer:
set -g mouse on
# sane scrolling:
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"
it's not enough to just reload your .tmux.conf you need to restart your tmux, e.g. tmux kill-server && tmux
or just quit the services that are using tmux.
taken from https://github.com/tmux/tmux/issues/145
-
2
-
2the note in this answer about "not being enough to simply reload .tmux.conf helped" and exiting all tmux sessions for me (maybe kill-server would work) helped! – Colin D Jan 25 '17 at 18:05
-
3
-
It appears to forward mouse events when the mouse is clicked/scrolled/etc. if the pane is in any indirect/buffered state (just copy-mode?), and the mouse is pressing a button, scrolling, etc. The last portion covers scrolling in direct mode by switching to an indirect mode first. If not for those controls, the terminal might interpret the events as history scrolling, if at all. With that said, I don't know if I've ever been able to get my pager and Vim to scroll correctly at the same time, and I've tried a bunch of the snippets going around. – John P Jan 02 '18 at 14:13
-
you can't select and copy text with your mouse when `set -g mouse on` is enabled – chefarov Mar 19 '19 at 17:54
-
3@chefarov - per a comment on another answer, you can do this via `Shift+click` when you have mouse mode on. – Brendan Moore Mar 27 '19 at 13:23
-
-
Commands' output that's longer than the screens height, is trancated when scrolling up if `set -g mouse on` is set. – chefarov Mar 30 '19 at 18:08
In my case, just opt + UpArrow and opt + DownArrow on OSX.

- 3,838
- 3
- 29
- 47

- 321
- 2
- 3
-
@fixer1234 The question does not mention Linux at all. `tmux` can be used on OS X, too. – slhck Apr 17 '15 at 11:51
-
@slhck: Thanks. Too bleary-eyed; astigmatism kicked in. I had misread the tmux tag as a linux tag. – fixer1234 Apr 17 '15 at 16:07
-
-
This is the way I made it work, and the reasons why I think it is better than the default way.
To try it out, put all the code sections in ~/.tmux.conf
.
Step 1. Change the prefix key so you won't have to reach one bit. 'B' is seemingly a close key, but it is in the middle of the two index fingers (at 'F' and 'J', respectively). Because that shortcut is essential in tmux, C-j is much better as it involves zero hand movement (apart from hitting the key).
set -g prefix C-j
unbind C-b
bind C-j send-prefix
Step 2. 'S' (to enter copy-mode) is: 1) close (same reason as above), 2) involves the other hand (compare: the 1-2 in boxing, or the ls
command to view files in a directory), and 3) could be thought of as mnemonic for "scroll" (although the copy-mode isn't just about scrolling).
bind s copy-mode
Step 3. The last part, the actual scrolling. 'P' and 'N' are familiar for this purpose to the Emacs users. They are close, intuitive ('P' is above 'N' on the keyboard), and mnemonic ("previous" and "next"). If you just did some scrolling in Emacs, and then go to tmux, it makes sense to have those shortcuts.
However, I found that 'I' and 'K' are even better - they are even closer than 'P' and 'N', and intuitive (for the same reason); as for mnemonics - as scrolling is such a common thing to do, mnemonics won't really matter as the shortcuts will soon bypass your brain and enter the muscle memory.
bind -t emacs-copy 'p' scroll-up
bind -t emacs-copy 'n' scroll-down
bind -t emacs-copy 'i' scroll-up
bind -t emacs-copy 'k' scroll-down

- 489
- 6
- 11
I'd recommend giving a try to the tmux-better-mouse-mode plugin to solve most of your tmux mouse related issues.
It's compatible with Tmux 2.1+ and the new set-option -g mouse on
approach.

- 211
- 3
- 4
-
1Thanks, this is the best solution for me. It covers all my mouse wheel bindings that I've added manually (so I don't need them anymore), and there are two killer-features that I wanted very much: `scroll-without-changing-pane` in combination with `scroll-without-changing-pane` and `emulate-scroll-for-no-mouse-alternate-buffer`. Now my tmux usage experience is way, way better. – selurvedu Jun 05 '18 at 11:02
I searched around a lot for this and the best solution for me works as mentioned in this detailed guide: http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/
Add these bindings in ~/.tmux.conf:
set -g mode-mouse on
unbind +
bind + \
new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
swap-pane -s tmux-zoom.0 \;\
select-window -t tmux-zoom
unbind -
bind - \
last-window \;\
swap-pane -s tmux-zoom.0 \;\
kill-window -t tmux-zoom
With the above approach implemented, you can copy from panes in a window as well by zooming into each pane first using Prefix +.
One important detail that was missing with the mouse mode is to press Shift before selecting an area to copy. This will copy it to traditional terminal buffer instead of the tmux copy buffer. (https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues)

- 111
- 1
- 7
This worked for me:
vim ~/.tmux.conf
set -g mode-mouse on ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf

- 101
- 1
- 2
-
5Since the version 2.1 (18 October 2015) the option should be `set -g mouse on` – naoko Dec 27 '18 at 00:07
-
1+1 for actually providing the full path the the configuration file. @chaiyachaiya's answer would be perfect otherwise. – John McFarlane Aug 24 '19 at 08:06
-
1+1 since this solution worked without restarting the tmux server (I had important jobs running). I did detach and reattach to the tmux session though. Remember the change of `set -g mode-mouse on` to `set -g mouse on` appropriately as mentioned in the @naoko 's comment. – tu_curious Jul 21 '21 at 18:22
-
Very helpful. The sourcing of the config file was missing in other answers. Thanks! – normanius May 31 '22 at 08:13
The only thing that works for me is putting the following in ~/.tmux.conf
# Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"
(you may need to reboot for this to take effect)
Update:
I found that if you change the setting in Putty Connection > Data > Terminal-type to "putty" (used to fix some formatting issues) from "xterm" then this solution stops working.
Update 2:
Use this if you want "putty" as your terminal type: set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

- 243
- 3
- 11
-
2This one actually solves my scrolling problem in iPhone app as well. – NathaneilCapital Jun 17 '16 at 17:20
-
The latest I tried this wasn't working any more, but this worked. Strange. `set -ga terminal-overrides ',xterm*:smcup@:rmcup@'` – phocks Jul 05 '16 at 05:30
On OSX Mojave and newer, after entering copy mode with ctrl + b [, you can do:
- up arrow for line up
- down arrow for line down
- fn + up arrow for page up
- fn + down arrow for page down
- q to quit copy mode

- 103
- 4

- 191
- 1
- 2
The top answers already explain how to scroll. I'd like to add an option to avoid the need for scrolling: Pipe the output of long commands into less
. less is a program to navigate through text files.
superlongcommand | less
Then you can use vim-like bindings (d/u) or PgUp/PgDn to scroll and q
to exit. See Less Cheatsheet
Host + [ mine key is Ctrl + a the default key is Ctrl + b
after that its easy to navigate with vim config

- 2,171
- 1
- 13
- 31

- 101
- 2
- Ctrl + A - to start scrolling
- Ctrl + C - to stop scrolling

- 18,189
- 14
- 56
- 68

- 15
-
5This post is too short to be usefully answer the question. It adds very little new information to answers already posted; it says nothing about *how* to scroll (only how to change in and out of copy mode). Also, the default command prefix key combination is `Ctrl-B` (`Ctrl-A`is the default for GNU screen). – Anthony Geoghegan Oct 26 '16 at 08:50
-
3Not sure if the author of this answer even understood the question. It's unhelpful and just wrong. – Vik Mar 30 '17 at 07:53
-
2I've been looking for how to stop scrolling for so long, thanks for pointing it out! – PERR0_HUNTER Apr 09 '17 at 17:12