Belajar Zellij - Status Bar, Tab Bar & Theme Customization
Episode 11 of 29

Belajar Zellij - Status Bar, Tab Bar & Theme Customization

mengonfigurasi tab-bar, status-bar, dan compact-bar dengan tooltip, memahami theme spec terbaru, tema bawaan dracula dan catppuccin, serta custom theme dan auto-switch gelap terang di Zellij 0.44.

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

Pendahuluan

Selamat datang di episode 11 series Belajar Zellij! Dua episode terakhir membentuk cara kalian mengoperasikan Zellij: keybinding yang personal di episode 9, dan layout yang deterministik di episode 10. Sekarang tibalah bagian yang paling terlihat: Status Bar, Tab Bar, dan Theme Customization. Ini bukan sekadar kosmetik — antarmuka yang nyaman dibaca menentukan seberapa cepat mata kalian menemukan informasi di tengah sepuluh pane.

Ada empat area yang akan kalian kuasai: (1) plugin UI bawaan Zellij — tab-bar, status-bar, dan compact-bar — beserta cara mengonfigurasinya, (2) tooltip keybinding pada compact-bar yang hadir di 0.43, (3) theme spec terbaru dari 0.42 dengan komponen-komponen UI yang terdefinisi, dan (4) tema bawaan, custom theme di ~/.config/zellij/themes/, serta auto-switch gelap-terang theme_dark/theme_light dari 0.44.

Mengapa bab ini penting? Sebagian besar keindahan Zellij — dan sebagian besar kebingungan pemula — bersumber dari baris-baris UI di atas dan bawah layar. Tab-bar memberi tahu kalian berada di tab mana, status-bar membisikkan keybinding yang tersedia, dan tema membuat semua itu konsisten dengan editor serta terminal kalian. Menguasai bagian ini berarti workspace yang informatif tanpa berisik.

Satu hal yang menyenangkan dari antarmuka Zellij: hampir semua perubahannya bersifat live. Konfigurasi dipantau terus-menerus oleh Zellij, jadi mengganti tema atau menambah tooltip langsung terlihat tanpa restart session. Ini membuat eksperimen sangat murah — kalian bisa mengubah warna berpuluh kali sampai menemukan kombinasi yang tepat tanpa pernah meninggalkan workspace. Di akhir episode ini, kalian akan memiliki antarmuka yang informatif, rapi, dan konsisten, siap melangkah ke episode 12 tentang opsi dan environment. Mari mulai.

Plugin UI: tab-bar, status-bar, dan compact-bar

Antarmuka Zellij bukan bagian dari server utama — ia terdiri dari plugin yang dimuat lewat block plugins di config.kdl. Ini desain yang penting untuk dipahami: setiap elemen UI bisa diganti, disesuaikan, atau bahkan dinonaktifkan. Tiga plugin yang paling sering kalian lihat adalah tab-bar (default di atas), status-bar (default di bawah), dan compact-bar — varian minimal yang hanya menampilkan nama session, mode aktif, dan tab.

Block plugins di config.kdl
plugins {
    tab-bar location="zellij:tab-bar"
    status-bar location="zellij:status-bar"
    compact-bar location="zellij:compact-bar"
}

Perhatikan bahwa atribut location pada block ini menunjuk sumber plugin — alias bawaan seperti zellij:tab-bar — bukan posisi layar. Tab-bar menampilkan diri di bagian atas dan status-bar di bagian bawah sebagai perilaku bawaan masing-masing plugin. Sejak 0.41, status-bar didesain ulang menjadi satu baris yang lebih ringkas dan sadar akan preset keybinding: ia menuntun kalian menelusuri chord key seperti Ctrl p lalu ?, serta menampilkan indikator floating pane. Untuk mendapatkan status-bar gaya lama, jalankan Zellij dengan layout classic.

Note

Mengganti location pada block plugins berarti mengganti implementasi elemen tersebut, bukan memindahkannya. Kalian bisa menunjuk ke plugin kustom WASM kalian sendiri (topik episode 15-16) — ini salah satu alasan mengapa Zellij disebut terminal workspace yang dapat diperluas hingga ke setiap piksel antarmukanya.

