4 पॉइंट द्वारा GN⁺ 2024-08-13 | 1 टिप्पणियां | WhatsApp पर शेयर करें

WezTerm उपयोग अनुभव

शुरू करने से पहले

  • WezTerm इंस्टॉल होना चाहिए
  • macOS उपयोगकर्ता Homebrew से इंस्टॉल कर सकते हैं ($ brew install wezterm)

Lua के बारे में

  • WezTerm की सेटिंग्स Lua में परिभाषित होती हैं
  • Lua अन्य dynamic programming languages जैसी है, इसलिए इसे पढ़ना आसान है
  • जटिल सेटिंग्स के लिए Lua को गहराई से सीखना उपयोगी है

कॉन्फ़िग फ़ाइल और फ़ीडबैक लूप

  • कॉन्फ़िग फ़ाइल $XDG_CONFIG_HOME/wezterm/wezterm.lua में होती है
  • कॉन्फ़िग फ़ाइल बदलने पर यह अपने आप reload हो जाती है
  • debug overlay (CTRL + SHIFT + L) से logs देखे जा सकते हैं

appearance सेटिंग्स

color theme

  • WezTerm 1,000 से अधिक color themes देता है
  • उदाहरण: config.color_scheme = 'Tokyo Night'

dynamic color theme

  • हर बार नई window खोलने पर random color theme बदलने के लिए example code दिया गया है

system appearance का सम्मान

  • सिस्टम के appearance mode के अनुसार color theme अपने आप बदलती है
  • appearance.lua फ़ाइल बनाकर सेट किया जा सकता है

font सेटिंग

  • डिफ़ॉल्ट font JetBrains Mono है
  • उदाहरण: config.font = wezterm.font({ family = 'Berkeley Mono' })

window styling

  • window background transparency और blur सेट किए जा सकते हैं
  • उदाहरण: config.window_background_opacity = 0.9

status bar सेटिंग

  • tab bar के दाईं ओर powerline style status bar जोड़ा जा सकता है
  • WezTerm के event API का उपयोग

key सेटिंग्स

default key mapping

  • default key mappings को रखा जा सकता है या disable किया जा सकता है (config.disable_default_key_bindings = true)

key mapping उदाहरण

  • Option + Left Arrow और Option + Right Arrow को शब्दों के बीच move करने के लिए map किया जा सकता है
  • कॉन्फ़िग फ़ाइल खोलने के लिए shortcut सेट करना (CMD + ,)

multiplexing फीचर

  • WezTerm के multiplexing फीचर का उपयोग
  • window split shortcut सेट करना (CTRL + SHIFT + P)

leader key सेटिंग

  • leader key को CTRL + A पर सेट करना
  • window split shortcut को leader key के साथ उपयोग करना

pane movement

  • panes के बीच move करने के लिए key mapping सेट करना (vim direction keys का उपयोग)

pane resizing

  • pane size बदलने के लिए key table सेट करना
  • leader key के साथ pane size adjust करना

project workspace

workspace बनाना और बदलना

  • projects.lua फ़ाइल बनाकर project switch function जोड़ना
  • project चुनने पर नया WezTerm workspace बनता है

GN⁺ का सारांश

  • WezTerm, Lua आधारित flexible configuration की वजह से गहरे customization की सुविधा देता है
  • auto reload और debug overlay की वजह से settings बदलना आसान है
  • multiplexing और workspace management फीचर्स मजबूत हैं, और विभिन्न key mappings से productivity बढ़ाई जा सकती है
  • समान फीचर्स देने वाले अन्य terminals में Alacritty और kitty शामिल हैं

