21 poin oleh GN⁺ 6 hari lalu | 1 komentar | Bagikan ke WhatsApp
  • Melalui file konfigurasi ~/.tmux.conf, Anda dapat dengan bebas menyesuaikan key binding, warna, status bar, dan perilaku mouse
  • Tombol Prefix bawaan C-b dapat diubah menjadi C-a untuk meningkatkan efisiensi input, dan Caps Lock bisa di-remap menjadi Ctrl
  • Pemisahan jendela dapat dilakukan secara lebih intuitif dengan tombol | dan - alih-alih " dan %, serta file konfigurasi bisa langsung di-reload dengan tombol r
  • Alt + tombol arah untuk berpindah panel, mengaktifkan mode mouse, dan menonaktifkan perubahan nama jendela otomatis membuat pengoperasian lebih nyaman
  • Elemen visual seperti warna, status bar, pesan, dan border dapat diatur secara rinci untuk membangun tema yang konsisten

Konsep Dasar Kustomisasi tmux

  • File konfigurasi tmux adalah tmux.conf, dan jika ditempatkan di ~/.tmux.conf pada direktori home pengguna, maka akan diterapkan sebagai pengaturan pribadi
    • Jika ingin dibagikan oleh beberapa pengguna, file tersebut bisa ditempatkan di direktori global sistem, dan lokasinya berbeda tergantung sistem operasi
    • Lokasi yang tepat dapat dicek pada penjelasan opsi -f di man tmux
  • Dengan mengubah file konfigurasi, Anda bebas menyesuaikan key binding, warna, status bar, perilaku mouse, dan lainnya

Pengaturan Tombol Prefix yang Lebih Nyaman

  • Tombol Prefix bawaan C-b dapat diubah menjadi C-a yang lebih mudah dijangkau
    • C-a dapat berbenturan dengan perintah bash untuk “memindahkan kursor ke awal baris”
    • Jika tombol Caps Lock di-remap menjadi Ctrl, kombinasi Prefix akan lebih mudah ditekan
  • Contoh konfigurasinya sebagai berikut
    unbind C-b
    set-option -g prefix C-a
    bind-key C-a send-prefix
    
  • Dengan C-a C-a, perintah bash lama tetap bisa digunakan

Perintah Pemisahan Jendela yang Intuitif

  • Alih-alih tombol pemisahan bawaan " dan %, gunakan | dan - yang lebih intuitif secara visual
    • | diatur untuk split horizontal, dan - untuk split vertikal
    • Key binding lama dinonaktifkan
    bind | split-window -h
    bind - split-window -v
    unbind '"'
    unbind %
    

Reload Cepat File Konfigurasi

  • Jika Anda sering mengubah tmux.conf, file dapat langsung di-reload dengan shortcut
    • Bind tombol r untuk menerapkan ulang file konfigurasi
    bind r source-file ~/.tmux.conf
    

Perpindahan Panel yang Cepat

  • Gunakan tombol Alt (meta) + tombol arah untuk berpindah panel tanpa Prefix
    • Alt-Left, Alt-Right, Alt-Up, Alt-Down masing-masing digunakan untuk berpindah
    bind -n M-Left select-pane -L
    bind -n M-Right select-pane -R
    bind -n M-Up select-pane -U
    bind -n M-Down select-pane -D
    

Mengaktifkan Mode Mouse

  • Memilih jendela dan mengatur ukuran panel dengan mouse menjadi memungkinkan
    • Meskipun penggunaan berbasis keyboard adalah bawaan utamanya, ini berguna saat kolaborasi
    • Sering dipakai dalam pair programming
    set -g mouse on
    

Menonaktifkan Perubahan Nama Jendela Otomatis

  • Mencegah nama jendela yang ditentukan secara manual ditimpa otomatis saat menjalankan perintah
    set-option -g allow-rename off
    

Mengubah Tampilan tmux

  • Warna, status bar, pesan, border panel, dan lainnya dapat diatur secara rinci
    • Dengan melihat bagian STYLES, Anda dapat mengatur beragam elemen visual
    • Menggunakan warna terminal bawaan (red, yellow, black, dll.) membuatnya menyatu secara alami dengan tema
    • Jika memakai mode 256 warna, Anda dapat menentukan colour0~colour256
  • Contoh konfigurasi mencakup hal-hal berikut
    • Menonaktifkan notifikasi bel**,** warna jam yellow**,** gaya copy mode fg=black bg=red bold

    • Warna border panel red**,** border panel aktif yellow

    • Posisi status bar bottom**,** spasi kiri**,** tampilan waktu di kanan

    • Gaya jendela aktif fg=black bg=red**,** gaya jendela biasa fg=red bg=black

      • Gaya pesan fg=yellow bg=red bold
      • Pengaturan seperti ini memberikan komposisi warna yang konsisten dan pembedaan visual yang jelas

