मैं वर्तमान में अपने होमबाइवर पर tmux सत्र में अपने जाबर क्लाइंट (जो ncurses का उपयोग करता है) के रूप में mcabber चला रहा हूं। स्थानीय रूप से मैं iTerm2 को एक टर्मिनल एमुलेटर के रूप में चलाता हूं, जो कि कैरेक्टर एस्केप सिक्वेंस के माध्यम से ग्रोथ नोटिफिकेशन को ट्रिगर करने का समर्थन करता है।
नोट: echo
इस प्रश्न में सभी काम करता है printf %b
, या echo -e
बैश और GNU में echo
।
उदाहरण के लिए echo "\e]9;foobar\007"
iTerm2 पाठ "फोब्बर" के साथ एक ग्रोएल संदेश भेजता है।
हालांकि, जब एक tmux सत्र में, भागने के क्रम खा जाते हैं। इसलिए मालिकाना चरित्र भागने के अनुक्रम \Ptmux
का उपयोग इस तरह किया जा सकता है:
echo "\ePtmux;\e\e]9;foobar\007\e\\"
यह tmux सत्र के भीतर से एक बढ़ते संदेश को ट्रिगर करता है।
हालाँकि, जब मैं अपने mcabber ईवेंट स्क्रिप्ट में इसका उपयोग करता हूं जो एक नया संदेश प्राप्त होने पर निकाल दिया जाता है, तो कोई सूचना ट्रिगर नहीं होती है, जैसे कि इको गलत टर्मिनल पर भेजा जाता है।
मुझे लगता है कि यह उस mcabber के साथ करना है जो स्क्रिप्ट को ट्रिगर करता है एक ncurses एप्लिकेशन है इसलिए मेरी सामान्य बैश स्क्रिप्ट से आउटपुट खो जाता है और iTerm 2 इसे कभी नहीं देखता है।
मैंने जो कुछ विचार खोजे, उनके प्रतिध्वनित होने से पहले मैंने सफलता के बिना स्मिच को कॉल करने का प्रयास किया
tput smcup
echo "\ePtmux;\e\e]9;$FROM: $MSG\007\e\\"
tput rmcup
मुझे लगता है कि यह काम नहीं करता है क्योंकि यह मुद्दा "वास्तविक टर्मिनल विंडो" पर वापस स्विच नहीं कर रहा है, लेकिन ncurses विंडो पर आउटपुट को अधिक निर्देशित कर रहा है।
इस पर कोई राय?