Intereting Posts
Почему в терминах Awesome появляются новые терминалы с SHLVL> 1? Автозапуск OpenVPN с systemd Контроль Исходный размер xfce4-терминала? Как узнать лицензию для каждого из моих установленных приложений / пакетов? Как преобразовать файл SELinux mypol.te в команды semanage для скрипта Полноэкранные программы обновляются только при перемещении мыши Запуск нескольких команд nohup в фоновом режиме Как установить путь в среде без оболочки (KDE)? Что делает эта команда «sudo pip3 install name-of-the-file.whl»? Есть ли способ узнать, когда / когда был вызван исполняемый файл? Почему нам не нужно вводить пароль для установки программного обеспечения в магазине приложений на Deepin? Сортировка файла на основе средней части Bash не читает .bashrc, если только не запущен вручную Нужно ли мне что-то делать с «Дельта RPMs отключено»? Какие библиотеки нужны, компиляция vim с gui (gvim) на OpenSUSE?

Имитация оболочки оболочки GNU в tmux

Я пытаюсь имитировать функцию shelltitle GNU Screen в tmux. В моем ~/.bashrc есть следующее:

 if [[ "$TERM" == screen* ]]; then SCREEN_ESC='\[\ek\e\\\]' else SCREEN_ESC='' fi PS1="\n\w ${SCREEN_ESC}$ " 

и следующее в моем ~/.screenrc :

 shelltitle "$ |bash" 

Установка shelltitle делает GNU Screen для поиска новой строки в оболочке и отбрасывает все символы от $PS1 до escape-символа и заменяет его первым найденным после него словом. Это более четко объясняется на странице руководства:

Вот как это работает: вы должны изменить приглашение командной строки для вывода нулевой последовательности-escape-последовательности (<esc> k <esc>) в качестве части вашего приглашения. Последняя часть вашего приглашения должна быть такой же, как строка, указанная для части поиска заголовка. Как только это настроено, на экране будет использоваться последовательность escape-последовательности заголовка, чтобы очистить предыдущее имя команды и подготовиться к следующей команде. Затем, когда новая строка получена из оболочки, выполняется поиск в конце подсказки. Если он найден, он будет захватывать первое слово после строки и будет использовать его в качестве имени команды. Если имя команды начинается с экрана «!», «%» Или «^», то первое слово в следующей строке (если найдено) будет использоваться в качестве предпочтительного имени.

Это отличается от set-option -g set-titles on tmux set-option -g set-titles on которых только фиксируется имя процесса. Таким образом, скрипт script.py на Python будет называться как script.py на экране (который так мне нужен), тогда как он будет называться как python в tmux (чего я не хочу).

Я знаю, что можно переименовать окна tmux :

 printf '\033kWINDOW_NAME\033\\' 

Поэтому мне было интересно, есть ли какой-то способ, которым я могу альтернативно позволить tmux знать, что я ввел новую команду. Если есть какой-то способ, я могу PROMPT_COMMAND команду, я мог бы использовать PROMPT_COMMAND Bash для этого. Есть идеи?