Menyembunyikan dan Mengganti Layout UI

Tidak semua orang butuh status-bar penuh setiap saat. Zellij menyediakan beberapa layout bawaan untuk mengatur seberapa banyak UI yang ditampilkan, dan semuanya bisa dipilih lewat flag --layout atau opsi default_layout.

zellij --layout disable-status-bar

Layout compact memuat compact-bar — sebaris tipis di bagian bawah yang menampilkan nama session, mode aktif, dan tab yang terbuka. Layout disable-status-bar menghilangkan status-bar sama sekali sehingga seluruh piksel layar menjadi milik pane. Layout classic mengembalikan status-bar dua baris gaya lama. Kalian bisa menetapkan salah satunya sebagai default lewat opsi default_layout, atau memuatnya per-session. Untuk mengatur tampilan lebih granular, gabungkan dengan opsi global seperti simplified_ui true yang meminta plugin menampilkan UI tanpa glyph panah — berguna jika Nerd Font belum tersedia.

LayoutKonten UICocok untuk
defaulttab-bar + status-barPenggunaan umum
compactcompact-barLayar kecil, fokus penuh
disable-status-barhanya tab-barLayar sempit, minimal
classicstatus-bar dua barisMigrasi dari versi lama

Semua layout UI ini tetap bisa dikombinasikan dengan tema dan opsi lain. Layout compact, misalnya, tetap menghormati tema yang kalian pilih — theme spec 0.42 berlaku untuk seluruh plugin yang digambar, apa pun bar yang dipakai. Untuk kontrol yang lebih halus, opsi global seperti simplified_ui true meminta plugin menampilkan UI tanpa glyph dekoratif (termasuk panah), dan opsi hide_session_name menyembunyikan nama session dari tampilan tab-bar. Dengan memilih layout yang tepat dan menggabungkannya dengan opsi tampilan, kalian bisa membuat antarmuka setipis mungkin tanpa kehilangan informasi penting.

Tooltip Keybinding pada compact-bar (0.43)

Salah satu keluhan paling umum terhadap Zellij: status-bar yang selalu menampilkan hint keybinding memakan ruang. 0.43 menjawabnya dengan tooltip untuk compact-bar — hint tidak lagi selalu tampil, melainkan muncul ketika dibutuhkan. Secara default tooltip tampil otomatis ketika kalian memasuki mode non-basis (misalnya mode Pane atau Tab), lalu menghilang. Kalian juga bisa men-trigger-nya manual dengan satu keybinding.

Mengonfigurasi tooltip pada compact-bar
plugins {
    compact-bar location="zellij:compact-bar" {
        tooltip "F1"
    }
}

Dengan konfigurasi di atas, menekan F1 memunculkan hint keybinding kapan saja, dan hint otomatis muncul ketika mode berubah. Ini memberikan yang terbaik dari dua dunia: layar bersih saat bekerja, dan bantuan selalu ada satu ketukan lagi. Untuk kalian yang memakai status-bar penuh, konfigurasi tooltip tidak relevan — status-bar sudah menampilkan hint secara permanen.

Tip

Kombinasi compact-bar dengan tooltip adalah pilihan terbaik untuk workflow keyboard-only yang sudah hafal shortcut: layar kerja maksimal, hint tetap terjangkau saat ragu. Mulailah dengan default_layout "compact", lalu pindah ke compact-bar + tooltip setelah beberapa minggu menggunakan Zellij.

Theme Spec Baru (0.42)

Mulai versi 0.42, Zellij memperkenalkan theme definition spec baru yang jauh lebih ekspresif daripada pemetaan warna sederhana. Alih-alih mendefinisikan selusin warna lalu berharap UI menggunakannya dengan benar, tema sekarang didefinisikan berdasarkan komponen UI — elemen-elemen yang benar-benar digambar oleh plugin. Setiap komponen menerima enam warna: base, background, dan empat emphasis_0 sampai emphasis_3.

