आप उपयोग कर सकते हैं display-message -p
आउटपुट को भेजने के लिए इसे आउटपुट से निकालने के लिए stdout में भेजें show-messages
:
tmux display-message -p '#I'
आप इस तरह संकलित संख्या में परिवर्तित कर सकते हैं ( दे घुमा के वाक्य - विन्यास; संस्करणों के साथ परीक्षण किया गया 3.2.48 और 4.2.20):
circled_digits=$(printf %s \${$'\xEA',\`,{a..s}} | iconv -f UTF-16BE)
# circled_digits='⓪①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳'
tmux_winidx_circled() {
local winidx=$(tmux display-message -p '#I')
if (( winidx > 20 )); then
echo "($winidx)"
else
echo "${circled_digits:$winidx:1}"
fi
}
पहली पंक्ति में यह अच्छा है कि यह शुद्ध ASCII है; यदि आपको अपनी कॉन्फ़िगरेशन फ़ाइल में गैर-ASCII वर्ण होने का मन नहीं है, तो आप इसके बजाय दूसरी पंक्ति के साथ जा सकते हैं (यह निश्चित रूप से इरादे को और अधिक स्पष्ट करता है, यह मानते हुए कि आपका संपादक और शेल फ़ाइल की एन्कोडिंग को ठीक से संभाल सकता है)।
तो आप इसे इस तरह से उपयोग कर सकते हैं:
PS1="$(tmux_winidx_circled) \W➤ "