1

Я хочу найти способ, чтобы программа могла найти следующую информацию:

1) В каком окне я работаю?

2) Это окно - активное окно?

Идея в том, что в такой программе, как WeeChat, я переключаюсь в другое окно и работаю над чем-то. Когда я отключаюсь, я хочу запустить 'set_unread_current_buffer' - поэтому, когда я вернусь в это окно, у WeeChat будет строка после моих последних прочитанных сообщений.

Есть некоторые плагины WeeChat, но они выясняют, к какому сеансу присоединен WeeChat и подключен ли этот сеанс в настоящее время, и соответствующим образом устанавливают статус / отсутствующий.

Я ищу что-то подобное, но когда я меняю окна и просто запускаю 'set_unread_current_buffer' вместо /away

1 ответ1

2

Если вы выполняете команды внутри панели tmux , то вы можете использовать переменную окружения TMUX_PANE *, чтобы указать на «содержащую» панель.

Чтобы определить «содержащее» окно:

tmux display-message -pt "$TMUX_PANE" '#{session_name}:#{window_index}'

Или, в зависимости от ваших потребностей, вы можете использовать window_id . Страница man содержит список других переменных формата. Например, при запуске внутри панели эта команда

tmux display-message -pt "$TMUX_PANE" '#{window_active}'

выведет 1 если окно панели активно, или 0 противном случае.

Вы можете использовать pane_active если вам важно, активна ли конкретная панель.

Если вы хотите проверить какую-либо другую панель, вам нужно будет указать собственный идентификатор целевой панели (например, sess:win.0).


* tmux 1.5 и выше устанавливает TMUX_PANE для панели в уникальное значение при запуске своей начальной команды; другие программы, запускаемые через эту исходную программу, обычно наследуют эту переменную среды.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .