3. what is tmux?
tmux is a terminal multiplexer: it enables a number of
terminals (or windows), each running a separate program,
to be created, accessed, and controlled from a single
screen. tmux may be detached from a screen and continue
running in the background, then later reattached.
Wednesday, December 5, 12
9. a consistent, well-
documented command
interface, with the same
syntax whether used
interactively, as a key
binding, or from the
shell
Wednesday, December 5, 12
10. in other words
sane configuration
Wednesday, December 5, 12
14. So, how did I install
tmux?
Wednesday, December 5, 12
15. libevent
$ wget http://sourceforge.net/projects/levent/files/latest/download
$ tar xfz libevent-2.0.17-stable.tar.gz
$ cd libevent-2.0.17-stable/
$ /configure—prefix=/home/jlotito
$ make
$ make install
Wednesday, December 5, 12
16. tmux
$ wget http://sourceforge.net/projects/tmux/files/latest/download
$ tar xfz tmux-1.6.tar.gz
$ cd tmux-1.6
$ ./configure—prefix=/home/jlotito
Wednesday, December 5, 12
17. tmux cont.
$ ./configure—prefix=/home/jlotito CPPFLAGS=”-I$HOME/include”
LDFLAGS=”-static -L$HOME/include -L$HOME/lib”
$ make
$ make install
$ export PATH=~/bin:$PATH
$ tmux -V
tmux 1.6
Wednesday, December 5, 12
18. If you have permissions,
you can do it.
Wednesday, December 5, 12
25. prefix = CTRL + b
This is the default prefix
It’s run before every command
prefix d
This means type ‘CTRL + b’ and then type ‘d’.
Wednesday, December 5, 12
26. prefix d
Detaches from the current tmux session
In other words, it exits tmux
Wednesday, December 5, 12
48. Easy Pane Movement
# Movement keys, vim style
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
Wednesday, December 5, 12
49. move one pane left
prefix h
Wednesday, December 5, 12
50. Pane Resizing
# Pane resizing, vim style
bind H resize-pane -L 5
bind J resize-pane -D 5
bind K resize-pane -U 5
bind L resize-pane -R 5
Wednesday, December 5, 12
51. Try the pane resizing
Don’t forget to run this command
prefix r
Wednesday, December 5, 12
52. Let’s make resizing
easier by repeating
# Pane resizing, vim style
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
Wednesday, December 5, 12
53. resize
prefix L
-r You can hold it down, and it will keep moving
Wednesday, December 5, 12
54. Start at 1
# Windows and panes index renumbering
set -g base-index 1
setw -g pane-base-index 1
Wednesday, December 5, 12
55. Basic UI
# Colors
set -g status-fg white
set -g status-bg black
Wednesday, December 5, 12
56. Window movement
# Window Movement
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+
Wednesday, December 5, 12
60. tmux & screen notes
http://www.dayid.org/os/notes/tm.html
Wednesday, December 5, 12
61. book
http://pragprog.com/book/bhtmux/tmux
Wednesday, December 5, 12
62. web
http://tmux.sourceforge.net/
Wednesday, December 5, 12
63. we were using tmux 1.6
latest is tmux 1.7
Wednesday, December 5, 12
64. tmux configuration files now support line-continuation with a "" at the
end of a line.
* New option status-position to move the status line to the top or bottom of
the screen.
* Enforce history-limit option when clearing the screen.
* Give each window a unique id, like panes but prefixed with @.
* Add pane id to each pane in layout description (while still accepting
the old form).
* Provide defined ways to set the various default-path possibilities: ~
for home directory, . for server start directory, - for session start
directory and empty for the pane's working directory (the default). All
can also be used as part of a relative path (eg -/foo). Also provide -c
flags to neww and splitw to override default-path setting.
* Add -l flag to send-keys to send input literally (without translating
key names).
* Allow a single option to be specified to show-options to show just that
option.
* New command "move-pane" (like join-pane but allows the same window).
* join-pane and move-pane commands learn "-b" option to place the pane to
the left or above.
* Support for bracketed-paste mode.
* Allow send-keys command to accept hex values.
* Add locking around "start-server" to avoid race-conditions.
* break-pane learns -P/-F arguments for display formatting.
* set-option learns "-q" to make it quiet, and not print out anything.
new in 1.7
* copy mode learns "wrap-search" option.
* Add a simple form of output rate limiting by counting the number of
certain C0 sequences (linefeeds, backspaces, carriage returns) and if it
exceeds a threshold (current default 250/millisecond), start to redraw
the pane every 100 milliseconds instead of making each change as it
comes. Two configuration options - c0-change-trigger and
c0-change-interval.
* find-window learns new flags: "-C", "-N", "-T" to match against either or
all of a window's content, name, or title. Defaults to all three options
if none specified.
* find-window automatically selects the appropriate pane for the found
matches.
* show-environment can now accept one option to show that environment value.
* Exit mouse mode when end-of-screen reached when scrolling with the mouse
wheel.
* select-layout learns -u and -U for layout history stacks.
* kill-window, detach-client, kill-session all learn "-a" option for
killing all but the current thing specified.
* move-window learns "-r" option to renumber window sequentially in a
session.
* New session option "renumber-windows" to automatically renumber windows in
a session when a window is closed. (see "move-window -r").
* Only enter copy-mode on scroll up.
* choose-* and list-* commands all use "-F" for format specifiers.
* When spawning external commands, the value from the "default-shell" option
is now used, rather than assuming /bin/sh.
* New choose-tree command to render window/sessions as a tree for selection.
* display-message learns new format options.
* For linked-windows across sessions, all flags for that window are now
cleared across sessions.
* Lots and lots of bug fixes, fixing memory-leaks, etc.
* Various manpage improvements.
Wednesday, December 5, 12