Belajar Tmux - Kustomisasi Status Bar & Visual Theme
Episode 9 of 28

Belajar Tmux - Kustomisasi Status Bar & Visual Theme

Menyulap status bar menjadi pusat informasi: status-left dan status-right dengan format variables, window status, warna 256 color/truecolor, serta membangun theme yang konsisten.

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

Pendahuluan

Di episode 8 sebelumnya kita mengelola banyak session dan menata workflow dengan pola satu session per project. Namun semua session itu masih tampil dengan status bar bawaan tmux yang polos. Pada episode ini kita mengubah status bar menjadi pusat informasi workspace kalian: nama session dan host, kapan window terakhir diubah, koneksi SSH, bahkan cuaca jika kalian suka — semuanya bisa ditampilkan dengan format strings dan styling.

Mengapa ini penting di dunia nyata? Status bar adalah antarmuka paling sering kalian lihat selama bekerja di tmux — ia selalu ada di bawah layar. Sebuah status bar yang baik menjawab pertanyaan-pertanyaan kecil tanpa perlu interaksi: "di session mana saya sekarang?", "window mana yang aktif?", "apakah ada proses yang berjalan?". Engineer yang menempuh waktu berjam-jam di terminal menghemat puluhan menit setiap hari hanya karena informasi tersedia tanpa mengetik apa pun. Episode ini juga menjadi fondasi untuk episode 10, di mana kita membedah format strings secara menyeluruh.

Anatomi Status Bar

Status bar tmux terdiri dari tiga bagian besar: status-left (kiri), status-right (kanan), dan di tengahnya window list — daftar window pada session aktif. Bagian tengah ini adalah yang paling informatif: ia menunjukkan nomor, nama, dan status setiap window.

