Tmux is a legendary terminal multiplexer. By that, you can actually get your terminal more functional by splitting it vertically or horizontally almost instantly.
tmux adalah akronim dari Terminal Multiplexer, yang sebetulnya sudah sangat self-explanatory. tmux juga merupakan program berbasis CLI (command line interface) yang gratis, open source yang memungkinkan penggunanya untuk membuat, mengatur, dan menjaga sesi terminal dari satu layar terminal saja.1
Cara kerja tmux adalah dengan membuat arsitektur server-client. Artinya, ketika kita menjalankan tmux, tmux akan membuat background process sendiri sebagai server sehingga terminal kita akan terhubung ke tmux sebagai client. Karena server-nya berjalan secara independen, sessiontmux akan bertahan (akan tetap ada) meskipun kita menutup terminal kita (seperti kitty, alacritty, ghostty, dll) atau kehilangan koneksi SSH. Untuk terhubung kembali ke tmux, kita hanya perlu reconnect dan reattach.
Selain itu, di dalam tmux, ada 3 level hirarki: Session > Window > Pane. Sebuah sesi mengelompokkan satu atau lebih window, dan setiap window menempati seluruh layar terminal dan dapat di-split ke banyak pane. Setiap pane akan menjalankan proses shell-nya masing-masing.
Perhatikan ilustrasi berikut agar lebih mudah memahami ketiga level hirarti tmux tersebut:
Untuk menjalankan tmux, kita hanya perlu mengetikkan perintah:
Terminal window
1
tmux
Maka, tmux akan membuat sesi baru dengan default nama sesuai urutan angka. Jika kita pertama kali membuka tmux, maka tmux akan membuat sesi pertama dengan nama 0.
Kita dapat melihat sesi tmux yang aktif (berikut dengan jumlah window-nya) dengan perintah:
Terminal window
1
tmuxls
tmux new session
Atau jika kita ingin membuka tmux dengan nama sesi yang kita tentukan sendiri:
Terminal window
1
tmuxnew-snama-sesi
tmux new session with custom session name
Atau misalnya kita ingin membuat sesi baru tmux, tanpa langsung memasukinya:
Terminal window
1
tmuxnew-d# untuk membuat sesi baru dengan nama default (menggunakan angka)
2
tmuxnew-snama-sesi-d# untuk membuat sesi baru dengan nama custom
Terkadang, jika jumlah pane terlalu banyak, maka ukurannya akan semakin kecil. Kita dapat memperbesar (membuatnya jadi sebesar layar terminal) dengan perintah berikut:
Terminal window
1
Ctrl+bz
Untuk mengembalikannya ke ukuran semula, kita dapat menggunakan perintah yang sama.
Kita bisa memasuki copy mode di tmux, dan ini adalah mode yang sangat bermanfaat bagi pengguna tmux, karena kita dapat melakukan banyak hal di mode ini, seperti scrolling, copy selection, paste, search, dan lain-lain.
Mengapa hal-hal tersebut (yang terdengar biasa aja) jadi spesial? Karena di tmux, pada dasarnya, kita tidak bisa melakukan semua itu kecuali jika kita masuk ke copy mode.
Untuk masuk ke copy mode:
Terminal window
1
Ctrl+b [
Sekarang, kita dapat melakukan banyak hal berikut:
1. Navigasi / Scrolling
Kita bisa menggerakkan kursos di mode ini melalui tombol-tombol berikut di keyboard:
Terminal window
1
h# ke kiri
2
l# ke kanan
3
j# ke bawah
4
k# ke atas
Atau bisa juga dengan tombol arrow di keyboard.
Jika kita ingin scrolling yang lebih cepat:
Terminal window
1
PgUp# scroll ke atas
2
PgDown# scroll ke bawah
2. Selecting
Untuk mulai menyeleksi teks:
Terminal window
1
v
3. Copying
Untuk meng-copy teks yang sudah terseleksi:
Terminal window
1
[Enter]
4. Pasting
Untuk mem-paste teks yang sudah tercopy:
Terminal window
1
Ctrl+b]
5. Searching
Kita juga bisa mencari keyword tertentu yang ada di dalam pane pada mode ini:
Terminal window
1
/# search forward
2
? # search backward
INFO
Untuk keluar dari copy mode, tekan tombol q di keyboard.
File konfigurasi tmux biasanya ada di home folder (~/.tmux.conf).
Kita bisa isi dengan berbagai konfigurasi yang kita inginkan. Misalnya, berikut ini adalah isi file konfigurasi tmux saya:
Terminal window
1
# Mengubah warna latar belakang dan teks status bar
2
set-gstatus-bggreen# Warna latar belakang status bar (gunakan kode warna atau nama warna)
3
set-gstatus-fgblack# Warna teks di status bar
4
5
set-gstatus-style"bold"
6
7
#set -g status-right "%H:%M" # Hanya menampilkan waktu
8
set-gstatus-right"#(whoami)@#H | #(pwd) "
9
10
set-option-gpane-active-border-style"fg=blue"# Warna garis pembatas aktif
11
12
bind-keyTdisplay-popup-E
NOTE
Artikel ini belum membahas tmux secara komprehensif, masih banyak fitur tmux yang tidak di-cover dalam artikel ini. Oleh karena itu, jika kalian tertarik untuk mengetahui tmux lebih dalam, silakan kunjungi dokumentasi official mereka. Semua catatan tentang tmux dapat kalian explorasi lebih lanjut di: