tmux не печатает цвета ANSI в строке состояния

Я использую Mac OSX Yosemite, и я использую istats для получения температуры процессора: istats_output

Я хотел поместить температуру процессора в строку состояния tmux, поэтому я сделал следующий конфиг tmux:

tmux_conf

Как вы можете видеть, когда я выполнил :source-file ~/.tmux.conf, tmux печатает коды ANSI как текст, а не отображает цвета. Как заставить tmux отображать коды цветов, а не печатать их как текст?

-1
13.05.2016, 03:03
2 ответа

Я решил проблему, написав простой скрипт на Python для замены кодов ANSI цветными переменными tmux.

#!/usr/local/bin/python

s = raw_input("")

s = s.replace('\x1b[32m', '#[fg=colour10]')
s = s.replace('\x1b[93m', '#[fg=colour11]')
s = s.replace('\x1b[0m', '#[fg=colour255]')

print s

Я просто передаю вывод в скрипт: istats | grep "CPU temp" | ansi2tmuxcolors.py

3
28.01.2020, 05:09

Я обобщил ответ Subliminalmau5, написав отдельную оболочку с

sed -r 's,\x1b\[38;5;([0-9]+)m,#[fg=colour\1],g'|sed -r 's,\x1b\[1m,#[bold],g'|sed -r 's,\x1b\[0m,#[default],g'

, который перевел все 256 цветов ANSI в tmux.

0
28.01.2020, 05:09

Теги

Похожие вопросы