Как получить и текущий рабочий каталог, и текущий процесс в строке состояния для tmux?

Как получить и текущий рабочий каталог, и текущий процесс в строке состояния для tmux?

Я хотел бы иметь две строки состояния, первая из которых показывала бы, в каком каталоге находится окно, а вторая — какой процесс запущен в окне. Возможно ли это? Я использую bash, но я открыт для перехода на другую оболочку, если так будет проще сделать такую ​​конфигурацию.

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

решение1

Действительно хороший вопрос. Я могу заставить его "работать", но недостаточно хорошо, чтобы быть "пригодным", IMHO. Я согласен, что это был бы хороший формат, если бы он работал достаточно хорошо. Я предоставлю здесь информацию, которую нашел, в надежде, что, возможно, вы (или кто-то другой, кто придет) сможете заполнить остальную часть головоломки.

Начиная с tmux 2.9 в 2019 году, можно легко добавить вторую строку статуса с помощью setw -g status 2. Формат для первой строки будет (оченьбазовыйверсия):

setw -g status-format[0] '#{W:#{pane_current_path} }' # or ...
setw -g status-format[0] '#{W:#(pwd) }'

Вторая строка будет такой:

setw -g status-format[1] '#{W:#{pane_current_command} }' # or possibly
setw -g status-format[1] '#{W:#W } # if there's no other function changing the window title'

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

Обратите внимание, что по умолчанию tmux обновляется только каждые 15 секунд. Вы можете обновить этот интервал, используя что-то вроде setw -g status-interval 1.

Также обратите внимание, что любую из команд можно использовать интерактивно в оболочке, просто добавив ее в начало tmux.

Связанный контент