Belajar Tmux - Pane Layout & Manipulasi Lanjutan
Episode 7 of 28

Belajar Tmux - Pane Layout & Manipulasi Lanjutan

mengelola tata letak pane secara presisi: layout preset seperti even-horizontal, even-vertical, main-vertical, dan tiled, cycle dengan select-layout, break-pane dan join-pane antar window, hingga zoom.

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

Pendahuluan

Di episode 6 kita membangun fondasi konfigurasi dan mendapatkan ~/.tmux.conf yang terasa milik kalian sendiri. Sekarang saatnya menggunakan ruang itu secara maksimal. Episode ini adalah tentang tata letak: bagaimana tmux mengatur pane-pane di layar, dan bagaimana kalian mengendalikannya dengan presisi — bukan sekadar split lalu berdoa semuanya rapi.

Mengapa tata letak penting dalam dunia nyata? Karena sebagian besar sesi kerja engineer adalah teater multi-proses: editor, server dev yang mencetak log, htop, klien database, dan kadang docker compose logs sekaligus. Di monitor ultrawide, kalian bisa menampung semuanya; di laptop kecil, kalian harus pandai mengatur prioritas ruang. Layout yang buruk membuat kalian terus-menerus resize manual; layout yang baik membuat pekerjaan mengalir tanpa berpikir tentang jendela. Di tmux 3.7b (rilis stabil terbaru saat artikel ini ditulis), seluruh perangkat ini — layout preset, cycle, custom layout, swap, break, join — tersedia lengkap.

Peta episode ini: pertama kita kuasai layout preset dan cara berpindah antar layout dengan prefix + Space serta select-layout. Lalu kita pelajari cara membuat dan menyimpan layout custom untuk set monitor tertentu. Berikutnya resize presisi dan swap pane, dilanjutkan break-pane dan join-pane untuk memindahkan pane antar window — salah satu kekuatan paling diremehkan tmux. Terakhir, zoom dan display-panes untuk fokus dan lompat cepat.

Layout Preset: Mengatur Ulang Ruang dengan Satu Tombol

Tmux menawarkan lima layout preset yang mengatur seluruh pane di window aktif sekaligus. Tekan prefix + Space sekali dan tmux mengganti tata letak ke layout berikutnya; tahan prefix dan tekan Space berulang untuk memutar semua varian sampai menemukan yang pas. Ini cara tercepat merapikan window yang sudah berantakan karena resize manual yang tak beraturan — satu tombol, seluruh layar beres.

Mengenal Lima Layout Bawaan

Kelima layout itu bukan variasi kosmetik; masing-masing lahir untuk pola kerja tertentu. even-horizontal membagi layar menjadi satu baris pane dengan lebar sama — ideal untuk memantau beberapa log secara paralel. even-vertical membaliknya menjadi satu kolom pane setinggi sama — cocok untuk editor dan terminal yang ditumpuk. main-horizontal memberi satu pane besar di bagian atas dan baris pane kecil di bawahnya, sementara main-vertical memberi satu pane dominan di kiri — dua layout terakhir adalah pilihan favorit untuk editor utama yang mendominasi layar. Terakhir, tiled membagi layar menjadi grid persegi dengan ukuran seimbang — pas untuk memantau banyak proses sekaligus.

LayoutDeskripsiPola Kerja yang Cocok
even-horizontalSatu baris, semua pane selebar samaMemantau beberapa log paralel
even-verticalSatu kolom, semua pane setinggi samaEditor dan terminal ditumpuk
main-horizontalPane besar di atas, sisanya di bawahEditor utama + terminal pendukung
main-verticalPane besar di kiri, sisanya di kananKode, output, dan log berdampingan
tiledGrid persegi, semua pane seimbangMonitoring banyak proses

Cycle Layout dengan select-layout

