21 पॉइंट द्वारा GN⁺ 2026-04-14 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • ~/.tmux.conf कॉन्फ़िग फ़ाइल के ज़रिए key bindings, रंग, status bar, mouse behavior आदि को अपनी पसंद के अनुसार बदला जा सकता है
  • डिफ़ॉल्ट Prefix key C-b को C-a में बदलकर और Caps Lock को Ctrl पर remap करके इनपुट दक्षता बढ़ाई जा सकती है
  • विंडो split को ", % की जगह |, - keys से अधिक सहज तरीके से किया जा सकता है, और r key से कॉन्फ़िग फ़ाइल को तुरंत reload किया जा सकता है
  • Alt + arrow keys से panel switching, mouse mode enable करना, window name का auto rename बंद करना आदि से उपयोग में आसानी बढ़ती है
  • रंग, status bar, messages, borders जैसे visual elements को बारीकी से सजाकर एक consistent theme बनाई जा सकती है

tmux customization की बुनियादी अवधारणाएँ

  • tmux कॉन्फ़िग फ़ाइल tmux.conf होती है, और इसे user home directory के ~/.tmux.conf में रखने पर यह व्यक्तिगत सेटिंग के रूप में लागू होती है
    • कई users के साथ साझा करने के लिए इसे system-wide directory में रखा जा सकता है, और इसका स्थान operating system के अनुसार अलग होता है
    • सही स्थान man tmux में -f option के विवरण से देखा जा सकता है
  • कॉन्फ़िग फ़ाइल को बदलकर key bindings, रंग, status bar, mouse behavior आदि को स्वतंत्र रूप से बदला जा सकता है

कम असुविधाजनक Prefix key सेट करना

  • डिफ़ॉल्ट Prefix key C-b को अधिक आसानी से पहुँचे जाने वाले C-a में बदला जा सकता है
    • C-a bash के “लाइन की शुरुआत पर जाएँ” कमांड से टकरा सकता है
    • Caps Lock key को Ctrl पर remap करने से Prefix combination दबाना और आसान हो जाता है
  • कॉन्फ़िग उदाहरण इस प्रकार है
    unbind C-b
    set-option -g prefix C-a
    bind-key C-a send-prefix
    
  • C-a C-a से पुराना bash कमांड अब भी इस्तेमाल किया जा सकता है

सहज विंडो split कमांड

  • डिफ़ॉल्ट split keys ", % की जगह दृश्य रूप से सहज |, - का उपयोग
    • | को horizontal split और - को vertical split के लिए सेट किया जाता है
    • पुरानी key bindings हटा दी जाती हैं
    bind | split-window -h
    bind - split-window -v
    unbind '"'
    unbind %
    

कॉन्फ़िग फ़ाइल को तेज़ी से reload करना

  • यदि tmux.conf को बार-बार बदला जाता है, तो इसे shortcut से तुरंत reload किया जा सकता है
    • r key पर कॉन्फ़िग फ़ाइल दोबारा लागू करने वाला कमांड bind किया जाता है
    bind r source-file ~/.tmux.conf
    

तेज़ panel switching

  • Alt (Meta) key + arrow keys से Prefix के बिना panels के बीच जाया जा सकता है
    • Alt-Left, Alt-Right, Alt-Up, Alt-Down से क्रमशः movement होता है
    bind -n M-Left select-pane -L
    bind -n M-Right select-pane -R
    bind -n M-Up select-pane -U
    bind -n M-Down select-pane -D
    

mouse mode सक्षम करना

  • mouse से windows चुनना और panel size बदलना संभव हो जाता है
    • keyboard-केंद्रित उपयोग डिफ़ॉल्ट है, लेकिन collaboration में यह उपयोगी है
    • pair programming जैसी स्थितियों में इसका अक्सर उपयोग किया जा सकता है
    set -g mouse on
    

window name का automatic rename बंद करना

  • हाथ से दिए गए window name को कमांड चलने पर अपने-आप overwrite होने से रोका जा सकता है
    set-option -g allow-rename off
    

tmux का रूप-रंग बदलना

  • रंग, status bar, messages, panel borders आदि को विस्तार से नियंत्रित किया जा सकता है
    • STYLES सेक्शन देखने पर कई visual elements की सेटिंग मिलती है
    • डिफ़ॉल्ट terminal colors (red, yellow, black आदि) इस्तेमाल करने पर theme के साथ स्वाभाविक मेल बैठता है
    • 256-color mode में colour0~colour256 निर्दिष्ट किया जा सकता है
  • उदाहरण कॉन्फ़िग में ये आइटम शामिल हैं
    • bell alert बंद**,** clock color yellow**,** copy mode style fg=black bg=red bold

    • panel border color red**,** active panel border yellow

    • status bar position bottom**,** बाईं ओर खाली जगह**,** दाईं ओर समय दिखाना

    • current window style fg=black bg=red**,** सामान्य window style fg=red bg=black

      • message style fg=yellow bg=red bold
      • इन सेटिंग्स से consistent रंग संयोजन और स्पष्ट दृश्य विभाजन मिलता है

