Как отобразить экранированные символы в строке состояния tmux

Я запускаю tmux с tty на встроенном устройстве linux. (Не эмулятор терминала) поскольку экран довольно маленький, я хочу добавить некоторые "значки" в строку состояния tmux. чтобы достичь этого, я просто создал шрифт с соответствующими символами для таких вещей, как аккумулятор или Wi-Fi. я могу загрузить шрифт и отобразить символы с вызовами, которые используют escape-символы для рисования линий, например:

echo-e "xe234xf"

xe ускользает от меня в режиме рисования символов 234-мой созданный персонаж, и xf возвращает меня в обычный режим символов, поэтому мой терминал не начинает становиться тупым.

Это отлично работает, если я ввожу команду в терминале, запущен ли tmux или нет. проблема возникает, если я попытаюсь использовать его в моем~/.tmux.файл conf для строки состояния. в настоящее время у меня есть такая строка:

установить-G статус-вправо "#(echo-e " xe234xf") #(/сценарий/до/выпуск/прокачать)

Это просто выводит

прокачать xe234xf

то же самое, если попробовать printf поверх echo. это вывод, который я ожидал бы получить на терминале, если бы я сделал вызов без передачи-e для Эха или без включения оператора с кавычками.

затем я решил обернуть вызовы echo или printf в сценарий оболочки. опять же, скрипт работает при вызове из терминала, но не в строке состояния tmux. сейчас я вам непечатный символ "�" вместо иконы, как это:

� powerlevel

Это то, что я ожидал бы, если бы я не использовал эскейпы рисования линий, ранее упомянутые выше, или если бы я попытался скопировать и вставить символ в виде текста с помощью tmux. кроме того, вызов этих символьных скриптов портит остальную часть моего статуса-правильно, так как часы имеют около 6 цифр в течение нескольких минут, когда они вызываются (хотя это корректно обновляет только два из них).

Как я могу сделать tmux уважать символы?

любая помощь или понимание будет высоко оценен.

1
задан walrus
01.05.2023 0:03 Количество просмотров материала 3389
Распечатать страницу

1 ответ

Ок, я нашел решение, наконец. вместо экранирования в альтернативный набор символов. я обнаружил, что эти символы также просто имеют шестнадцатеричное значение, связанное с ними. если я printf или echo-e, что шестнадцатеричное значение, то tmux будет отображать правильный символ.

проблема остается, однако, в том, что tmux покажет только правильный символ, если я оберну эти вызовы в сценарий оболочки, поскольку он по-прежнему не следует ни одному из экранирований (например, \x для hex). Если кто-нибудь может пролить свет или добавить понимание этого я бы все равно очень признателен.

0
отвечен walrus 2023-05-02 07:51

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх