Skip to main content
Background Image
  1. Teches/

Zellij: Another Terminal Multiplexer, Yet More Modern

·1127 words·6 mins· ·
Wildan
Author
Wildan
An Ordinary Human Being
Table of Contents
terminal multiplexer - This article is part of a series.
Part 1: This Article

Getting to Know
#

Seperti tmux, zellij adalah sebuah program terminal multiplexer juga. Akan tetapi, zellij menawarkan tampilan / UI (User Interface) yang lebih modern dan kemudahan penggunaan dibandingkan dengan tmux sehingga pengguna pemula maupun power user dapat menggunakan zellij dengan lebih nyaman. Oleh karena itu, gak terlalu salah kalau dikatakan bahwa zellij adalah tmux versi yang lebih modern.

Hirarki yang dimiliki zellij juga saya pikir mirip dengan level hirarkinya tmux, yang terbagi ke 3 level: Session > Tab > Pane. Jadi, ketika kita pertama kali menjalankan program zellij, dia akan membuat sebuah “Session” yang di dalamnya juga sudah memiliki sebuah “Tab” yang mengandung sebuah “Pane”. Di dalam “Session” tersebut, kita bisa menambahkan “Tab” yang dapat kita bagi menjadi beberapa “Pane”.

Perhatikan ilustrasi berikut:

ss1
Session, Tab, and Pane on zellij. Created with: excalidraw.com

Tmux: Terminal Multiplexer
··1198 words·6 mins
Tmux is a legendary terminal multiplexer. By that, you can actually get your terminal more functional by splitting it vertically or horizontally almost instantly.

Features
#

Beberapa fitur zellij yang juga di-highlight di website mereka adalah sebagai berikut:1

1. Floating Panes
#

ss1
zellij floating panes

Untuk menjalankannya:

Alt+f

Seperti terlihat, kita dapat membuat floating pane. Yang unik dari floating pane ini adalah jika kita menjalankan sebuah perintah atau proses di dalamnya, kemudian kita hide floating pane-nya, nanti ketika ditampilkan lagi, proses tersebut masih akan tetap berjalan.

Dengan floating pane, kita bisa:

  • Memindahkan posisinya dengan mouse maupun keyboard.
  • Mengatur ukurannya.
  • Pin agar always on top.

2. Stacked Panes
#

ss2
zellij stacked panes

Kita juga bisa membuat stacked panes (lihat panes di sebelah kanan).

Ctrl+p s

Mode ini bagus untuk:

  • Menjaga banyak editor buffers tetap tersedia.
  • Memonitor beberapa commands tanpa mengambil banyak tempat.
  • Mengorganisasi workspace berdasarkan jenis pekerjaan atau konteks.

3. Layouts & Automation
#

ss3
zellij autozellijmation layouts. Source: https://zellij.dev/features/

Seperti terlihat pada gambar di atas, zellij juga memungkinkan kita untuk melakukan otomatisasi melalui layout-layout. Ini dapat kita lakukan di file konfigurasi zellij. Beberapa manfaatnya:

  • Mengotomatisasi workflow.
  • Langsung membuka file-file di editor ketika membuka zellij.
  • Membuat template layout supaya tidak selalu mengulang keybind layout yang sama.

4. Session Management
#

ss4
zellij session management

Seperti namanya, kita juga bisa melakukan manajemen sesi dengan perintah:

Ctrl+o w
  • Berpindah cepat ke sesi yang aktif.
  • Membuat sesi dengan nama custom.
  • Mengatur sesi yang berjalan di belakang layar (background).

5. Web Client
#

ss5
zellij in web browser!

Menurut saya, ini fitur yang paling keren. Kita bisa mengakses zellij di web browser!

zellij web --create-token # buat token untuk login ke web
zellib web # buat sesi web browser, default: http://127.0.0.1:8082s

