В tmux.conf установить параметр по-другому, если window_index равен 0?

Как сказал @steeldriver, формат был неправильным... Я удалил пользователя, и все заработало нормально. Спасибо вам за помощь.

Для тех, у кого похожая проблема, вот правильный синтаксис:

* * * * * cd "/ApplicationPath" && ./ApplicationName

Без пользователя.

1
24.11.2016, 12:13
2 ответа

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

set -gw window-status-format " #I:#W#{?window_flags,#{window_flags}, } "
set -w -t :0 window-status-format "#I:#W#{?window_flags,#{window_flags}, } "

Если это еще не очевидно:

  • Первая команда tmux устанавливает глобальное значение, для всех окон независимо от сессии. (Это также установка по умолчанию, вам вообще не нужна эта строка).

  • Следующая команда задает значение для целевого окна (опять же, независимо от сессии). В нашем случае мы говорим, что если индекс целевого окна, т.е. window_index, равен 0, т.е. если целевое окно также является первым окном в сессии, примените значение.

    Интересно, что опция -t (target-window) также нацелена на имя соответствующего окна в строке состояния. Если бы не это, данное решение не было бы таковым.

ПРИМЕЧАНИЯ:

  • Если вы используете другой базовый индекс, например, set -g base-index 1, чтобы он начинался с 1, а не с 0, то вам придется использовать :1 в приведенной выше команде.

  • Вам понадобится решение для этого, так как вы увидите ошибку при создании новой сессии, но, конечно, вы можете обойти это, как я описал там.

1
28.01.2020, 01:07

Я нашел другое решение:

is_first="#([ $(tmux display-message -p '#I') = $(tmux show-options -gqv base-index) ] && echo true)"
set -gw window-status-format "#{?$is_first,First is active,}"
0
28.01.2020, 01:07

Теги

Похожие вопросы