Definisi tema dengan theme spec 0.42
themes {
    arman-night {
        text_unselected {
            base 200 200 200
            background 20 22 30
            emphasis_0 255 255 255
            emphasis_1 160 160 160
            emphasis_2 120 120 120
            emphasis_3 90 90 90
        }
        ribbon_selected {
            base 30 30 46
            background 137 180 250
            emphasis_0 255 255 255
            emphasis_1 200 200 200
            emphasis_2 150 150 150
            emphasis_3 100 100 100
        }
    }
}

Komponen inti yang perlu kalian kenal: text_unselected dan text_selected untuk teks biasa (termasuk indikator modifier di status-bar), ribbon_unselected dan ribbon_selected untuk tab dan pill mode, frame_selected dan frame_unselected untuk garis tepi pane, serta table_* dan list_* untuk widget daftar seperti session-manager. Warna bisa ditulis sebagai triple u8 true color (contoh di atas), string hex seperti "#16161D", atau satu u8 untuk warna 256. Peraturan yang wajib diingat: jika satu komponen dideklarasikan, seluruh warnanya harus lengkap — deklarasi yang setengah-setengah ditolak Zellij saat startup.

Important

Rule emas theme spec 0.42: komponen yang dideklarasikan harus lengkap enam warna, atau Zellij menolak config dengan error. Ini disengaja — komponen yang parsial hanya akan menghasilkan kontras yang aneh dan teks yang tidak terbaca. Kalau kalian hanya ingin mengubah satu aspek, salin seluruh deklarasi komponen itu, ubah satu warna, dan biarkan sisanya.

Tema Bawaan dan Custom Theme

Zellij membundel puluhan tema bawaan yang bisa dipakai tanpa konfigurasi tambahan. Dua yang paling populer di komunitas adalah dracula dan catppuccin — termasuk catppuccin-latte untuk varian terang. Pilih dengan opsi theme di root config.kdl:

Memilih tema bawaan
theme "dracula"
theme "catppuccin"
TemaKarakter
draculaUngu gelap khas, kontras tinggi
catppuccinPastel lembut, populer di neovim ecosystem
catppuccin-latteVarian terang dari catppuccin
nordBiru dingin ala Arctic
defaultTema bawaan Zellij

Untuk tema kustom, kalian punya dua pilihan: mendefinisikan block themes langsung di config.kdl (cara tercepat untuk iterasi karena di-load ulang secara live), atau menyimpan satu file per tema di direktori ~/.config/zellij/themes/ — lokasi persisnya bisa dicek dengan zellij setup --check. Setiap file di direktori itu otomatis tersedia sebagai tema, lengkap dengan node themes di dalamnya. Untuk menerapkan tema tanpa menyentuh config, gunakan zellij options --theme dracula saat memulai session.

Cara paling praktis membuat tema kustom adalah memulai dari definisi yang sudah jadi. Jalankan zellij setup --dump-config lalu salin block themes yang ada sebagai titik awal, atau buka salah satu file di direktori themes untuk melihat pola komponen yang lengkap. Karena config di-reload secara live, taruh tema percobaan langsung di config.kdl untuk iterasi cepat — ganti warna, simpan, lihat hasilnya seketika. Setelah dirasa cocok, pindahkan definisi ke file terpisah di ~/.config/zellij/themes/ agar config utama tetap ramping dan tema mudah dipindahkan antar mesin lewat dotfiles. Ingat aturan emas dari theme spec: satu komponen yang dideklarasikan berarti seluruh warnanya harus lengkap, jadi salin deklarasi utuh lalu ubah satu per satu.

Auto-Switch Tema Gelap Terang (0.44)

Fitur paling menarik untuk konsistensi visual datang dari 0.44: auto-switch tema berdasarkan mode gelap/terang. Zellij mendukung protokol CSI 2031 — terminal modern mengirimkan sinyal ketika sistem operasi berpindah antara tema gelap dan terang, dan Zellij meneruskannya. Dengan dua opsi baru, kalian bisa menetapkan tema untuk masing-masing kondisi:

Auto-switch tema gelap dan terang
theme "dracula"
theme_dark "dracula"
theme_light "catppuccin-latte"

