6

Я заядлый пользователь tmux и irssi. Я пытался использовать nicklist.pl с irssi в tmux только с половиной успеха. В настоящее время я следую инструкциям здесь: Запуск nicklist с irssi с использованием screen внутри tmux?

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

1 ответ1

7

Решение, на которое вы ссылаетесь, никогда не говорит о том, что оно работает "автоматически". Вам нужно каждый раз разбивать окно tmux вручную. Сам по себе irssi не может контролировать макет tmux (хотя это может быть написано в скрипте - см. примечание к окончанию).

Если вы хотите автоматически запустить FIFO для nicklist (что означает "инициировать вывод списка nick" - не включая разбиение окна tmux и чтение FIFO), добавьте nicklist fifo в качестве команды запуска, например, через

echo "nicklist fifo" >> ~/.irssi/startup

Если вы находитесь в сеансе tmux, запустите команду tmux:

:split-window -h -l 20 'cat ~/.irssi/nicklistfifo'

Вы откроете новое разделенное окно с правой стороны шириной 20 символов и начнете читать список ников в нем.

Вы можете написать простой скрипт запуска для tmux, который автоматизирует последний шаг (запускает irssi и разбивает окно для чтения FIFO). Вот небольшой пример:

#!/bin/sh
WNAME="irssi"
if ! tmux -L default attach-session -t ${WNAME}; then
    tmux new-session -d -s ${WNAME} 'irssi'
    tmux split-window -t ${WNAME} -h -l 20 'cat ~/.irssi/nicklistfifo'
    "${0}"
fi

(Возможно, в nicklist.pl будет условие гонки, которое не создает FIFO как раз для того, чтобы вторая панель прочитала его; в этом случае попробуйте добавить sleep 1 или что-то перед cat .)

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

Все действия tmux доступны в качестве аргументов командной строки для двоичного файла tmux.


Допустим, вы настроили панели на определенный размер терминала. Если вы присоединитесь к этому сеансу из терминала с другим размером, tmux изменит размеры панелей, что будет проблематично, так как

  1. nicklist должен знать ширину окна презентации, чтобы правильно обрабатывать переносы и прокрутку
  2. nicklist часто становится слишком маленькой, чтобы ее можно было использовать, если вы хотите работать с полноэкранными терминалами 25x80 и других размеров.

Если это то, что вы будете делать часто, см. Раздел «Автоматическое обновление размера панели tmux для nicklist.pl» в разделе « Установка и настройка BitlBee» для плагина irssi, который поддерживает постоянный размер панели tmux.

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