Beberapa manfaatnya:

  • Gak memerlukan terminal karena kita bisa mengakses zellij di web browser.
  • Menjaga sesi agar tetap ada dengan mem-bookmark-nya via URL (misalnya http://localhost:8082/my-project)
  • Kita bisa berbagi sesi dengan orang lain, terutama jika mengerjakan proyek yang sama.

6. Plugin System
#

ss6
zellij welcome screen plugin

zellij -l welcome

zellij sendiri juga pada dasarnya sudah menggunakan beberapa plugin (pre-bundled plugin), misalnya seperti tab-bar, status bar, session-manager, dan welcome screen.

Jadi, kita bisa membuat plugin zellij kita sendiri menggunakan bahasa pemrograman Rust.2

7. Command Panes
#

ss7
zellij command panes

Kita juga bisa menjalankan perintah tertentu dari luar zellij yang akan langsung dieksekusi di dalam zellij.

zellij -s nama-sesi run -- <perintah yang ingin dijalankan>

Manfaatnya:

  • Melihat exit code dari perintah yang berhasil dijalankan.
  • Menjalankan kembali suatu command dengan sekali tekan [Enter].
  • Bagus untuk build commands, test, dan development servers.

8. Scrollback Editing
#

ss8
zellij scrollback editing. Source: https://zellij.dev/features/

Kita juga bisa membuka pane buffer scrollback di $EDITOR.

Ctrl+s e

Manfaatnya:

  • Menyimpan output ke file untuk dibagikan atau didokumentasikan.
  • Search, manipulate, dan copy terminal output melalui file editor favorit kita.

9. Multiple Pane Select
#

ss9
zellij multiple pan select

Dengan fitur ini, kita bisa menyeleksi berbagai pane (lihat pane yang terseleksi, berwarna ungu).

Alt+[left click]

Manfaatnya:

  • Menutup pane yang kita inginkan secara bersamaan.
  • Stack (menumpuk) pane yang kita inginkan secara bersamaan.
  • Memecah beberapa panes yang kita inginkan ke dalam tab baru dalam jumlah banyak (bulk).

etc
#

Masih ada beberapa fitur zellij lainnya yang tidak dicantumkan dalam artikel ini, seperti Remote Session Access, Advanced Scriptability, Mouse-based Pane Resizing, dan lain-lain. Sila kunjungi dokumentasi resmi zellij untuk mengetahui fitur-fitur tersebut lebih lanjut:

https://zellij.dev/features/

Installation
#

Berikut adalah cara meng-install zellij di beberapa sistem operasi UNIX/Linux:

DistroCommand
Arch Linuxsudo pacman -Sy zellij
Opensusesudo zypper install zellij
FreeBSDsudo pkg install zellij

NixOS:
Masukkan baris berikut di file konfigurasi (/etc/nixos/configuration.nix):

  environment.systemPackages = [
    pkgs.zellij
  ];

Atau jika menggunakan nix-shell:

nix-shell -p zellij 

Per artikel ini ditulis, zellij tidak tersedia di repositori Debian/Ubuntu dan Fedora. Oleh karena ini, beberapa alternatif cara instalasinya adalah sebagai berikut:

  1. Snap: https://snapcraft.io/zellij
  2. Official Github Repo: https://github.com/zellij-org/zellij/releases/

Berikut adalah repository Github zellij:

Usage
#

Berikut adalah cara menggunakan zellij.

Quickstart
#

Starting zellij
#

Untuk memulai sesi zellij, kita hanya perlu mengetikkan:

zellij

Atau kalau kita ingin membuat sesi baru dengan nama custom:

zellij -s your-custom-session-name

Atau kita bisa juga masuk ke sesi yang sudah ada sebelumnya. Kita bisa masuk ke sesi yang masih berjalan atau sesi yang sudah mati (kalau kita masuk ke sesi yang sudah mati, artinya kita menghidupkan lagi sesi tersebut).

# lihat daftar sesi yang tersedia terlebih dahulu
zellis ls 

# masuk ke salah satu sesi
zellij attach <nama-sesi>
Semua “cache” dari daftar sesi zellij akan tersimpan di ~/.cache/zellij.

Adding Tab
#

Buat tab baru dengan keybind:

Ctrl+t n

Splitting Pane
#

Bagi pane secara vertikal dengan keybind:

Ctrl+p r

Bagi pane secara horizontal dengan keybind:

Ctrl+p d

Panes Navigation
#

Berpindah dari satu pane ke pane yang lain dapat dilakukan dengan mudah keybind:

Alt → # ke pane yang ada di kanan
Alt ← # ke pane yang ada di kiri
Alt ↑  # ke pane yang ada di atas
Alt ↓ # ke pane yang ada di bawah

Detaching Session
#

Keluar dari sesi tanpa mematikan sesi tersebut:

Ctrl+o d

Untuk benar-benar keluar dan mematikan sesi:

Ctrl+q

Listing Sessions
#

Kita bisa melihat daftar sesi yang ada/yang pernah dibuat (baik yang sudah mati maupun yang masih berjalan, jika ada):

zellij ls

Atau kalau ingin menggunakan session manager juga bisa dengan mengetikkan keybind berikut di dalam sesi zellij:

Ctrl+o w

Renaming Session
#

Untuk mengganti nama sesi:

# Masuk ke session manager
Ctrl+o w

# Pilih sesi yang ingin diganti namanya, kemudian:
Ctrl+r

Kemudian masukkan nama sesi yang kalian kehendaki. Tekan [Enter] jika sudah selesai.

Deleting Session
#

Hapus sesi dengan perintah:

zellij d <nama-sesi-yang-ingin-dihapus>

Atau via session manager:

# Masuk ke session manager di dalam zellij
Ctrl+o w

# Pilih nama sesi yang ingin dihapus
Del

Locking Keybinds
#

Kita juga bisa menon-aktifkan keybind sementara:

Ctrl+g

Gunakan keybind yang sama (Ctrl+g) untuk meng-unlock-nya.

Sekian.
Terima kasih sudah membaca!

terminal multiplexer - This article is part of a series.
Part 1: This Article

Related

Tmux: Terminal Multiplexer
··1198 words·6 mins
Tmux is a legendary terminal multiplexer. By that, you can actually get your terminal more functional by splitting it vertically or horizontally almost instantly.
Rclone: A Command-line program to Manage Files on Cloud Storage
··2822 words·14 mins
Do you have a lot of cloud storages that you want to manage it directly through terminal? With rclone, managing many cloud storages has never been easier than this before..
A Comparison of 5 Terminal File Managers
A glimpse of terminal-based file managers and their uniquenesses.