я запускаю tmux из tty на встроенном устройстве linux. (НЕ эмулятор терминала), поскольку экран довольно маленький, я хочу добавить несколько "значков" в строку состояния tmux. Чтобы добиться этого, я просто создал шрифт с соответствующими символами для таких вещей, как батарея или Wi-Fi. я могу загрузить шрифт и отображать символы с вызовами, которые используют escape для символов рисования линий, например так:
echo -e "\xe\234\xf"
\xe выводит меня в режим рисования линий, \234 - мой созданный символ, а \xf возвращает меня в нормальный режим символов, поэтому мой терминал не начинает тупить.
это прекрасно работает, если я ввожу команду на терминале, запущен ли tmux или нет. проблема возникает, если я тогда пытаюсь использовать его в моем файле ~/.tmux.conf для строки состояния. В настоящее время у меня есть такая строка:
set -g status-right "#(echo -e"\xe\234\xf ") #(/script/to/output/powerlevel)
это просто выводит
xe234xf powerlevel
это происходит так же, если я пытаюсь printf через эхо. это вывод, который я ожидал бы получить на терминале, если бы сделал вызов, не передавая -e в эхо, или не заключив оператор в кавычки.
Затем я решил обернуть вызовы echo или printf в сценарий оболочки. опять же, скрипт работает при вызове из терминала, но не в строке состояния tmux. теперь я получаю непечатный символ "�" вместо моего значка, например:
� уровень мощности
это то, что я ожидал бы, если бы я не использовал экранирование, упомянутое выше, или если я попытался скопировать и вставить символ как текст, используя tmux. Кроме того, вызов этих символьных сценариев портит остальную часть моего статуса-права, поскольку часы имеют около 6 цифр для минут при их вызове (хотя они корректно обновляют только две из них).
как я могу заставить tmux уважать escape-символы?
любая помощь или понимание очень ценится.