Ketika terminal melaporkan mode gelap, Zellij memakai theme_dark; ketika terang, theme_light menggantikannya. Opsi theme tetap berlaku sebagai tema dasar bagi kasus tanpa sinyal. Untuk terminal yang belum mendukung CSI 2031, Zellij menyediakan kontrol manual: zellij action toggle-theme, zellij action set-dark-theme, dan zellij action set-light-theme — sekaligus meneruskan instruksi ke aplikasi di dalam pane yang ikut memintanya.

Perlu kalian ingat bahwa auto-switch hanya bermakna jika terminal benar-benar mengirim sinyal tema; tanpa itu, theme_dark dan theme_light hanya terpakai lewat aksi manual. Pastikan pula kedua tema tersebut benar-benar ada di tema bawaan atau direktori themes, dan Nerd Font terpasang — tanpa Nerd Font, indikator dan glyph tema tidak akan tampil dengan baik apa pun tema yang dipilih. Dengan semua syarat itu terpenuhi, Zellij kalian akan mengikuti mode gelap-terang sistem secara otomatis, sinkron dengan editor dan terminal.

Kesalahan Umum (Common Pitfalls)

  1. Deklarasi komponen tema yang tidak lengkap. Menulis text_unselected tanpa emphasis_2 membuat Zellij menolak config. Solusi: lengkapi keenam warna, atau hapus komponen itu agar memakai default.
  2. Menyimpan file tema di direktori yang salah. Tema di lokasi yang tidak dikenali tidak akan muncul di daftar. Solusi: letakkan di ~/.config/zellij/themes/ dan verifikasi dengan zellij setup --check.
  3. Salah memahami location pada block plugins. location adalah sumber plugin, bukan posisi di layar. Untuk menyembunyikan bar, hapus barisnya atau pakai layout seperti compact dan disable-status-bar.
  4. Mengandalkan auto-switch tanpa dukungan terminal. Jika terminal tidak mengirim sinyal tema, theme_dark/theme_light tidak akan terpicu. Solusi: gunakan zellij action toggle-theme untuk kontrol manual.
  5. Mengganti tema tapi lupa Nerd Font. Tema yang indah tetap tampil rusak jika glyph ikon tidak didukung font. Solusi: pastikan Nerd Font terpasang dan di-set sebagai font terminal, seperti yang disiapkan di episode 0.

Warning

Block themes dan direktori themes adalah dua tempat yang bisa saling menimpa. Jika tema dengan nama yang sama ada di keduanya, definisi mana yang menang bergantung urutan pemuatan. Hindari ambiguitas dengan memakai satu lokasi saja — idealnya direktori ~/.config/zellij/themes/ agar config tetap ramping dan mudah disinkronkan lewat dotfiles.

Penutup

Di episode 11 ini kalian telah merombak tampilan Zellij dari ujung atas hingga ujung bawah: mengenal plugin UI tab-bar, status-bar, dan compact-bar beserta block plugins, mengonfigurasi tooltip keybinding pada compact-bar dari 0.43, memahami theme spec 0.42 yang berbasis komponen, memilih tema bawaan seperti dracula dan catppuccin, membuat custom theme di ~/.config/zellij/themes/, hingga memanfaatkan auto-switch theme_dark/theme_light dari 0.44.

Poin yang harus kalian bawa:

  • UI Zellij adalah plugin — bisa diganti, disesuaikan, dan disembunyikan.
  • compact-bar + tooltip = layar bersih dengan bantuan satu ketukan.
  • Theme spec 0.42 berbasis komponen; deklarasi harus lengkap.
  • Tema kustom disimpan per file di ~/.config/zellij/themes/.
  • Auto-switch gelap-terang butuh terminal yang mengirim sinyal tema.

Antarmuka kalian kini tidak hanya nyaman dipakai, tetapi juga konsisten dengan ekosistem editor. Di episode 12 berikutnya, kita menyelaraskan perilaku inti: Options & Environment Management — mouse_mode, scroll_buffer_size, copy_command, default_mode, default_layout, session_serialization, hingga pengelolaan environment dan working directory per pane. Sampai jumpa di episode 12!

Belajar Zellij - Status Bar, Tab Bar & Theme Customization | Belajar Zellij