- Uzun süre tmux kullandı, ancak son dönemde tmux’un karmaşıklığı ve sınırlamaları (renk uyumluluğu, scrollback, fareyle kopyalama, protokol desteği eksikliği vb.) konusunda şüphe duymaya başladı
- Oturum kalıcılığı (detach/attach) ya da pencere bölme/yönetimi gibi tmux’un temel işlevleri mutlaka yalnızca tmux ile sağlanmak zorunda değil
- dtach, abduco, shpool gibi Unix felsefesine uygun hafif araçlar kullanılarak, yalnızca oturum yönetimine odaklanırken yerel scrollback ve sadelik de korunabiliyor
- Özellikle
shpool + ssh kombinasyonu ile birden fazla uzak oturumu doğrudan pencere yöneticisiyle yönetmek ve yerel özellikleri (bildirimler, kaydırma, başlıklar vb.) aynen kullanmak mümkün
- Kusursuz olmasa da, yazarın ölçütlerine göre tmux’u tamamen değiştirebildi ve basit, bakımı kolay bir iş akışından memnun kaldı
tmux’un artıları ve eksileri
- Oturum koruma (detach/attach), pencere yönetimi (sekmeler, split) gibi tmux’un sunduğu işlevler daha önce iş akışının merkezindeydi
- Ancak doğru
TERM ayarı olmadığında renk gösterim sorunları yaşanabiliyor ve terminal ile tmux arasındaki etkileşimi ayrıca düşünmek gerektiği için karmaşıklık artıyor
- Scroll buffer kullanımı da tmux’a özgü ayrı bir yönteme alışmayı gerektiriyor; fareyle alan kopyalama da split ortamında rahatsız edici olabiliyordu
- kitty graphics protocol gibi yeni terminal özellikleri için destek zayıf ve deneysel protokollerin desteklenmemesi gibi sorunlar da var
- Escape code’ların tekrar yorumlanması ve oturum/pencere kavramlarının yeniden tanımlanması nedeniyle, çoklayıcıların terminal ekosisteminin gelişimini yavaşlattığı yönünde eleştiriler de bulunuyor
tmux’a alternatif yaklaşım arayışı
- Oturum kalıcılığı:
- Basitçe
ctrl-z + fg, nohup, disown gibi yöntemler var, ancak tam bir ikame olmakta zorlanıyorlar
- Yalnızca oturumu korumayı hedefleyen çeşitli araçlar (
dtach, abduco, shpool) ortaya çıktı
fork() ve UNIX soketleri birleşimiyle daemon ile istemci arasında bağlantı kuruyorlar
- tmux’tan farklı olarak sanal split olmadan yerel scrollback desteği sağlıyor, bazıları buffer geri yükleme özelliği de sunuyor
- Deneyime göre, alternatif araçların çoğunda hatalar vardı ve
nvim içinde detach kısayolunun çalışmaması gibi nedenlerle olgunluk düzeyi düşüktü
- shpool, detach/attach komutları ve keymap özelleştirme açısından en olgun seçenekti
- Pencere yönetimi:
- Yerelde bölme ve yerleşim yönetimi pencere yöneticisiyle yapılıyor
- Uzak (SSH) ortamda da ssh_config ile shpool birleştirilerek, birden fazla oturum ayrı pencerelerde bağımsız biçimde korunabiliyor
- autossh ile birleştirildiğinde ağ yeniden bağlanmalarında da oturum korunuyor
Yeni iş akışı
- Kişisel olarak pencere yönetimi için ghostty (dizüstü), sway+foot (kişisel PC) kullanıyor. Sunucular ise Proxmox tabanlı headless VM’ler ve SSH geliştirme ortamı her zaman açık
- Birden fazla shpool oturumu, ssh kısayollarıyla otomatik bağlanacak şekilde ayarlanmış ve yerel pencere yöneticisinden bağımsız olarak kontrol ediliyor
ssh_config içinde her host için shpool oturumuna otomatik attach yapılandırılmış
- Her terminalde IRC, dotfiles yönetimi, ayrı neovim ortamı gibi çoklu oturumlara ayrı ayrı bağlanmak mümkün
- Yerel kaydırma, bildirimler, terminal başlığı gibi tmux’un kararsız destek verdiği işlevler artık daha doğal çalışıyor
- Dezavantajlar da var: vim’e yeniden bağlanınca terminal durumunun toparlanması gecikiyor ve
nvim kullanırken yeniden boyutlandırma sorunları görülüyor
- Çok oyunculu kullanım desteklenmiyor (birden fazla istemcide aynı anda autossh çalışırsa oturum çakışabiliyor)
- Buna rağmen kişisel ölçütlere göre tmux’un tamamen yerine geçti
Sonuç
- Tam olarak aynı olmasa da, tmux’un karmaşıklığı ve sınırlamalarından uzaklaşıp daha basit ve esnek bir oturum yönetimi iş akışına geçmek mümkün
- Kendi iş akışınıza göre shpool gibi alternatif araçları değerlendirmeye değer
Henüz yorum yok.