अतिरिक्त संदर्भ सामग्री

  • अलग-अलग tmux कॉन्फ़िग उदाहरण GitHub के tmux.conf या dotfiles repositories में देखे जा सकते हैं
    • Reddit के /r/dotfiles, /r/unixporn भी संदर्भ के लिए उपयोगी हैं
  • पूरा कॉन्फ़िग GitHub dotfiles repository में सार्वजनिक है
  • गहराई से सीखने के लिए tmux man page और tmux wiki के Configuring tmux सेक्शन को देखने की सलाह दी जाती है
    • इनमें नवीनतम features और विस्तृत options शामिल हैं
  • यदि terminal color theme खुद डिज़ाइन करनी हो, तो Root Loops(https://rootloops.sh/) का उपयोग किया जा सकता है
    • यह व्यक्तिगत terminal color setup को समर्थन देता है

1 टिप्पणियां

 
GN⁺ 2026-04-14
Hacker News की राय
  • मैं पहले tmux इस्तेमाल करता था, लेकिन Zellij मिलने के बाद पूरी तरह उसी पर चला गया
    tabs और panels की सेटिंग कहीं ज़्यादा intuitive है, और mouse से scrolling और text selection आसान होने की वजह से copy-paste करना भी सुविधाजनक है

    • Zellij डाउनलोड पेज देखते हुए लगा कि काश लिंक में buttons का इस्तेमाल न किया गया होता
      button links में right-click copy नहीं हो पाता और accessibility के लिहाज़ से भी यह अच्छा नहीं है
    • Zellij की एकमात्र घातक कमी यह है कि keyboard से स्क्रीन पर copy/paste नहीं हो पाता, और यह कई clipboard buffers को support नहीं करता
      tmux में मैं यह feature हर 1~2 मिनट में इस्तेमाल करता हूँ, लेकिन Zellij developers कहते हैं कि data को editor में pipe कर दो, जो system clipboard के साथ compatible नहीं है
      इसलिए आखिरकार मैं tmux पर लौट आया
    • embedded devices इस्तेमाल करने वाले के नज़रिए से Zellij बहुत बड़ा है
      Zellij लगभग 50MB है, जबकि tmux dependencies सहित भी लगभग 2MB है, इसलिए size difference काफ़ी बड़ा है
    • पिछले 2 हफ्तों में मैंने zmx इस्तेमाल किया है, और कुछ screen repaint bugs होने के बावजूद ghostty के साथ यह काफ़ी आरामदायक लगा
    • मैं भी Zellij पर गया था, फिर वापस tmux पर आ गया
      Zellij धीरे-धीरे bloated होता गया और असुविधाजनक लगने लगा; अब मैं tmuxp से sessions configure करता हूँ और autossh से connection बनाए रखता हूँ, और इससे कहीं ज़्यादा संतुष्ट हूँ
  • key bindings की बात करें तो, ^a screen की परंपरा है और ^b tmux की
    कई systems संभालने वाले admin के लिए default keymap सीखना ज़रूरी है
    मैंने सिर्फ colors, active panel background, timestamp clock और mouse enable जैसी चीज़ें बदलीं, key bindings वैसे ही छोड़ीं
    आदत पड़ जाए तो defaults ही ज़्यादा सुविधाजनक लगते हैं

  • Shift+Enter काम न करने की वजह से मैंने tmux छोड़कर Zellij अपना लिया था
    लेकिन Zellij ने panic crash में process उड़ा दिए, इसलिए आखिरकार tmux पर लौट आया
    समाधान "bind-key -T root S-Enter send-keys C-j" था, जो इस issue में मिला

    • मैंने "bind -n S-Enter send-keys Escape '[13;2u'" से इसे ठीक किया
      pi.dev extended-keys setting न होने की warning देता है, लेकिन यह ठीक काम करता है
    • इसकी बदौलत मुझे वही समाधान मिल गया जिसकी तलाश थी
    • मैं जानना चाहता हूँ कि क्या ऐसा संभव है कि multiplexer मर जाए लेकिन child processes चलते रहें
      tmux में server को मारने पर child processes भी साफ़ हो जाते थे, जो सुविधाजनक था
    • मेरे मामले में Shift+Enter नहीं चलता, लेकिन Option+Enter से नई line insert हो जाती है (MacOS, Claude Code environment)
    • नई binding से बचना हो तो \ + Enter combination से भी यह किया जा सकता है
  • tmux का Control Mode जानने के बाद तो यह पूरा game changer लगा
    iTerm2 में tmux -CC चलाने पर tabs, scrolling, copy/paste, shortcuts वगैरह terminal-native तरीके से काम करते हैं
    tabs visually भी साफ़ दिखाई देते हैं, और beginners के लिए यह खास तौर पर उपयोगी है

    • इसी feature की वजह से मैं Mac इस्तेमाल कर रहा हूँ। 10 साल में Linux terminals में इसे लागू करने वाली कोई चीज़ नहीं देखी
    • मेरे यहाँ भी -CC mode एकदम सही काम कर रहा है
    • जानना चाहता हूँ कि क्या यह ghostty में भी काम करता है
    • अब जाकर समझ आया कि -CC क्या करता है
    • सचमुच हैरानी होती है
  • मैं tmux में Alt+number से तेज़ window switching इस्तेमाल करता हूँ
    उदाहरण: bind-key -n M-1 select-window -t :1 जैसी setting
    Alt-/ से vi-style copy mode भी खोला जा सकता है
    Wayland environment में wl-copy इस्तेमाल करके mouse drag या y key से copy किया जा सकता है
    मैंने Powerline-style design भी जोड़ा है, लेकिन इसके लिए powerline-fonts चाहिए

  • मैंने tmux को इतना ज़्यादा customize कर लिया था कि नए server पर ssh करते ही उसका basic usage भूल जाता था
    अब मैं इसे default settings पर ही इस्तेमाल करता हूँ। बस mouse scrolling setting हर बार बदलनी पड़ती है

    • पूछा गया कि क्या तुम dotfiles repository बनाकर tmux, zsh वगैरह की settings manage करते हो
    • यह कुछ-कुछ Emacs के श्राप जैसा है। अनंत customization संभव है, लेकिन आखिर में अपना ही एक अनोखा environment बन जाता है
      इससे जुड़ा एक concept The Lisp Curse भी है
    • मुझे भी यही समस्या हुई थी, लेकिन मैंने defaults को override करने के बजाय सिर्फ non-conflicting settings जोड़कर इसे हल किया
      जैसे Ctrl-b वैसा ही रखा और Ctrl-space को अतिरिक्त shortcut के रूप में इस्तेमाल किया
    • Emacs में भी मेरे साथ यही हुआ। disk crash में custom settings खो गईं, तो मैं लगभग default हालत में लौट आया
    • अब तो “Claude, मेरा tmux config उस server पर scp कर दो” जैसी मज़ाकिया बातें होने लगी हैं
  • iTerm2 में tmux के Control Mode ने मुझे प्रभावित किया
    local window manager की तरह remote terminal windows को control किया जा सकता है
    ghostty में भी इस feature का implementation चल रहा है, इसलिए उम्मीद है

  • tmux की default prefix key (C-b) को बहुत लोग अटपटी मानते हैं, लेकिन मुझे लगता है कि यही उसकी अटपटी प्रकृति उसका फ़ायदा है
    गलती से दब जाने की संभावना लगभग नहीं रहती
    split commands भी मुझे intuitive लगते हैं — % मुझे horizontal line जैसा और " vertical line जैसा महसूस होता है
    config reload की ज़रूरत शुरू में ज़्यादा पड़ती थी, अब लगभग नहीं पड़ती

    • मुझे भी default prefix key पसंद है
      ज़रूरत हो तो .tmux.conf में
      unbind-key -T prefix C-b
      set-option -g prefix C-s
      
      यह जोड़ सकते हैं। अगर सिर्फ local पर इस्तेमाल करते हैं तो conflicts की चिंता भी नहीं रहती
  • मुझे tmux बहुत पसंद है, लेकिन इसकी मुश्किल यह है कि इसके लिए 400-line config file चाहिए
    default रूप में यह बहुत friendly नहीं है, लेकिन अच्छी तरह हाथ लगाने पर शानदार बन जाता है
    मेरी config file देखी जा सकती है

    • मैंने कोई settings नहीं बदलीं, फिर भी यह काफ़ी usable लगा
      बस लगभग 9 shortcuts याद रखने पड़े
    • मेरी config file को मैंने इस तरह रखा है कि कहीं से भी wget या curl से आसानी से लिया जा सके
      PowerShell version भी जोड़ने वाला हूँ
    • मैंने jcs की config देखकर सिर्फ कुछ lines copy कीं
      prefix binding ही बस वापस पुरानी कर दी
  • पहले मैंने एक weekend में “tmux 2: mouse-free productivity” किताब पढ़ी थी, और यह मेरी productivity पर सबसे बड़ा असर डालने वाली किताबों में से एक थी
    इसका नया edition भी लगातार update हो रहा है → tmux 3: productive mouse-free development

    • बस अफ़सोस यह रहा कि किताब में tmux के मूल लेखक या उत्पत्ति का ज़िक्र नहीं था
    • अच्छे reference की जानकारी देने के लिए धन्यवाद