display-message -p
Çıktıdan çıkarmak zorunda kalmamak için çıktıyı stdout'a göndermek için kullanabilirsiniz show-messages
:
tmux display-message -p '#I'
Bunun gibi daire içine alınmış sayılara dönüştürebilirsiniz ( bash sözdizimi; 3.2.48 ve 4.2.20 sürümleriyle test edilmiştir):
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
}
İlk satır saf ASCII olduğu için güzel; Konfigürasyon dosyanızda ASCII olmayan karakterlerin bulunmasına aldırış etmiyorsanız, bunun yerine ikinci satırla devam edebilirsiniz (editörünüzün ve kabuğun dosyanın kodlamasını doğru şekilde idare edebileceğini varsaymak niyetini daha belirgin kılar).
O zaman bu şekilde kullanabilirsin:
PS1="$(tmux_winidx_circled) \W➤ "