4 poin oleh GN⁺ 2024-08-13 | 1 komentar | Bagikan ke WhatsApp

Pengalaman menggunakan WezTerm

Sebelum memulai

  • Perlu memasang WezTerm
  • Pengguna macOS bisa memasangnya dengan Homebrew ($ brew install wezterm)

Penjelasan tentang Lua

  • Konfigurasi WezTerm didefinisikan dengan Lua
  • Lua mirip dengan bahasa pemrograman dinamis lain sehingga mudah dibaca
  • Untuk konfigurasi yang kompleks, sebaiknya mempelajari Lua secara lebih mendalam

File konfigurasi dan loop umpan balik

  • File konfigurasi berada di $XDG_CONFIG_HOME/wezterm/wezterm.lua
  • Saat file konfigurasi diubah, ia akan dimuat ulang secara otomatis
  • Log bisa diperiksa melalui debug overlay (CTRL + SHIFT + L)

Pengaturan tampilan

Tema warna

  • WezTerm menyediakan lebih dari 1.000 tema warna
  • Contoh: config.color_scheme = 'Tokyo Night'

Tema warna dinamis

  • Disediakan contoh kode untuk mengubah tema warna secara acak setiap kali membuka jendela baru

Mengikuti tampilan sistem

  • Tema warna diubah secara otomatis sesuai mode tampilan sistem
  • Atur setelah membuat file appearance.lua

Pengaturan font

  • Font bawaan adalah JetBrains Mono
  • Contoh: config.font = wezterm.font({ family = 'Berkeley Mono' })

Styling jendela

  • Mengatur transparansi latar belakang dan blur pada jendela
  • Contoh: config.window_background_opacity = 0.9

Pengaturan status bar

  • Menambahkan status bar bergaya powerline di sisi kanan tab bar
  • Menggunakan event API dari WezTerm

Pengaturan tombol

Pemetaan tombol default

  • Pemetaan tombol default bisa dipertahankan atau dinonaktifkan (config.disable_default_key_bindings = true)

Contoh pemetaan tombol

  • Memetakan Option + Left Arrow dan Option + Right Arrow untuk berpindah antar kata
  • Mengatur shortcut untuk membuka file konfigurasi (CMD + ,)

Fitur multiplexer

  • Menggunakan fitur multiplexer milik WezTerm
  • Mengatur shortcut untuk membagi pane (CTRL + SHIFT + P)

Pengaturan leader key

  • Mengatur leader key ke CTRL + A
  • Menggunakan shortcut pembagian pane bersama leader key

Perpindahan pane

  • Mengatur pemetaan tombol untuk berpindah antar pane (menggunakan tombol arah vim)

Mengubah ukuran pane

  • Mengatur key table untuk mengubah ukuran pane
  • Digunakan bersama leader key untuk menyesuaikan ukuran pane

Workspace proyek

Membuat dan berpindah workspace

  • Membuat file projects.lua lalu menambahkan fungsi perpindahan proyek
  • Saat memilih proyek, workspace WezTerm baru akan dibuat

Ringkasan GN⁺

  • WezTerm memungkinkan konfigurasi yang fleksibel dengan Lua sehingga bisa dikustomisasi secara luas
  • Perubahan konfigurasi mudah dilakukan berkat fitur pemuatan ulang otomatis dan debug overlay
  • Fitur multiplexer dan manajemen workspace sangat baik, dan berbagai pemetaan tombol dapat meningkatkan produktivitas
  • Terminal lain dengan fitur serupa adalah Alacritty dan kitty

