03 April 2026

Single Screen Productivity Workflow dengan i3wm dan Agentic Coding

Seorang programmer minimalist berbagi workflow berbasis i3wm dengan tiga workspace (Code, Office, Personal), tabbed layout, serta kombinasi AI (Claude dan OpenCode Go) dengan Git Worktree dan Tmux untuk meningkatkan produktivitas dan menghindari burnout.

Waktu baca: ~ 4 menit

Saya dari dulu adalah tim minimalis, termasuk dalam hal setup ruang kerja. Tidak ada monitor tambahan. Tidak ada fancy setup. Yang ada hanyalah sebuah laptop, keyboard eksternal, wrist rest pad, mouse, mouse pad, kipas angin kecil, kursi kerja ergonomis, dan sebuah meja kerja dari kayu.

Menciptakan workflow supaya produktivitas tidak jauh berbeda atau bahkan sama dengan teman-teman lain dengan setup yang lengkap merupakan suatu tantangan tersendiri. Saya pengguna Ubuntu MATE sejak tahun 2017. Selama 8 tahun saya menggunakan window manager bawaan, yaitu Marco. Navigasi antarwindow cukup tradisional dan menyebalkan: tekan Alt+Tab. Sudah jadi kebiasaan, pencet tab beberapa kali untuk memilih window yang aktif. Padahal, setelah menekan Alt+Tab, saya bisa menggunakan arrow keys untuk navigasi. Tapi sangat tidak praktis.

Sampai akhirnya, saya bertemu dengan konsep customizable window manager setelah terinspirasi dari Omarchy. Saya tulis selengkapnya di post Meracik tampilan Linux dengan i3, picom, polybar, dan rofi. Sejak saat itu, saya sempat kembali ke Marco dan menulis artikel ini, namun akhirnya kembali ke i3wm setelah menemukan konfigurasi yang lebih pas dengan setup saya.

Sejak saat itu, navigasi dan pengaturan layout antarwindow menjadi lebih praktis. Saya akan share bagaimana workflow berbasis i3wmj dapat membantu saya lebih fokus bekerja hanya bermodalkan layar laptop.

1. Atur Tabbed sebagai Default Layout

i3wm mendukung tiga jenis layout: stacked, toggle split, dan tabbed. Stacked dan tabbed itu mirip: hanya menampilkan satu window yang aktif dalam satu waktu. Yang membedakannya adalah penempatan judul window-nya. Sesuai namanya: layout stacked, judul dari windows yang sedang aktif akan bertumpuk secara vertikal, sedangkan layout tabbed, judul dari windows yang aktif akan disebarkan secara vertikal.

Stacked layout
Tabbed layout

Sementara itu, toggle split menampilkan lebih dari satu windows yang aktif dalam satu waktu. Sesuai namanya: split. Windows yang aktif akan di-split menjadi ukuran yang sama secara horizontal. Kita juga menyesuaikan posisi window-nya menjadi vertikal jika memang dibutuhkan.

Toggle split layout

Default layout untuk i3wm adalah toggle split. Bagi layar dengan resolusi tinggi, ini seharusnya bukan masalah yang berarti. Tapi bagi layar dengan resolusi 1920x1080 atau di bawahnya, penggunaan tabbed layout menurut saya pribadi kurang nyaman, apalagi kalau kita sedang membuka cukup banyak windows dalam satu workspace. Kadang harus resize ukuran window secara manual satu per satu. Bukannya produktif, waktu malah habis untuk memikirkan berapa ukuran window yang pas supaya terasa lebih nyaman.

Oleh karena itu, saya pribadi lebih suka mengatur tabbed layout ketimbang toggle split layout sebagai default layout. Navigasi lebih sederhana: cukup kiri-kanan saja. Begitu juga menyesuaikan urutan window yang aktif. Bisa juga pakai stacked layout, tapi saya kurang suka karena judul windows yang stacked mengurangi ukuran window yang ditampilkan di layar.

Untuk mengatur default layout di i3wm, cukup tambahkan workspace_layout tabbed di file ~/.config/i3/config, lalu restart i3wm dengan menekan Super+Shift+r.

2. Tiga Workspace itu Cukup

Saya sempat mengaktifkan cukup banyak workspace, tapi setelah mengevaluasi ulang pemakaian workspace, rupanya saya hanya perlu 3 workspace.

Workspace pertama saya kasih nama Code. Workspace ini hanya boleh berisi windows yang berkaitan dengan coding, seperti IDE/code editor. Web browser juga bisa masuk ke workspace ini, dengan catatan bahwa hanya boleh membuka web-web yang berkaitan dengan coding. Misal, GitHub untuk review/mengerjakan pull request, CircleCI untuk testing dan deployment, dan web-web lainnya yang masih berkaitan dengan urusan coding.

