Я реализую консольное приложение Python, которое использует escape-коды ANSI для раскрашивания различных вещей. Я разрабатываю на Pop OS (производная от Ubuntu), и раскрашивание работает так, как задумано.
Я только что попробовал приложение на машине Centos, и хотя цвета отображаются правильно, есть дополнительный текст (крошечные квадратики с цифрами, расположенные вертикально), окружающий раскрашенный текст, который, по-видимому, соответствует escape-кодам.
Все escape-коды указаны в этом фрагменте Python:
style = ('\033[1m\033[3m' if bold and italic else
'\033[1m' if bold else
'\033[3m' if italic else
'\033[0m')
return f'\001{style}\002\001\033[38;5;{color.code}m\002{s}\001\033[0m\002'
(Я работаю над проектом https://github.com/geophile/marcel, и приведенный выше код взят из marcel.util.colorize().)
Что действительно странно, так это то, что в некоторых случаях лишних символов нет, а в других они есть. Кроме того, если я подключаюсь по ssh со своей машины с поп-ОС к машине с центосом, текст во всех случаях раскрашивается правильно.
Чем объясняется эта разница в поведении — чем-то в .bashrc? Что-то о конфигурации X?