Referensi Tambahan

  • Berbagai contoh konfigurasi tmux dapat ditemukan di repositori GitHub tmux.conf atau dotfiles
    • Anda juga dapat melihat referensi dari Reddit /r/dotfiles dan /r/unixporn
  • Konfigurasi lengkap dipublikasikan di repositori dotfiles GitHub
  • Untuk pembelajaran lebih lanjut, disarankan membaca man page tmux dan bagian Configuring tmux di wiki tmux
    • Keduanya membahas fitur terbaru dan opsi detail secara menyeluruh
  • Jika ingin mendesain tema warna terminal sendiri, Anda dapat menggunakan Root Loops(https://rootloops.sh/)
    • Mendukung pembuatan skema warna terminal yang dipersonalisasi

1 komentar

 
GN⁺ 6 hari lalu
Komentar Hacker News
  • Dulu saya memakai tmux, lalu setelah menemukan Zellij, saya beralih sepenuhnya
    Pengaturan tab dan panel jauh lebih intuitif, dan scroll serta pemilihan teks dengan mouse nyaman, jadi copy-paste lebih mudah

    • Saat melihat halaman unduhan Zellij, saya merasa sebaiknya mereka tidak memakai tombol untuk tautan
      Tautan berbentuk tombol tidak bisa disalin lewat klik kanan dan juga kurang baik dari sisi aksesibilitas
    • Satu-satunya kelemahan fatal Zellij adalah tidak bisa copy-paste dari layar lewat keyboard, dan tidak mendukung banyak buffer clipboard
      Di tmux saya memakai fitur ini tiap 1–2 menit, tetapi pengembang Zellij menyarankan agar data dipipe ke editor, yang tidak kompatibel dengan clipboard sistem
      Jadi akhirnya saya kembali ke tmux
    • Dari sudut pandang pengguna perangkat embedded, Zellij terlalu besar
      Zellij sekitar 50MB, sedangkan tmux sekitar 2MB bahkan termasuk library dependensi, jadi perbedaan ukurannya besar
    • Dalam 2 minggu terakhir saya mencoba zmx, dan walau ada sedikit bug repaint layar, cukup nyaman dipakai bersama ghostty
    • Saya juga sempat pindah ke Zellij lalu kembali lagi ke tmux
      Zellij makin terasa terlalu gemuk, dan sekarang saya jauh lebih puas dengan tmuxp untuk menyusun sesi serta autossh untuk menjaga koneksi tetap hidup
  • Soal key binding, ^a adalah tradisi screen, ^b adalah tradisi tmux
    Jika Anda admin yang menangani banyak sistem, mempelajari keymap bawaan itu penting
    Saya hanya mengubah warna, latar panel aktif, jam timestamp, dan mengaktifkan mouse, sementara key binding saya biarkan apa adanya
    Begitu sudah terbiasa, bawaan justru terasa lebih nyaman

  • Saya pernah meninggalkan tmux dan pindah ke Zellij karena Shift+Enter tidak berfungsi
    Tapi akhirnya kembali ke tmux karena Zellij mengalami panic crash yang mematikan proses
    Solusinya adalah "bind-key -T root S-Enter send-keys C-j", dan saya menemukannya di issue ini

    • Saya menyelesaikannya dengan "bind -n S-Enter send-keys Escape '[13;2u'"
      pi.dev memberi peringatan bahwa extended-keys tidak diatur, tetapi tetap berfungsi
    • Berkat itu saya mendapatkan solusi yang saya cari
    • Saya penasaran apakah mungkin multiplexer mati tetapi proses anaknya tetap hidup
      Di tmux, jika server dimatikan, proses turunannya juga dibersihkan, dan itu terasa nyaman
    • Dalam kasus saya, Shift+Enter tidak berfungsi dan Option+Enter malah memasukkan baris baru (MacOS, lingkungan Claude Code)
    • Jika ingin menghindari binding baru, kombinasi \\ + Enter juga bisa dipakai
  • Setelah tahu Control Mode di tmux, rasanya benar-benar game changer
    Jalankan tmux -CC di iTerm2, lalu tab, scroll, copy-paste, shortcut, dan lainnya bekerja secara native di terminal
    Tab juga terlihat secara visual, dan ini sangat berguna terutama untuk pemula

    • Saya memakai Mac karena fitur ini. Selama 10 tahun, tidak ada terminal Linux yang pernah saya lihat mengimplementasikan ini
    • Bagi saya, mode -CC juga bekerja dengan sempurna
    • Saya penasaran apakah ini juga berfungsi di ghostty
    • Baru sekarang saya benar-benar paham apa yang dilakukan -CC
    • Benar-benar bikin kagum
  • Di tmux saya memakai Alt+angka untuk perpindahan jendela cepat
    Contoh: diatur seperti bind-key -n M-1 select-window -t :1
    Alt-/ juga bisa membuka copy mode bergaya vi
    Di lingkungan Wayland, saya memakai wl-copy sehingga bisa menyalin lewat drag mouse atau tombol y
    Saya juga menambahkan desain bergaya Powerline, tetapi membutuhkan powerline-fonts

  • Saya terlalu banyak mengustomisasi tmux sampai-sampai ketika ssh ke server baru, saya lupa cara pakai default-nya
    Sekarang saya memakainya dengan konfigurasi bawaan. Hanya pengaturan scroll mouse yang selalu saya ubah

    • Ada yang bertanya apakah Anda membuat repositori dotfiles untuk mengelola konfigurasi tmux, zsh, dan lain-lain
    • Ini mirip dengan kutukan Emacs. Bisa dikustomisasi tanpa batas, tetapi akhirnya menjadi lingkungan unik milik sendiri
      Ada juga konsep terkait, The Lisp Curse
    • Saya juga mengalami masalah yang sama, lalu menyiasatinya dengan hanya menambahkan pengaturan yang tidak bentrok tanpa menimpa default
      Misalnya, Ctrl-b tetap dipakai, dan Ctrl-space ditambahkan sebagai shortcut tambahan
    • Saya juga mengalami hal yang sama di Emacs. Setelah disk rusak dan saya kehilangan konfigurasi kustom, saya hampir kembali ke kondisi default
    • Sampai muncul candaan seperti, “Claude, tolong scp konfigurasi tmux saya ke server itu”
  • Saya terkesan dengan Control Mode tmux di iTerm2
    Sebagai pengelola jendela lokal, ia bisa mengendalikan jendela terminal jarak jauh
    Implementasi fitur itu juga sedang dikerjakan di ghostty lewat fitur ini, jadi saya menantikannya

  • Banyak yang bilang tombol prefix bawaan tmux (C-b) canggung, tetapi menurut saya justru kecanggungannya itu kelebihannya
    Hampir tidak mungkin terpencet tanpa sengaja
    Perintah split juga terasa intuitif bagi saya — % seperti garis horizontal, " seperti garis vertikal
    Saya dulu sering me-reload konfigurasi di awal, tetapi sekarang hampir tidak pernah

    • Saya juga suka tombol prefix bawaan
      Jika perlu, cukup tambahkan ini ke .tmux.conf
      unbind-key -T prefix C-b
      set-option -g prefix C-s
      
      seperti ini. Jika hanya dipakai secara lokal, tidak perlu khawatir konflik
  • Saya suka tmux, tetapi jebakannya adalah perlu file konfigurasi 400 baris
    Dalam keadaan default, ia kurang ramah, tetapi setelah banyak diutak-atik bisa menjadi sangat hebat
    Anda bisa melihat file konfigurasi saya

    • Saya tidak mengubah konfigurasi apa pun, tetapi tetap merasa cukup layak dipakai
      Saya hanya menghafal sekitar 9 shortcut yang diperlukan
    • File konfigurasi saya saya buat mudah diambil dengan wget atau curl dari mana saja
      Saya juga berencana menambahkan versi PowerShell
    • Saya melihat konfigurasi jcs lalu hanya menyalin beberapa baris
      Hanya binding prefix yang saya kembalikan ke bentuk semula
  • Dulu saya menghabiskan akhir pekan membaca buku “tmux 2: mouse-free productivity”, dan itu salah satu buku yang paling berdampak pada produktivitas saya
    Edisi terbaru juga terus diperbarui → tmux 3: productive mouse-free development

    • Sayangnya, buku itu tidak menyebut pencipta asli atau asal-usul tmux, dan itu agak disayangkan
    • Terima kasih atas rekomendasi referensi yang bagus