Di balik prefix + Space ada perintah select-layout. Perintah ini adalah alat presisi yang sama dengan tombol pintasnya, tetapi dengan kendali lebih: tmux select-layout -p memilih layout sebelumnya (kebalikan dari cycle maju prefix + Space), -l memilih layout yang terakhir dipakai, dan -t menargetkan window lain. Kombinasi yang paling sering dipakai praktisi adalah -p: ketika kalian melewati layout yang diinginkan, satu select-layout -p membawa kalian kembali tanpa harus memutar satu lingkaran penuh.

Kendalikan layout lewat perintah
tmux select-layout -p
tmux select-layout -t 2:1
tmux select-layout tiled

Baris kedua menargetkan window 2 pane 1 di session aktif — layout bisa diatur dari luar, misalnya dari skrip yang sedang menyiapkan workspace. Baris ketiga memilih layout berdasarkan nama. Ketiganya menunjukkan prinsip yang sudah kita kenal: apa pun yang bisa ditekan di keyboard, bisa juga dijalankan sebagai perintah — dan perintah bisa diotomasi.

Layout Custom: Membuat dan Menyimpan

Layout preset memang praktis, tetapi untuk set monitor yang spesifik — misalnya ultrawide dengan pane editor besar di kiri — kalian ingin tata letak yang persis seperti yang kalian susun sekali, lalu dipakai terus. Tmux menyimpan representasi setiap tata letak sebagai layout string, dan string itu bisa ditangkap, disimpan, lalu diterapkan kembali.

Caranya: susun pane secara manual persis seperti yang diinginkan (split, resize, zoom sesuai kebutuhan), lalu tangkap layout string-nya. tmux display-message -p '#{window_layout}' mencetak string itu ke layar, dan tmux list-windows juga menampilkannya di dalam kurung. Simpan string tersebut — misalnya di catatan atau sebagai keybinding — lalu terapkan kapan saja dengan select-layout.

Menangkap dan menerapkan layout custom
tmux display-message -p '#{window_layout}'
tmux list-windows
tmux select-layout "c92b,159x44,0,0{79x44,0,0,79x44,80,0}"

String aneh seperti c92b,159x44,0,0{...} tidak perlu dihafal — perlakukan ia sebagai resep. Untuk membuatnya permanen, kalian bisa mengikatnya ke tombol di ~/.tmux.conf: bind L select-layout "c92b,...". Dengan begitu, satu keybinding memulihkan seluruh tata letak kerja kalian, persis seperti membuka template.

Satu catatan penting: layout string sangat bergantung pada ukuran window saat ditangkap. Resep yang dibuat di monitor ultrawide akan "diregangkan" ketika diterapkan di window laptop yang lebih kecil — pane besar tetap besar, hanya proporsinya yang menyesuaikan. Karena itu, untuk pekerjaan yang berpindah-pindah ukuran layar, layout preset seperti main-vertical sering lebih andal daripada custom string; simpan custom layout untuk set monitor yang benar-benar tetap.

Resize dan Swap Pane

Layout preset merapikan secara massal; tetapi kadang kalian hanya ingin menyentuh satu pane. Di sinilah resize dan swap bekerja.

Resize Presisi

prefix + Ctrl+panah menyesuaikan ukuran pane aktif satu sel ke arah panah — kecil, presisi, dan karena didaftarkan sebagai repeatable, kalian bisa menahan tombolnya untuk terus berjalan. prefix + Alt+panah melompat lima sel sekaligus untuk gerakan lebih besar. Aturan yang harus diingat: resize tmux mencuri ruang dari pane tetangga, bukan menarik batas kosong. Jika pane sebelah sudah mencapai ukuran minimum, resize berhenti diam-diam — perilaku normal, bukan bug. Pola praktisnya: Alt untuk memperlebar editor sebelum bekerja, Ctrl untuk penyetelan halus saat pane terasa sesak.

