Tmux

Izvor: HrOpenWiki
Inačica od 13:30, 18. rujna 2011. koju je unio/unijela Drone (razgovor | doprinosi)

(razl) ←Starija inačica | vidi trenutačnu inačicu (razl) | Novija inačica→ (razl)
Skoči na: orijentacija, traži

Tmux (kratica za terminal multiplexer) omogućuje veći broj terminala u prozoru gdje svaki vrti drugi program. Tmux je poznatiji i kao BSD-licencirana alternativa za GNU Screen. Na prvi pogled vrlo slični programi no zapravo različiti (sve informacije o tmux projektu možete naći na službenim stranicama), no najveća razlika je ipak u razvoju. Tmux se aktivno razvija dok je GNU Screen zadnju izmjenu doživio 8. kolovoza 2008. godine.

Instalacija

Arch Linux

pacman -S tmux

Debian

sudo apt-get install tmux

Fedora

yum install tmux

OpenSuse

zypper install tmux

Slackware

Potrebno je skinuti i instalirati preko tmux.SlackBuild.

Konfiguracija

Korisnička konfiguracija se nalazi pod ~/.tmux.conf dok je sistemska pod /etc/tmux.conf.

Primjer ~/.tmux.conf datoteke

# command prefix (like screen)
set -g prefix C-a
bind C-a send-prefix

# basic settings
set-window-option -g mode-keys vi # vi key
set-option -g status-keys vi
set-window-option -g utf8 on # utf8 support
set-window-option -g mode-mouse off # disable mouse

# copy mode to escape key
unbind [
bind Escape copy-mode

# move tmux copy buffer into x clipboard
bind-key C-y save-buffer /tmp/tmux-buffer \; run-shell "cat /tmp/tmux-buffer | xclip"

# splitting and cycling
set-option -g mouse-select-pane off
unbind %
bind + split-window -h # horizontal split
unbind '"'
bind - split-window -v # vertical split
bind C-j previous-window
bind C-k next-window
bind C-n new-window

# window title
set-option -g set-titles on
set-option -g set-titles-string '#S:#I.#P #W' # window number,program name,active (or not)
set-window-option -g automatic-rename on # auto name

# messages
#set-window-option -g mode-bg magenta
#set-window-option -g mode-fg black
#set-option -g message-bg magenta
#set-option -g message-fg black

# No visual activity
set -g visual-activity off
set -g visual-bell off

#next tab
bind-key -n C-right next

#previous tab
bind-key -n C-left prev

# status bar
set-option -g status-utf8 on
set-option -g status-justify right
set-option -g status-bg black
set-option -g status-fg cyan
set-option -g status-interval 5
set-option -g status-left-length 30
set-option -g status-left '#[fg=magenta]» #[fg=blue,bold]#T#[default]'
set-option -g status-right '#[fg=cyan]»» #[fg=blue,bold]###S #[fg=magenta]%R %m-%d#(acpi | cut -d ',' -f 2)#[default]'
set-option -g visual-activity on
set-window-option -g monitor-activity on
set-window-option -g window-status-current-fg white

# clock
set-window-option -g clock-mode-colour cyan
set-window-option -g clock-mode-style 24

Tipkovničke kratice

Nativno su sve tipkovničke kratice povezane preko Ctrl-b, npr. za horizontalnu razdiobu prozora Ctrl-b %. Jednom kad prozor rascjepkate na panele, panelima možete mijenjati veličinu pomoću prefix tipke (Ctrl-b, nastavi se držati Ctrl i koriste se strelice za navigaciju). Tipkovničke kratice možete i sami konfigurirati i mijenjati u svome ~/.tmux.conf kao i prefix tipku.

Pregledavanje URLova

Za pregledavanje URLova putem tmuxa morate imati instaliran i podešen urlview

bind-key u capture-pane \; save-buffer /tmp/tmux-buffer \; run-shell "$TERMINAL -e 'cat /tmp/tmux-buffer | urlview'"

Podešavanje terminala

Ako koristite 256 colour terminal trebat će te definirati ispravan terminal i za tmux. To je moguće na dva načina.

1. ~/.tmux.conf

set -g default-terminal "screen-256color" 

2. ~/.bashrc

# for tmux: export 256color
[ -n "$TMUX" ] && export TERM=screen-256color

Skrolanje

Za skrolanje u tmuxu se koristi kombinacija Shift-PageUp/Shift-PageDown. Ukoliko imate poteškoće sa skrolanjem na ovakav način, probajte ovo:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

Trikovi i savjeti

Kako bi se tmux pokrenuo zajedno s teminalom dodajte ovaj bash kod u vaš ~/.bashrc prije aliasa:

  $TERM != "screen"  && tmux && exit

primjer

 #
 # ~/.bashrc
 #
 
 # If not running interactively, don't do anything
 [[ $- != *i* ]] && return
 [[ $TERM != "screen" ]] && tmux && exit
 
 # Irrelevant from here on, but does show that things here are working from within tmux..
 alias svile="sudo vile"
 alias updatedb="sudo updatedb"
 alias nopaste="curl -F 'sprunge=<-' http://sprunge.us"
 pacman() {
         case $1 in
                 -S | -S[^sih]* | -R* | -U*)
                         /usr/bin/sudo /usr/bin/pacman-color "$@" ;;
                 *)      /usr/bin/pacman-color "$@" ;;
         esac
 }

Poveznice