- लंबे समय तक tmux इस्तेमाल करने के बाद, हाल में इसकी जटिलता और सीमाओं (color compatibility, scrollback, mouse copy, protocol support की कमी आदि) को लेकर संशय महसूस हुआ
- सेशन persistence (detach/attach) या window split/management जैसी tmux की मुख्य क्षमताएँ सिर्फ tmux से ही संभव हों, ऐसा ज़रूरी नहीं है
- dtach, abduco, shpool जैसे Unix दर्शन वाले हल्के टूल्स का उपयोग करके, सिर्फ सेशन management पर ध्यान रखते हुए भी native scrollback और simplicity हासिल की जा सकती है
- खासकर
shpool + ssh संयोजन के ज़रिए कई remote sessions को सीधे window manager से manage करते हुए, native सुविधाएँ (notifications, scroll, titles आदि) वैसे की वैसी इस्तेमाल की जा सकती हैं
- यह परफेक्ट नहीं है, लेकिन लेखक के लिए यह tmux का पूरी तरह विकल्प बन सका, और सरल तथा आसानी से maintain होने वाला workflow संतोषजनक लगा
tmux के फायदे और नुकसान
- सेशन बनाए रखना (detach/attach), window management (tabs, split) आदि पहले से ही वर्कफ़्लो का मुख्य हिस्सा थे, जो tmux देता था
- लेकिन सही
TERM सेटिंग न होने पर color rendering की समस्या, और terminal व tmux के बीच interaction का ध्यान रखना पड़ना, जटिलता बढ़ा देता है
- scroll buffer का उपयोग भी tmux के अलग तरीके का अभ्यस्त होने की मांग करता है, और mouse से क्षेत्र copy करना भी splits वाले माहौल में असुविधाजनक था
- kitty graphics protocol जैसी नई terminal features के समर्थन की कमी, और experimental protocol support न होने की समस्या भी मौजूद है
- escape code की दोबारा व्याख्या और session/window जैसी अवधारणाएँ थोपने के कारण multiplexer को terminal ecosystem की प्रगति में बाधा मानने वाली आलोचना भी है
tmux के विकल्पों की खोज
- सेशन persistence:
- साधारण तौर पर
ctrl-z + fg, nohup, disown जैसे तरीके हैं, लेकिन ये पूरी तरह विकल्प नहीं बनते
- सिर्फ सेशन बनाए रखने के उद्देश्य वाले कई टूल्स (
dtach, abduco, shpool) सामने आए हैं
fork() और UNIX socket के संयोजन से daemon और client के बीच कनेक्शन बनता है
- tmux के विपरीत, virtual split के बिना native scrollback मिलता है, और कुछ में buffer restore की सुविधा भी है
- उपयोग अनुभव के अनुसार, ज़्यादातर विकल्पों में bugs हैं और
nvim के भीतर detach key combination के काम न करने जैसी वजहों से परिपक्वता कम लगी
- shpool ही detach/attach commands और keymap customization के लिहाज़ से सबसे अधिक परिपक्व लगा
- window management:
- local में window manager से split और layout manage किए जाते हैं
- remote (SSH) वातावरण में भी ssh_config और shpool के संयोजन से कई sessions को अलग-अलग windows में स्वतंत्र रूप से बनाए रखा जा सकता है
- autossh के साथ मिलाकर network reconnect की स्थिति में भी session बनाए रखे जा सकते हैं
नया workflow
- व्यक्तिगत रूप से ghostty (laptop), sway+foot (personal PC) से window management किया जाता है। server Proxmox-आधारित headless VM हैं, जहाँ हमेशा SSH development environment बना रहता है
- कई shpool sessions को ssh shortcuts से अपने-आप जोड़ा जाता है, और local window manager में स्वतंत्र रूप से नियंत्रित किया जाता है
ssh_config में हर host के लिए shpool session attach को automate किया गया है
- हर terminal में IRC, dotfiles management, अलग neovim environment आदि के लिए multiple sessions में अलग-अलग access संभव है
- native scroll, notifications, terminal titles जैसी वे सुविधाएँ, जिन्हें tmux अस्थिर रूप से support करता था, अब उल्टा अधिक स्वाभाविक ढंग से काम करती हैं
- कुछ कमियाँ भी हैं: vim से दोबारा जुड़ने पर terminal state restore में देरी, और
nvim इस्तेमाल करते समय resize की समस्या
- multiplayer support नहीं है (कई clients से autossh एक साथ होने पर session conflict)
- फिर भी, व्यक्तिगत उपयोग के आधार पर tmux का पूर्ण विकल्प सफल रहा
निष्कर्ष
- पूरी तरह वही अनुभव नहीं है, लेकिन tmux की जटिलता और सीमाओं से निकलकर अधिक सरल और लचीले session management workflow में बदला जा सकता है
- अपने-अपने workflow के अनुसार shpool जैसे वैकल्पिक टूल्स पर विचार किया जा सकता है
अभी कोई टिप्पणी नहीं है.