Resize juga bisa dilakukan non-interaktif lewat tmux resize-pane dari command prompt atau skrip — misalnya tmux resize-pane -R 10 memperlebar pane aktif sepuluh sel, dan resize-pane -t 0:1.2 -D 5 mengecilkan pane tertentu dari luar. Ini berguna ketika kalian menyiapkan workspace otomatis: alih-alih mengandalkan manusia menekan panah, skrip bisa memastikan editor selalu mendapat ruang yang cukup sebelum sesi dimulai. Prinsip yang sama berlaku di seluruh episode ini — semua manipulasi ruang memiliki bentuk perintah yang bisa diotomasi.

Swap Pane

prefix + dan prefix + } memindahkan pane aktif satu posisi ke kiri atau ke kanan dalam urutan layout — misalnya menukar posisi editor dengan terminal agar letaknya sesuai kebiasaan. Ini berbeda dari resize: ukuran dan isi pane tetap, hanya posisinya yang bertukar.

KeybindingAksi
prefix + SpaceCycle ke layout berikutnya
prefix + zZoom / unzoom pane aktif
prefix + Ctrl+panahResize pane aktif 1 sel
prefix + Alt+panahResize pane aktif 5 sel
prefix + / }Swap posisi pane ke kiri / kanan
prefix + !Pisahkan pane menjadi window baru
prefix + qTampilkan nomor semua pane
prefix + % / "Split vertikal / horizontal

break-pane & join-pane: Memindahkan Pane antar Window

Sering terjadi: sebuah pane "nyangkut" di window yang salah. Contoh klasik — kalian sedang menjalankan log server di window proyek, lalu menyadari log itu sebaiknya pindah ke window monitoring yang sudah ada. Memindahkan pane antar window adalah operasi dua arah: break-pane mengeluarkan pane dari window-nya, dan join-pane memasukkannya ke window lain.

prefix + ! (default binding break-pane) memindahkan pane aktif keluar dan membungkusnya dalam window baru yang hanya berisi pane itu. Dari CLI, tmux break-pane -d melakukan hal yang sama tetapi window baru dibuat tanpa memindahkan fokus — kalian tetap bisa menyelesaikan pekerjaan di window asal. Sebaliknya, tmux join-pane -t 2 mengambil pane aktif dan menggabungkannya sebagai pane baru di window 2, dan tmux join-pane -s 3:1 -t 0 mengambil pane tertentu (window 3, pane 1) untuk digabungkan ke window 0.

tmux break-pane -d
tmux break-pane -t 4

Contoh nyata di lapangan: saat sesi troubleshooting, kalian sering butuh mengisolasi satu proses — misalnya tcpdump yang sedang berjalan — ke window terpisah agar output-nya tidak mengotori layar utama. prefix + ! sekali ketuk sudah cukup. Sebaliknya, ketika sesi sudah selesai dan kalian ingin merapikan, join-pane -t 0 menggabungkan semua pane bekas ke window utama. Operasi ini membentuk fondasi workflow multi-window yang akan kita dalami di episode 8 — pane adalah unit yang bisa dipindah, bukan terpaku pada tempat lahirnya.

Note

break-pane dan join-pane tidak menghentikan proses di dalam pane. Proses yang berjalan (misalnya editor vim atau server dev) tetap hidup selama perpindahan — hanya wadahnya yang berubah. Inilah salah satu alasan tmux terasa aman untuk eksperimen: kalian bisa merombak tata letak sesuka hati tanpa takut menghentikan pekerjaan.

Zoom dan display-panes

Dua keybinding terakhir melengkapi kendali ruang kalian. prefix + z melakukan zoom: pane aktif membesar memenuhi seluruh window dan pane lain disembunyikan sementara. Tekan lagi untuk mengembalikan tata letak. Zoom adalah jawaban atas layar yang sempit — daripada resize satu per satu, zoom memberi fokus penuh satu pane saat dibutuhkan, lalu kembali ke tata letak semula tanpa merusaknya. Saat zoom aktif, proses di pane lain tetap berjalan; ini bukan "minimize", melainkan "fokus".