1 टिप्पणियां

 
GN⁺ 2024-08-13
Hacker News राय
  • हाल ही में WezTerm पर स्विच किया और इससे बहुत संतुष्ट हूँ। पहले kitty इस्तेमाल करता था, और iTerm2 की settings और सादगी पसंद थी। WezTerm की built-in functionality उससे कहीं बेहतर है। terminal config इतनी छोटी है कि पूरी editor screen पर दिख जाती है। उसके बाद terminal की चिंता ही नहीं करनी पड़ती

    • kitty इस्तेमाल करते समय अक्सर समस्याएँ आती थीं, और iTerm2 की functionality दोबारा बनाने की कोशिश की, लेकिन kitty के maintainer की रूखी और उपेक्षापूर्ण टिप्पणियों से निराश हुआ
    • उदाहरण के लिए, "tmux को kitty में कैसे configure करूँ?" पूछने पर जवाब मिला, "मत करो, tmux बेवकूफी है।" आखिरकार छोड़ दिया
  • WezTerm GitHub issues पर बहुत तेज़ी से प्रतिक्रिया देता है, और आमतौर पर एक-दो दिन में समस्या ठीक कर देता है। SSH के जरिए modifier keys से जुड़ी एक छोटी समस्या को छोड़कर functionality लगभग perfect है। तेज़ है और अच्छा है

    • पहले Alacritty का बड़ा समर्थक था, लेकिन remote emacs के लिए बेहतर modifier support चाहिए था
  • Kubuntu से Ubuntu पर स्विच करते समय Konsole की कुछ सुविधाएँ (infinite scrollback, scrollback search) चाहिए थीं, लेकिन Konsole install नहीं करना चाहता था, इसलिए WezTerm install किया। WezTerm तुरंत पसंद आ गया, हालांकि इसकी कई सुविधाएँ आसानी से दिखती नहीं हैं। documentation बहुत अच्छी है, और लेखक बहुत सक्रिय और मददगार हैं

    • उदाहरण के लिए, सिर्फ keyboard से बड़े text blocks select करने का तरीका ढूँढकर एक बार आज़माया, लेकिन जल्दी भूल गया और फिर mouse से text select करने लगा। documentation page फिर से खोजने से यह तेज़ पड़ता है
    • संदर्भ के लिए, जिस page की तलाश थी वह है https://wezfurlong.org/wezterm/copymode.html
  • Mac Terminal, iTerm2, Kitty, Warp वगैरह आज़माए, लेकिन आखिरकार WezTerm पर टिक गया। इसे configure करना आसान है, तेज़ है, और दिखने में अच्छा है। एक theme भी बनाई

  • WezTerm का बड़ा फायदा क्या है? WezTerm पूरी तरह cross-OS support देता है, इसलिए इसे Linux, macOS, Windows सब पर इस्तेमाल किया जा सकता है। terminal config कई OS में साझा की जा सकती है

  • लगभग 1 साल से WezTerm इस्तेमाल कर रहा हूँ, और GitHub पर Wez को sponsor भी करता हूँ। WezTerm एक शानदार terminal है, और developer भी शानदार है। quick copy और दूसरे copy modes का अक्सर उपयोग करता हूँ

    • MacOS laptop से काम के Linux machine तक mosh+tmux जैसी setup इस्तेमाल करता हूँ। हमेशा sessions चलती रहती हैं ताकि Mac से work machine पर काम किया जा सके। यह reconnectable sessions, panes, और tabs देता है
  • iTerm2 का इस्तेमाल जारी रखने की वजह "Edit->Selection Respects Soft Boundaries" feature है। यह feature pipe character | को panel separator की तरह समझता है, इसलिए selection उसी हिसाब से wrap होती है

  • यहाँ दूसरे users की राय से सहमत हूँ। macOS इस्तेमाल करना शुरू किए लगभग 10 साल हो गए हैं, और iTerm2 इस्तेमाल करता आया हूँ। हाल में यह धीमा होने लगा। cmd-tab करने पर terminal दिखने तक 1 सेकंड से ज़्यादा इंतज़ार करना पड़ता था

    • कई alternatives देखे, लेकिन कोई पसंद नहीं आया। एक terminal में account/login चाहिए था, और दूसरा {Java,Type}Script में लिखा था, जिसमें simple commands भी async stream issues की वजह से टूट जाती थीं
    • WezTerm बहुत तेज़ है, configurable है, और by default OneDark (base16) theme देता है
    • शुरुआती setup में cmd-left और cmd-right को lua config में जोड़ना पड़ा
  • Wez Rust में system programming पर एक किताब प्रकाशित करने वाले हैं

  • OT: HashiCorp के संस्थापक द्वारा बनाए गए Ghostty का सबसे ज़्यादा इंतज़ार है