Tmux
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.
Sadržaj
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 }