Tmux – Et uundværligt værktøj

Skrevet af: Patrick Kerwood

Tmux er en multiplexer som GNU screen. Jeg har i mange år brugt screen men altid fundet den svær at konfigurere. Med tmux er det nemt og mere overskuelig at konfigurere indstillinger, genvejs taster, statusbar og paneler.

Tmux er som sagt en multiplexer som screen, hvor du har mulighed for nemme konfigurationer og gode plugins. Jeg har før lavet “Screen – Et uundværligt værktøj” som forklare hvad screen er og kan, så det vil jeg ikke bruge for meget tid på.

Én af ulemperne ved Tmux er at det ikke er helt så stabilt som screen. Jeg har før fået det til at crashe ved have flere vinduer åbne i samme vindue, altså delt skærmen i flere, og haft tshark kørende i dem, som kørte rigtig mange linjer igennem. Men ellers har jeg ikke oplevet noget.

Basic kommandoer

Start en ny session.
tmux

Start en ny session med et session navn.
tmux new -s session-navn

Attach til en eksisterende session.
tmux attach

Attach til en specifik named session.
tmux attach -t session-navn

List dine sessions.
tmux ls

Stop en session.
tmux kill-session -t session-navn

Side note..
Hvis du bruger et color scheme i Vim, kan du få problemer med farverne. Du kan derfor bruge “-2” parameteren (Force tmux to assume the terminal supports 256 colours.).

tmux -2

tmux -2 attach

I en session

I en tmux session, tryk på din prefix key (CTRL-b), + en af nedenstående.

Sessions
:new <enter> Create new session
s - list sessions
$ - name session
d - Deattach session

Windows (faneblade)
c - Create window
w - List windows
n - Next window
p - Previous window
, - Name window
& - Kill window

Panes (splits)
% - Vertical split
" - Horizontal split
o - Go to next pane
; - Go to previously used pane
q - Show pane numbers
x - Kill pane
+ - Break pane into window (e.g. to select text by mouse to copy)
- - Restore pane from window
q - Show pane numbers, when the numbers show up type the key to goto that pane
{ - Move the current pane left
} - Move the current pane right
z - Toggle pane zoom
arrow left - Go to the next pane on the left
arrow right - Go to the next pane on the right
arrow up - Go to the next pane on the up
arrow down - Go to the next pane on the down
space - Toggle between layouts
ctrl + arrow left - Move pane split left
ctrl + arrow right - Move pane split right
ctrl + arrow up - Move pane split up
ctrl + arrow down - Move pane split down

Min config

Jeg har ikke brugt tmux i lang tid, så min conf er stadig meget simpel. But Keep It Simple Stupid! Jeg går igennem min konfigurations fil styk for styk og forklare lidt om det. Den skal ligge i den home mappe og hedde “.tmux.conf“.

Fra standard bruger tmux “b” som prefix key, så hvis du skal lave et nyt faneblad trykker du “CTRL-b + c“. Hvis man er vant til screen, som de fleste af os, bruger man “a” som prefix key og det har man ikke lyst til at lave om på. Nedenstående linjer ændre prefix key’en til “a”.
set-option -g prefix C-a
unbind-key C-b
bind-key a send-prefix

Start faneblads nummerering fra 1 istedet for 0.
set -g base-index 1

Bing “CTRL-a + a” til at gå tilbage til sidst bruge faneblad.
bind-key C-a last-window

Bind “CTRL-a + n” til næste faneblad.
bind-key C-n next-window

Bind “CTRL-a + p” til forrige faneblad.
bind-key C-p previous-window

Denne linje skifter fra “INSERT” mode til “NORMAL” mode i VIM på 50 millisekunder. Standard er 500 millisekunder.
set-option -sg escape-time 50

Nedenstående er konfigurationen til min statusbar. Jeg vil ikke gå i dybden med den, men hvis du har prøvet noget lignende i screen vil du kunne se at det er lidt mere logisk i tmux. Læg mærke til i linje 5 er “#(tmux-mem-cpu-load –interval 2)”, det er et program som viser RAM og CPU load i status baren. tmux-mem-cpu-load skal selvfølgelig også installeres.

Installer tmux-mem-cpu-load
sudo apt-get install cmake g++ git
git clone https://github.com/thewtex/tmux-mem-cpu-load.git
cd tmux-mem-cpu-load
cmake .
make
sudo make install

set-option -g status-utf8 on
set -g status-bg black
set -g status-left-length 70
set -g status-left ' #[fg=cyan,bright][ #10H ]#[fg=colour39] Load: #(tmux-mem-cpu-load --interval 2) ['
set -g status-right '#[fg=colour39]] [ %H:%M ][ %d %b %Y ] '
set -g status-justify centre
 
set-window-option -g window-status-fg colour39
set-window-option -g window-status-current-fg colour82

Screenshot af statusbar’en.

Her er hele config’en i sin helhed.


5 jan 2016   | Alle · Ny til Linux · Programmer

Leave a Reply