С обновлением ядра Linux до версии 7 и выше, у WindTerm 2.7 появилась проблема:
При подключении по SSH терминал показывает ESC‑последовательности при подключении к Ubuntu 26 из‑за нового механизма systemd OSC 3008, который WindTerm пока не умеет корректно обрабатывать.
Например, в Ubuntu Server за вывод OSC 3008 при инициализации оболочки и перед выполнением команд отвечает скрипт контекста systemd, подключаемый в /etc/profile.d/. Если эмулятор терминала (например, WindTerm, устаревшие версии Emacs или встроенные терминалы IDE) не поддерживает этот стандарт, он отображает управляющие коды как визуальный мусор или лишний символ: ]3008;start.
Что такое OSC‑контекст?
OSC‑контекст — это новый механизм systemd, который отправляет терминалу специальные управляющие последовательности (OSC‑коды), чтобы сообщать ему контекст текущей команды, каталога, пользователя и т. д.
Он позволяет терминалу:
• показывать правильный путь в заголовке окна
• отслеживать выполнение команд
• улучшать интеграцию с GUI
• делать умные подсказки
• улучшать историю команд
• улучшать работу с вкладками
Чтобы этого не происходило, нужно отключить OSC‑контекст на сервере. Отключение OSC контекста НЕ опасно, потому что это всего лишь косметическая функция systemd для «умных терминалов». Никаких критичных системных задач она не выполняет.
Как отключить OSC-контекст?
Шаг 1. Выполнить команду:
sudo mv /etc/profile.d/80-systemd-osc-context.sh /etc/profile.d/80-systemd-osc-context.sh.disabled
Эта команда отключит генерацию последовательностей OSC 3008 для всех пользователей на сервере.
Шаг 2. Выполнить команду:
sudo ln -sf /dev/null /etc/profile.d/80-systemd-osc-context.sh
Это нужно, чтобы обновления пакета systemd не перезаписали файл (не создавал симлинк в /dev/null)
Переподключитесь по SSH.
Также для проверки перезагрузите систему:
sudo reboot
И подключитесь снова.