BagianOptionIsi Default
Kiristatus-left[#{session_name}]
Kananstatus-rightTanggal & waktu
Tengahwindow-status-formatDaftar window
Interval refreshstatus-interval15 detik

Status bar bukan sekadar dekorasi — ia adalah dashboard. Default tmux hanya menampilkan [0] di kiri (nomor session) dan jam di kanan. Dengan kustomisasi, kalian bisa mengubahnya menjadi dashboard yang menampilkan persis informasi yang relevan dengan pekerjaan.

Membangun status-left dan status-right

Format Variables Dasar

Tmux menyediakan ratusan variabel yang bisa disisipkan ke dalam status bar dengan sintaks #{nama_variabel}. Beberapa yang paling sering dipakai:

Variabel umum untuk status bar
set -g status-left "#[bg=#313244,bold]#{session_name} "
set -g status-left "#[fg=#cdd6f4]🞄 #{host_short}"
set -g status-right "#[fg=#89b4fa]#{pane_current_command} | %H:%M"
set -g status-right "#{session_created_string}"

Perhatikan sintaks styling #[bg=...] dan #[fg=...]: ini adalah inline style yang mengubah warna teks di titik itu. Susunan kiri-menjadi kanan: status-left bisa memuat beberapa segmen yang masing-masing diwarnai berbeda, dan segmen kanan (status-right) mengisi informasi di sisi sebaliknya.

Note

Styling dengan #[...] dapat dipakai di dalam string status mana pun, tidak hanya status-left/status-right. Variabel seperti #{session_name}, #{host_short}, dan #{pane_current_command} dikenali saat status bar dirender ulang. Di episode 10 kita akan menjelajahi seluruh variabel yang tersedia serta cara membuat ekspresi bersyarat.

Interval Refresh dan Status Aktif/Non-aktif

Status bar diperbarui setiap status-interval detik (default 15). Informasi yang cepat berubah — seperti waktu — otomatis ter-refresh; informasi yang jarang berubah — seperti nama session — tidak masalah.

Selain itu, tmux membedakan window aktif (current window) dan window non-aktif. Keduanya bisa di-styling berbeda agar mata langsung tertuju ke window yang sedang kalian gunakan.

Styling window aktif vs non-aktif
set -g window-status-current-format "#[fg=black,bg=cyan,bold] #I:#W "
set -g window-status-format "#[fg=white,bg=#313244] #I:#W "
set -g window-status-separator " │ "
set -g window-status-current-style "bg=#89b4fa,fg=black"

Mengatur Warna: 256 Color dan True Color

Tmux mendukung 256 warna dan true color (24-bit). Agar tema berfungsi penuh, tiga hal harus konsisten: terminal luar, nilai TERM, dan cara tmux dijalankan.

Aktifkan 256 color & true color
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",*:Tc"
set -g status-style "bg=#11111b,fg=#cdd6f4"

Baris terminal-overrides ",*:Tc{:bash}" memberi tahu tmux bahwa terminal luar mendukung true color, sehingga warna 24-bit (format #rrggbb) dirender dengan benar. Tanpa ini, kode warna 24-bit sering direduksi ke 256 warna dan tampak "flat". Pastikan terminal kalian (Kitty, WezTerm, Ghostty, Alacritty) memang menyetel dukungan true color.

Tip

Untuk memilih palet yang konsisten, gunakan palet yang sudah matang seperti Catppuccin atau Tokyo Night — keduanya tersedia sebagai file .tmux yang tinggal di-source. Meniru palet yang sudah terbukti lebih baik daripada mencampur warna secara asal.

Gaya Border dan Pane

Selain status bar, tmux menampilkan border untuk setiap pane. Border aktif dan non-aktif bisa dibedakan dengan warna — ini membantu kalian langsung tahu pane mana yang sedang difokuskan, terutama di layout dengan banyak pane.

Border aktif vs non-aktif
set -g pane-border-style "fg=#45475a"
set -g pane-active-border-style "fg=#89b4fa,bold"

pane-active-border-style memakai warna biru untuk pane aktif, sedangkan pane-border-style memakai warna abu untuk pane non-aktif. Ini adalah salah satu pembeda visual paling efektif di layout multi-pane.

Menggunakan Nerd Font untuk Icon

Status bar terasa jauh lebih informatif jika memakai ikon. Nerd Font menyediakan ribuan glyph (panah, awan, chip, dll.) yang bisa disisipkan langsung ke string status bar. Pastikan terminal memakai font Nerd Font (misal FiraCode Nerd Font), lalu sisipkan glyph:

Status bar dengan Nerd Font
set -g status-left "#[bg=#313244,bold]  #S  "
set -g status-right "#[fg=#a6e3a1]  #(whoami)  #[fg=#89b4fa]#{host_short}  #[fg=#f38ba8]%H:%M  "
set -g status-left "#[fg=#f9e2af] #{session_name} #[fg=#89b4fa]#{window_index}:#{window_name}"

Important

Jika ikon tampil sebagai kotak atau karakter aneh, penyebabnya hampir selalu terminal yang tidak memakai Nerd Font — bukan masalah tmux. Set font terminal ke Nerd Font (bukan font biasa) di pengaturan terminal kalian.

Membangun Theme yang Konsisten

Theme yang baik bukan kumpulan warna acak — ia punya palet (warna latar, foreground, aksen, border) yang dipakai konsisten di semua elemen. Contoh berikut membangun theme Catppuccin Mocha secara manual:

~/.tmux.conf — theme Catppuccin Mocha
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",*:Tc"
set -g status-style "bg=#11111b,fg=#cdd6f4"
set -g status-left "#[bg=#89b4fa,fg=#11111b,bold]  #S  #[bg=#11111b,fg=#89b4fa]"
set -g status-right "#[fg=#a6e3a1] #(whoami) #[fg=#f9e2af]#{host_short} #[fg=#94e2d5]%H:%M "
set -g window-status-format "#[fg=#cdd6f4]  #I:#W  "
set -g window-status-current-format "#[fg=#11111b,bg=#89b4fa]  #I:#W  "
set -g window-status-separator ""
set -g pane-border-style "fg=#45475a"
set -g pane-active-border-style "fg=#89b4fa,bold"
set -g status-position bottom
set -g status-interval 5
set -g status-justify left
set -g status-bg default
set -g message-style "bg=#89b4fa,fg=#11111b"
set -g mode-style "bg=#313244,fg=#cdd6f4"

Simpan dan reload dengan tmux source-file ~/.tmux.conf atau prefix + r. Hasilnya: status bar dengan aksen biru, window aktif menonjol, dan border yang memberi tahu pane mana yang aktif.

Tip

Pecah konfigurasi theme menjadi file terpisah (misal ~/.tmux/themes/catppuccin.conf) dan source-file dari ~/.tmux.conf. Dengan cara ini kalian bisa berganti theme hanya dengan mengubah satu baris — kita akan bahas konfigurasi modular lebih dalam di episode 17.

Kesalahan Umum (Common Pitfalls)

  1. Warna tampil flat atau berubah karena true color tidak diaktifkan. Solusi: tambahkan set -ag terminal-overrides ",*:Tc{:bash}" dan pastikan terminal luar mendukung true color.
  2. Ikon Nerd Font tampil sebagai kotak. Ini masalah font terminal, bukan tmux. Set font terminal ke Nerd Font.
  3. Menulis variabel dengan sintaks salah. Variabel harus dalam bentuk #{nama} dengan kurung kurawal. #{session_name} benar; #{session} tidak dikenali.
  4. Lupa me-reload config. ~/.tmux.conf dibaca saat server pertama dibuat. Selalu tmux source-file ~/.tmux.conf atau prefix + r setelah edit.
  5. Menggunakan warna 24-bit di terminal yang hanya mendukung 256. Hasilnya mendekati warna asli tetapi tidak persis. Jika presisi warna penting, pastikan terminal luar mendukung true color.
  6. Terlalu banyak segmen di status bar. Status bar yang penuh sesak sulit dibaca. Pilih 3–5 informasi paling penting saja.

Penutup

Episode ini mengubah status bar polos menjadi dashboard informasi: status-left dan status-right dengan variabel dan inline styling, window-status-format untuk daftar window, warna 256/true color yang konsisten, gaya border aktif/non-aktif, serta ikon Nerd Font. Kalian juga membangun theme yang konsisten dan memahami pentingnya terminal-overrides, status-interval, dan status-position.

Poin yang harus kalian bawa:

  • Status bar adalah dashboard — isi dengan informasi yang benar-benar berguna.
  • #[...] menyuntikkan styling inline ke string status.
  • status-interval mengontrol frekuensi refresh.
  • Konsistensi warna (palet) lebih penting daripada jumlah warna.
  • True color butuh dukungan terminal + terminal-overrides.

Semua format yang kita pakai di episode ini (#{session_name}, #{host_short}, dll.) baru permukaan dari kekuatan format strings tmux. Di episode 10 selanjutnya kita membedah format strings, variables & komputasi — seluruh variabel yang tersedia, ekspresi bersyarat #{==:...} dan #{?#...}, serta cara membuat variabel kustom dengan set-environment. Sampai jumpa di episode 10!

Belajar Tmux - Kustomisasi Status Bar & Visual Theme | Belajar Tmux