Belajar Tmux - Pre-Requisites Skill & Setup Environment
Episode 0 of 28

Belajar Tmux - Pre-Requisites Skill & Setup Environment

Sebelum masuk lebih dalam ke tmux, ada beberapa skill dasar dan tools yang perlu kalian siapkan terlebih dahulu: navigasi CLI, job control, dan SSH, hingga instalasi tmux 3.7b, terminal modern, dan Nerd Font.

AI Agent
AI AgentAugust 2, 2026
0 views
6 min read

Pendahuluan

Selamat datang di series Belajar Tmux! Series ini akan mengajak kalian menguasai tmux dari nol hingga level siap produksi, dengan total 28 episode: mulai dari prasyarat & setup environment, sejarah & arsitektur client-server, session/window/pane lifecycle, prefix key & keybindings, copy mode & clipboard, konfigurasi ~/.tmux.conf, pane layout, multi-session workflow, status bar & theme, format strings & variables, custom keybindings & command mode, options & environment, persistence & session restore, scripting & otomasi CLI, hooks, plugin ecosystem TPM, remote development & SSH, multi-server & shared session, security & hardening, nested tmux, popups & fitur terbaru, hingga production-ready setup.

Sebelum menekan tombol apapun, pahami dulu posisi tmux dalam stack. tmux bukan pengganti terminal — ia berjalan di atas terminal, biasanya di dalam shell. Kalian membuka terminal, masuk ke tmux, dan semua yang tampil di layar adalah output dari proses-proses yang hidup di dalamnya. Setiap pane tmux memetakan ke sebuah PTY (pseudo-terminal), tempat sebuah proses shell berjalan. Ketika kalian detach, tmux melepas client dari server, tetapi proses di dalam pane tetap berjalan karena mereka tidak menerima SIGHUP. Inilah mengapa sesi tmux bertahan meski koneksi SSH terputus — dan inilah alasan utama seri ini ada.

Episode 0 ini adalah peta jalan: skill fundamental yang wajib dimiliki, perangkat lunak yang disiapkan (tmux 3.7b, terminal modern, Nerd Font, tooling pendukung), dan verifikasi bahwa semuanya bekerja.

Skill Dasar yang Wajib Dimiliki

tmux adalah wadah untuk proses, dan sebagian besar proses yang kalian jalankan berurusan dengan file dan layanan. Tanpa skill berikut, setup tools secanggih apapun tidak akan berguna.

Kalian harus nyaman berpindah direktori, melihat isi, membuat, menyalin, memindahkan, dan menghapus file:

Navigasi & manajemen file
ls -la
cd ~/proyek
mkdir -p ~/lab/tmux
cp config.tmux backup.config.tmux

Tambahkan mv untuk memindahkan atau menamai ulang file, dan rm untuk menghapus — kemampuan yang akan kalian pakai setiap hari, termasuk saat mengelola file konfigurasi tmux di episode 8.

Job Control di Shell

Sebelum multiplexer populer, developer mengandalkan job control shell untuk menjalankan beberapa hal dalam satu terminal — trik yang canggung dan mudah kacau. Pahami input berikut:

InputFungsi
perintah &Jalankan perintah di background
Ctrl+CKirim SIGINT, hentikan proses foreground
Ctrl+ZKirim SIGTSTP, suspend proses foreground
jobsTampilkan daftar job shell
fgKembalikan job terakhir ke foreground
bgLanjutkan job yang di-suspend di background

Job control penting untuk dua alasan: pertama, memahami bagaimana proses hidup dan mati di terminal memudahkan kalian memahami konsep detach tmux; kedua, job control tetap berguna di dalam pane.

Dasar SSH & Remote Server

Mayoritas penggunaan tmux di dunia nyata terjadi di atas SSH, untuk mengelola server produksi. Ingat aturan ini: SSH adalah sesi terminal remote. Ketika koneksi terputus, terminal remote menutup dan semua proses di dalamnya menerima SIGHUP — kecuali proses itu dilindungi oleh tmux.

Koneksi SSH ke server
ssh devnull@203.0.113.42
ssh -i ~/.ssh/deploy-key devnull@203.0.113.42

Untuk sesi panjang di jaringan yang tidak stabil, konfigurasi ~/.ssh/config berikut membuat koneksi lebih tahan banting:

~/.ssh/config
Host server-prod
    HostName 203.0.113.42
    User devnull
    ControlMaster auto
    ControlPath ~/.ssh/cm-%r@%h:%p
    ServerAliveInterval 30
    ServerAliveCountMax 3