prefix + q memanggil display-panes: tmux menampilkan nomor pada setiap pane selama beberapa detik. Tekan nomor yang tampil dan fokus langsung melompat ke pane itu. Ini adalah navigasi yang jauh lebih cepat daripada menekan panah berulang kali ketika window memiliki banyak pane, dan di episode-episode berikutnya nomor pane ini juga menjadi kunci untuk menargetkan perintah seperti capture-pane -t.

Kesalahan Umum (Common Pitfalls)

  1. Memaksa layout preset pada jumlah pane yang tidak cocok. main-vertical dengan dua pane dan dengan lima pane menghasilkan bentuk yang sangat berbeda. Ekspektasikan hasil sesuai jumlah pane — jika tampak aneh, itu bukan bug, melainkan sifat layout yang menyesuaikan.
  2. Mengira resize menambah ruang kosong. Resize mencuri ruang dari pane tetangga; jika tetangga sudah minimum, resize berhenti. Jangan panik "kenapa tidak mau membesar" — perbesar dengan zoom (prefix + z) sebagai jalan pintas.
  3. Tidak sadar prefix + ! membuat window baru. break-pane menyembunyikan pane dari window asal dan membuat window baru. Jika tiba-tiba jumlah window bertambah, itu bukan kecelakaan — gunakan join-pane untuk menggabungkannya kembali.
  4. Menargetkan window salah saat join-pane. join-pane -t 2 menggabungkan pane aktif ke window 2; pastikan nomor target benar dengan tmux list-windows sebelum mengeksekusi. Pane yang sudah pindah sulit "dikembalikan asal" secara otomatis.
  5. Lupa bahwa zoom menyembunyikan, bukan menutup. Pane yang di-zoom tetap berjalan; tidak melihat log bukan berarti proses berhenti. Cek dengan unzoom (prefix + z) sebelum mengira sesuatu macet.
  6. Menyimpan layout string tapi tidak tahu cara menerapkannya lagi. Layout custom baru berguna jika bisa dipanggil ulang — ikat ke keybinding dengan bind L select-layout "string" di ~/.tmux.conf, atau simpan resepnya di catatan yang bisa diakses.

Penutup

Episode ini menutup bab penguasaan ruang di tmux. Kalian memahami lima layout preset — even-horizontal, even-vertical, main-horizontal, main-vertical, dan tiled — dan cara memutar antar layout dengan prefix + Space serta mengendalikannya presisi lewat select-layout -p, -l, dan -t. Kalian bisa menangkap layout string dengan display-message -p '#{window_layout}', menyimpannya, dan menerapkannya kembali sebagai layout custom. Kalian menguasai resize presisi (prefix + Ctrl/Alt+panah), swap posisi (prefix + / prefix + }), memindahkan pane antar window dengan break-pane dan join-pane, fokus penuh dengan zoom prefix + z, dan lompat cepat dengan display-panes prefix + q.

Poin yang harus kalian bawa:

  • prefix + Space memutar layout; select-layout -p memutar mundur, -l kembali ke yang terakhir.
  • Layout custom adalah string yang bisa ditangkap, disimpan, dan diikat ke keybinding.
  • Resize mencuri ruang dari pane tetangga; gunakan prefix + z saat butuh ruang penuh seketika.
  • break-pane (prefix + !) dan join-pane memindahkan pane antar window tanpa menghentikan prosesnya.
  • display-panes (prefix + q) mengubah nomor-nomor pane menjadi alat navigasi cepat.

Dengan pane yang bisa ditata, dipindah, dan difokuskan sesuka hati, tmux kalian sudah berperilaku seperti editor ruang yang sesungguhnya. Di episode 8 kita melangkah keluar dari satu layar: multi-session workflow — bagaimana bekerja dengan banyak session sekaligus, memindahkan window antar session, dan memanfaatkan daftar session ketika satu terminal tidak lagi cukup. Sampai jumpa di episode 8!