1 komentar

 
GN⁺ 2024-08-13
Pendapat Hacker News
  • Baru-baru ini beralih ke WezTerm dan sangat puas. Sebelumnya menggunakan kitty, dan menyukai pengaturan serta kesederhanaan di iTerm2. WezTerm jauh lebih unggul dalam fitur yang disediakan secara bawaan. Konfigurasi terminalnya singkat sehingga semuanya bisa terlihat di layar editor. Setelah itu, terminal nyaris tidak perlu dipikirkan lagi

    • Saat memakai kitty saya sering mengalami masalah, dan ketika mencoba meniru fitur iTerm2 saya kecewa dengan komentar pengelola kitty yang terkesan ketus dan meremehkan
    • Misalnya, saat bertanya, "bagaimana mengatur tmux di kitty?" jawabannya adalah "jangan lakukan, tmux itu bodoh". Akhirnya saya menyerah
  • WezTerm sangat cepat merespons issue di GitHub, biasanya menyelesaikan masalah dalam satu atau dua hari. Selain satu masalah kecil terkait tombol modifier lewat SSH, fiturnya nyaris sempurna. Cepat dan bagus

    • Dulu saya sangat menyukai Alacritty, tetapi membutuhkan dukungan modifier yang lebih baik untuk emacs jarak jauh
  • Saat berpindah dari Kubuntu ke Ubuntu, saya menginginkan beberapa fitur Konsole (scrollback tanpa batas, pencarian scrollback), tetapi memasang WezTerm agar tidak perlu menginstal Konsole. Saya langsung menyukainya, meski banyak fitur yang tidak mudah ditemukan. Dokumentasinya sangat bagus, dan penulisnya sangat terlibat serta membantu

    • Misalnya, saya pernah mencari cara memilih blok teks besar hanya dengan keyboard dan berhasil melakukannya sekali, tetapi segera lupa lalu kembali memilih teks dengan mouse. Itu lebih cepat daripada mencari lagi halaman dokumentasinya
    • Sebagai referensi, halaman yang saya cari adalah https://wezfurlong.org/wezterm/copymode.html
  • Sudah mencoba Mac Terminal, iTerm2, Kitty, Warp, dan lainnya, tetapi akhirnya menetap di WezTerm. Konfigurasinya mudah, cepat, dan enak dipandang. Saya bahkan membuat tema untuknya

  • Apa kelebihan WezTerm? WezTerm sepenuhnya lintas OS, jadi bisa dipakai di Linux, macOS, dan Windows. Konfigurasi terminal bisa dibagikan di berbagai OS

  • Saya sudah menggunakan WezTerm sekitar setahun dan mendukung Wez di GitHub. WezTerm adalah terminal yang hebat, dan pengembangnya juga hebat. Saya sering memakai quick copy dan mode salin lainnya

    • Saya menggunakan sesuatu seperti mosh+tmux dari laptop macOS ke mesin Linux kerja. Saya selalu menjaga sesi tetap berjalan sehingga bisa bekerja di mesin kerja dari Mac. Ini menyediakan sesi, panel, dan tab yang bisa tersambung kembali
  • Alasan saya tetap memakai iTerm2 adalah fitur "Edit->Selection Respects Soft Boundaries". Fitur ini menafsirkan karakter pipa | sebagai pemisah panel sehingga seleksi membungkus mengikutinya

  • Saya setuju dengan pendapat pengguna lain. Sudah hampir 10 tahun saya memakai macOS dan menggunakan iTerm2. Belakangan ini mulai terasa lambat. Saat cmd-tab, saya harus menunggu lebih dari 1 detik sampai terminal muncul

    • Saya mengevaluasi beberapa alternatif, tetapi tidak ada yang cocok. Satu terminal membutuhkan akun/login, yang lain ditulis dengan {Java,Type}Script dan bahkan perintah sederhana pun rusak karena masalah async stream
    • WezTerm sangat cepat, bisa dikonfigurasi, dan menyediakan tema OneDark (base16) secara bawaan
    • Saat pengaturan awal, saya harus menambahkan cmd-left dan cmd-right ke konfigurasi lua
  • Wez akan menerbitkan buku tentang pemrograman sistem dengan Rust

  • OT: Paling menantikan Ghostty yang dibuat oleh pendiri HashiCorp