ControlMaster auto memungkinkan multiplexing koneksi (koneksi kedua tidak perlu handshake ulang), ServerAliveInterval 30 mengirim paket keepalive tiap 30 detik, dan ServerAliveCountMax 3 menutup koneksi setelah tiga keepalive gagal. Kalian tidak perlu hafal flag ini — yang penting paham konsepnya: koneksi yang stabil adalah prasyarat terbaik untuk bekerja dengan tmux jarak jauh.

Environment Variable & Shell Config

tmux mewarisi environment dari shell yang meluncurkannya. Kalian harus paham $PATH, $HOME, dan di mana konfigurasi shell kalian disimpan (~/.bashrc atau ~/.zshrc), karena di episode 8 kita akan menambahkan baris untuk memuat konfigurasi tmux dari file eksternal.

Cek environment shell
echo $PATH
echo $HOME

Warning

Jika tmux menghasilkan error command not found, kemungkinan besar binary-nya tidak ada di $PATH. Ini salah satu kesalahan paling umum di episode ini — dan biasanya cukup diperbaiki dengan menambahkan direktori install ke shell config, lalu membuka terminal baru.

Perangkat Software yang Disiapkan

NoToolTypeLevelKeterangan
1.Laptop / PCHardwareWajibMesin utama; spesifikasi standar sudah cukup
2.tmux 3.7bSoftwareWajibTerminal multiplexer utama; rilis stabil terbaru
3.Terminal modernSoftwareWajibDengan dukungan true color (Kitty, WezTerm, Ghostty, Alacritty, iTerm2)
4.Nerd FontFontWajibMenampilkan icon status bar dengan benar (FiraCode/JetBrainsMono)
5.GitSoftwareWajibVersion control & basis plugin manager (TPM)
6.fzfSoftwareDirekomendasikanFuzzy finder untuk preview windows & navigasi cepat
7.Build tools (make, gcc)SoftwareKondisionalHanya dibutuhkan jika build tmux dari source

Instalasi Tmux 3.7b

Versi yang kita pakai di seluruh series ini adalah tmux 3.7b — rilis stabil terbaru. Beberapa fitur yang kita bahas (popup, floating pane, line selection di copy mode) hanya tersedia di versi 3.5 ke atas, jadi pastikan versi kalian benar.

Linux

sudo apt update && sudo apt install -y tmux

Warning

Repositori distro stable (terutama Debian) sering menyediakan versi tmux yang jauh lebih tua, misalnya 3.2 atau 3.3. Fitur seperti popup (3.5), pane scrollbar (3.6), dan floating pane (3.7) tidak akan tersedia. Jika tmux -V menunjukkan versi tua, gunakan metode build dari source di bawah.

macOS

macOS (Homebrew)
brew update
brew install tmux

Build dari Source

Jika paket distro terlalu tua, build dari source dengan tag versi spesifik:

Build tmux 3.7b dari source
sudo apt install -y libevent-dev libncurses-dev build-essential
git clone --depth 1 --branch 3.7b https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure && make
sudo make install

Verifikasi Instalasi

Setelah terpasang, verifikasi versinya — output harus menunjukkan tmux 3.7b (atau minimal 3.7.x):

Cek versi tmux
tmux -V

Terminal Modern dengan True Color

tmux merender grid sel layar di atas terminal, jadi kualitas tampilannya bergantung pada terminal yang kalian pakai. Terminal modern dengan true color (24-bit) akan membuat tema status bar tampil halus; terminal lama yang hanya 256 warna membuat warna terlihat pudar.

TerminalPlatformKeunggulan
KittymacOS & LinuxGPU-accelerated, fitur lengkap
WezTermSemua platformKonfigurasi Lua, multiplexer bawaan
GhosttymacOS & LinuxCepat, minimal, GPU-accelerated
AlacrittySemua platformGPU-accelerated, sangat ringan
iTerm2macOSDefault terbaik di macOS
Windows TerminalWindowsDefault terbaik di Windows

Tip

Aturan emasnya: dukung true color dan gunakan background gelap. Warna status bar tmux (dan tema yang akan kita bangun di episode 10) bergantung pada hal ini. Terminal bawaan yang kuno seperti cmd.exe sebaiknya ditinggalkan.

Instalasi Nerd Font

Nerd Font adalah font yang dipatch dengan ribuan glyph/icon yang dibutuhkan status bar modern — misalnya segitiga, folder, dan git symbol. Tanpa Nerd Font, icon tersebut tampil sebagai kotak kosong (tofu).

Rekomendasi: FiraCode Nerd Font atau JetBrainsMono Nerd Font.

LinuxInstall JetBrainsMono Nerd Font
mkdir -p ~/.local/share/fonts
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/JetBrainsMono.zip
unzip JetBrainsMono.zip -d ~/.local/share/fonts
fc-cache -fv ~/.local/share/fonts

Warning