Workspace kedua saya kasih nama Office. Workspace ini hanya boleh berisi windows yang berkaitan dengan komunikasi internal dan eksternal. Misal: Slack & Microsoft Teams.

Workspace ketiga saya kasih nama Personal. Workspace ini hanya boleh berisi windows di luar keperluan kerjaan. Misal, buka web browser untuk WhatsApp Web atau media sosial.

Segregasi ini, khususnya pemisahan antara Code dan Office, sangat membantu saya tetap fokus deliver fitur/bug fix yang harus dikerjakan. Tidak bisa dipungkiri, sebagai seorang programmer, kita lebih sering perlu fokus dalam waktu yang lama ketika menyelesaikan pekerjaan. Ada distraksi sedikit saja bisa membuat konsentrasi buyar dan kadang lupa sampai mana tadi.

Jadi, ketika sudah cukup senggang, atau ketika sudah dirasa perlu cek alat komunikasi kantor macam Slack dan Teams, saya biasanya switch ke workspace ini dan cek apakah ada mention yang ditujukan kepada saya atau tidak. Jika tidak, ya, lanjut ngoding.

Pindah antarworkspace di i3wm cukup mudah. Super+1 untuk pindah ke workspace Code, Super+2 pindah ke workspace Office, Super+3 pindah ke workspace Personal. Super ini juga bisa ditentukan key-nya apa di file konfigurasi i3. Default-nya adalah key Windows di keyboard.

3. AI + Git Worktree untuk Semakin Produktif

Patut diakui bahwa di awal 2026, model-model AI sudah semakin bagus. Saya awalnya skeptis terhadap AI. Meskipun begitu, saya tetap mengikuti perkembangan setiap model yang ada. Hingga di titik saya merasa bahwa langganan AI sudah bukan nice-to-have lagi, melainkan must-have.

Workflow kerja pun saya coba sesuaikan pelan-pelan. Kerjaan-kerjaan yang memerlukan analisis mendalam saya lempar ke AI. Kerjaan-kerjaan receh, beberapa di antaranya saya kerjakan dengan AI. Bukan karena malas, tapi semata-mata ingin menguji seberapa powerful sebuah model untuk menyelesaikan pekerjaan-pekerjaan receh tersebut, atau sebatas menguji apakah rules yang tercantum di CLAUDE.md sudah efektif atau belum.

Ya, per saya nulis ini, saya berlangganan Claude (dari kantor) dan OpenCode Go (mandiri). Model Opus dan Sonnet, saya rasa, sudah tidak perlu diragukan lagi kapabilitasnya. Selama konteks yang diberikan cukup, solusi yang ditawarkan juga selalu sesuai dengan yang saya harapkan.

Sementara OpenCode Go, saya gunakan untuk jaga-jaga saja jika suatu waktu saya memerlukan AI, tapi kuota per lima jam dari Claude sudah habis duluan. Selain itu, saya pakai OpenCode Go juga untuk mengerjakan beberapa proyek pribadi.

Mengombinasikan AI dengan Git Worktree benar-benar meningkatkan produktivitas karena kita bisa mengerjakan enhancement dan bug fix dalam waktu yang bersamaan dengan memanfaatkan AI. Satu enhancement, satu worktree. Satu bug fix, satu worktree baru.

Per worktree, saya pribadi biasanya pakai kombinasi Tmux + NeoVim + Claude Code/Open Code. Untuk memudahkan, saya memintai AI untuk membuatkan custom script yang akan meluncurkan Tmux dengan NeoVim di pane sebelah kiri dan Claude Code/Open Code di sebelah kanan.

Tmux + NeoVim + Open Code

Semua program tersebut (Tmux, NeoVim, Claude Code, Open Code) adalah program berbasis CLI dan TUI yang cukup ringan, jadi bisa saya spawn cukup banyak sesuai kebutuhan tanpa menghabiskan banyak memori.

Workflow ini memang belum sempurna dan kemungkinan akan terus berevolusi ke depannya jika ada teknik baru yang lebih efektif dan efisien dibandingkan dengan workflow saat ini. Untuk saat ini, saya rasa bahwa dengan workflow ini saja, produktivitas saya sangat meningkat.

Dengan menyerahkan heavy lifting seperti debugging bug-bug kompleks ke AI yang biasanya menyita banyak waktu dan pikiran, saya jadi lebih tidak cepat burnout saat bekerja.

#Productivity #Linux