我是 tmux 和 irssi 的狂热用户。我一直尝试在 tmux 中使用 nicklist.pl 和 irssi,但只成功了一半。我目前正在按照以下说明操作:在 tmux 内部使用屏幕通过 irssi 运行 nicklist?
但是它并不是每次都有效。如果我设置它,然后保存我的 irssi 配置,则每次我在 tmux 中打开 irssi 时,脚本(位于自动运行文件夹中)都不会创建 tmux 窗格并设置昵称列表。我该怎么做才能让它每次都有效?
答案1
您链接的解决方案从未说过它可以“自动”工作。每次您都需要手动拆分 tmux 窗口。irssi 本身无法控制 tmux 布局(尽管可以编写脚本 - 请参阅结尾的注释)。
如果你想自动启动nicklist
FIFO(这意味着“启动昵称列表的输出”——不是包括拆分 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 将调整窗格的大小,这将带来问题,因为
nicklist
需要知道演示窗口的宽度,以便正确处理换行和滚动nicklist
如果您想要处理全屏终端、25x80 和其他尺寸,窗格通常会变得太小而无法使用。
如果你经常这样做,请参阅“自动更新 nicklist.pl 的 tmux 窗格大小”部分安装并设置 BitlBee用于保持 tmux 窗格大小不变的 irssi 插件。