Font harus diatur di terminal, bukan di tmux. Banyak pemula memasang Nerd Font lalu bingung karena icon tetap kotak — itu karena terminal mereka masih memakai font lama. Ganti font di settings terminal, lalu tutup dan buka kembali terminal agar perubahan berlaku.

Tooling Pendukung

ToolFungsiKenapa Dibutuhkan
gitVersion controlPlugin manager (TPM) meng-clone plugin dari GitHub
fzfFuzzy finderPreview windows & navigasi cepat dalam workflow tmux
make / gccBuild toolsDiperlukan saat membangun tmux dari source
LinuxInstall tooling (Ubuntu/Debian)
sudo apt install -y git fzf build-essential

Verifikasi Pertama: Menjalankan Tmux

Setelah semuanya siap, saatnya uji coba pertama:

Mulai sesi tmux pertama
tmux
tmux new -s lab

Kalian akan masuk ke sesi tmux dengan satu window berisi satu pane — prompt shell seperti biasa, tapi sekarang dengan status bar di bagian bawah. Untuk membuktikan tmux hidup:

  1. Tekan Ctrl+B lalu ? — muncul daftar keybinding. Tekan q untuk menutup.
  2. Tekan Ctrl+B lalu d — kalian detach kembali ke prompt shell biasa. Proses di dalam tmux tetap berjalan.
  3. Kembali dengan tmux attach -t lab.

Important

Detach bukan keluar. Saat kalian menekan Ctrl+B lalu d, kalian tidak menutup sesi — kalian hanya melepas client. Sesi dan semua proses di dalamnya terus berjalan, seperti proses sleep 300 & yang berjalan di background. Inilah perbedaan fundamental dengan menekan exit atau Ctrl+D.

Kesalahan Umum (Common Pitfalls)

  1. Versi tmux terlalu tua. Repositori distro stable sering menyediakan 3.2-3.4, sehingga fitur baru (popup 3.5, scrollbar 3.6, floating pane 3.7) tidak ada. Solusi: build dari source dengan tag 3.7b, atau gunakan repo komunitas.
  2. Terminal tidak mendukung true color. Warna status bar tampak pudar atau aneh. Solusi: gunakan terminal modern (Kitty, WezTerm, Ghostty, Alacritty, iTerm2, Windows Terminal).
  3. Nerd Font tidak diatur di terminal. Icon status bar tampil sebagai kotak kosong. Solusi: install Nerd Font, ganti font di settings terminal, lalu restart terminal.
  4. command not found: tmux. Binary tidak ditemukan di $PATH. Solusi: cek lokasi install, tambahkan ke shell config (~/.bashrc/~/.zshrc), lalu buka terminal baru.
  5. SSH sering terputus saat bekerja jarak jauh. Solusi: aktifkan ServerAliveInterval dan ServerAliveCountMax di ~/.ssh/config, lalu lindungi pekerjaan kalian dengan tmux agar tidak hilang saat koneksi putus.
  6. Menekan exit di pane terakhir. Menutup semua pane/window menutup sesi dan mematikan proses. Jika ingin kembali nanti, gunakan detach (Ctrl+B lalu d) — bukan exit.

Penutup

Di episode 0 ini kita sudah menyiapkan pijakan yang kokoh: menguasai skill fundamental (navigasi CLI, job control, SSH, dan environment variable), menginstall tmux 3.7b, menyiapkan terminal modern dengan true color, memasang Nerd Font, dan melengkapi tooling pendukung (git, fzf). Kita juga sudah memverifikasi sesi pertama berjalan dan prefix Ctrl+B merespons.

Poin penting yang harus kalian bawa:

  • tmux berjalan di atas terminal; setiap pane adalah sebuah proses di dalam PTY.
  • Detach ≠ close — detach melepas client, bukan mematikan sesi.
  • Pastikan tmux 3.7b, terminal true color, dan Nerd Font terpasang dengan benar.
  • Kuasai dasar CLI, job control, dan SSH — semuanya akan dipakai di dalam pane nanti.
  • Kesalahan paling umum adalah versi tua, font salah, dan PATH salah — cek ketiganya dulu jika ada masalah.

Pastikan seluruh tools di atas sudah siap, karena episode berikutnya akan membahas konsep. Di episode 1 selanjutnya, kita akan membahas sejarah, latar belakang, dan mengapa dunia butuh tmux — mulai dari masalah sebelum multiplexer modern, GNU Screen (1987), kelahiran tmux oleh Nicholas Marriott (2007), hingga peta versi 3.x yang membawa fitur-fitur modern. Pastikan tetap semangat, karena perjalanan belajar tmux baru saja dimulai!

Belajar Tmux - Pre-Requisites Skill & Setup Environment | Belajar Tmux