showmygear

The Cockpit: Pengalaman Terminal & Shell

The Minimalist Terminal Cockpit

[!NOTE] Antarmuka pilot harus presisi, informatif, dan bebas gangguan. Terminal adalah pusat komando bagi realitas teknis kita.


📖 Daftar Isi

Arsitektur The Cockpit

flowchart TD
    User((User))
    
    subgraph Interface ["Lapisan 1: Antarmuka"]
        Term["Terminal Emulator<br/>(Windows Terminal / Ghostty)"]
        Font["Font: JetBrainsMono NF"]
    end
    
    subgraph Engine ["Lapisan 2: Mesin Interaktif"]
        Shell["Shell<br/>(Fish / Zsh)"]
        Prompt["Prompt<br/>(Starship)"]
    end
    
    subgraph Core ["Lapisan 3: Toolchain"]
        Cmd["Perintah<br/>(git, rg, fzf)"]
    end
    
    User --> Term
    Term -.-> Font
    Term --> Shell
    Shell --> Prompt
    Shell --> Cmd
    
    style User fill:#ffffff,stroke:#333
    style Interface fill:#e1f5fe,stroke:#01579b
    style Engine fill:#fff9c4,stroke:#fbc02d
    style Core fill:#e8f5e9,stroke:#2e7d32

1. Terminal Emulator (Jendela Jiwa)

Kami memprioritaskan kecepatan rendering, dukungan font, dan kejelasan visual.

Latensi & Performa

\(Hambatan Kognitif = Latensi Rendering + Waktu Startup Shell\)

2. The Shell (Mesin)

3. Persistent Remote Sessions: tmux dan Zellij

Saat bekerja di server remote via SSH, koneksi yang tidak stabil adalah musuh utama. Jika koneksi terputus, sesi shell Anda akan mati, dan proses yang sedang berjalan (seperti kiro-cli yang belum sempat di-save) akan hilang.

1. tmux (The Industry Standard)

tmux memisahkan sesi terminal dari koneksi SSH Anda. Jika SSH terputus, sesi tmux tetap hidup di server.

2. Zellij (Modern Workflow)

Zellij adalah alternatif modern (tertulis dalam Rust) yang menawarkan antarmuka lebih intuitif tanpa perlu menghafal banyak keybindings awal.

Perintah Dasar (Survival Kit)

| Aksi | Perintah | | :— | :— | | Membuat Sesi Baru | tmux new -s nama_sesi | | Keluar Sesi (Detach) | Ctrl+b lalu tekan d | | Masuk Kembali (Attach) | tmux attach -t nama_sesi | | Lihat Daftar Sesi | tmux ls | | Hapus Sesi | tmux kill-session -t nama_sesi |

[!TIP] Jadikan kebiasaan: Setiap kali Anda ssh ke remote host, hal pertama yang Anda ketik adalah tmux a atau tmux new. Ini adalah asuransi terhadap lag dan diskoneksi.

4. The Prompt: Starship

Kami secara ketat menggunakan Starship (starship.rs) sebagai mesin prompt.

C. AI-Native Shell (The Agentic Command)

Jangan panggil AI hanya dari browser. Integrasikan langsung ke shell Anda:



5. Resep Teknis dan Efisiensi

Zsh: Plugin untuk Kecepatan Syaraf

Jika Anda menggunakan Zsh (via Oh-My-Zsh), pastikan tiga plugin ini aktif:

  1. zsh-autosuggestions: Menyarankan perintah berdasarkan sejarah saat Anda mengetik.
  2. zsh-syntax-highlighting: Memberi warna merah jika perintah salah dan hijau jika benar sebelum ditekan.
  3. fzf: Integrasi Fuzzy Finder. Tekan Ctrl+R untuk mencari sejarah perintah secara visual dan instan.

Neovim: Filosofi Keymap

Kami menolak keymap yang bersifat “spaghetti”. Gunakan prinsip Lead with Meaning:

Efficiency Metrics: Mengukur Gesekan (Friction)

Seorang arsitek harus mengukur efisiensi cockpit-nya sendiri. Gunakan metrik ini:


6. Debat Toolchain: Standar vs Modern

[!IMPORTANT] Stabilitas adalah fitur. Overengineering adalah bug. Pilihlah alat yang memperkuat alur kerja tanpa menjadi beban dependensi tambahan.

Meskipun ekosistem Linux penuh dengan “Pengganti Modern berbasis Rust” untuk alat klasik, kami menyarankan kehati-hatian.

Baseline (Direkomendasikan)

Tetap gunakan POSIX Standard Tools (ls, cat, grep, find, cd).

Zona Eksplorasi (Opsional/Hobi)

Peringatan: Menginstall alat-alat ini menambah kompleksitas dan perilaku non-standar. Lanjutkan hanya jika Anda paham trade-off-nya.

flowchart LR
    subgraph "Pengganti Modern"
    A[ls] --> B[eza]
    C[cat] --> D[bat]
    E[grep] --> F[ripgrep]
    G[find] --> H[fd]
    I[cd] --> J[zoxide]
    end
Klasik Modern (Rust) Perbedaan / “Candy”
ls eza / lsd Ikon, kolom status git, tampilan tree.
cat bat Syntax highlighting, nomor baris, integrasi git diff.
grep ripgrep (rg) Sangat cepat, mengabaikan .gitignore secara otomatis.
cd zoxide (z) “Lompatan” direktori berbasis frekuensi (z proj).
find fd Sintaks lebih ramah pengguna, lebih cepat.

Vonis: Gunakan ripgrep dan zoxide untuk lonjakan produktivitas. Perlakukan sisanya (eza, bat) sebagai kosmetik visual, bukan kebutuhan.


🏠 Home | 🗺️ Roadmap | 🤖 Protokol Agentik | 📜 Konstitusi Arsitek