我是 tmux 和 irssi 的狂热用户。我一直在尝试在 tmux 中使用带有 irssi 的 nicklist.pl,但只成功了一半。我目前正在按照此处的说明操作:使用 tmux 内的屏幕使用 irssi 运行 nicklist?
然而,它并不是每次都有效。如果我设置它,然后保存我的 irssi 配置,那么每次我在 tmux 中打开 irssi 时,脚本(位于 autorun 文件夹中)都不会创建 tmux 窗格并设置昵称。我该怎么做才能让它每次都起作用?
您链接的解决方案从未说它“自动”工作。您每次都需要手动拆分 tmux 窗口。irssi 本身无法控制 tmux 布局(尽管它可以编写脚本 - 请参阅结束语)。
如果要自动启动nicklist
FIFO(这意味着“启动昵称列表的输出”——不包括拆分 tmux 窗口和读取 FIFO),请添加nicklist fifo
为启动命令,例如通过
echo "nicklist fifo" >> ~/.irssi/startup
Run Code Online (Sandbox Code Playgroud)
如果您从 tmux 会话中运行 tmux 命令:
:split-window -h -l 20 'cat ~/.irssi/nicklistfifo'
Run Code Online (Sandbox Code Playgroud)
您将在右侧打开一个新的拆分窗口,宽 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
Run Code Online (Sandbox Code Playgroud)
(也许在nicklist.pl
没有及时创建 FIFO 以供第二个窗格读取它时会出现竞争条件;在这种情况下,请尝试sleep 1
在cat
.之前添加一个或其他内容。)
作为奖励,此脚本将优雅地附加到可用会话(如果存在),而不是尝试启动重复的会话。
所有 tmux 操作都可用作 tmux 二进制文件的类似命令行参数。
假设您将窗格设置为某个终端大小。如果您从具有不同大小的终端附加到此会话,tmux 将调整窗格的大小,这将是有问题的,因为
nicklist
需要知道演示窗口的宽度才能正确处理换行和滚动nicklist
如果您希望能够处理全屏终端、25x80 和其他尺寸,窗格通常会变得太小而无法使用。如果这是您经常做的事情,请参阅安装和设置 BitlBee 中的“自动更新 nicklist.pl 的 tmux 窗格大小”部分,以获取 irssi 插件,该插件可保持 tmux 窗格大小不变。
归档时间: |
|
查看次数: |
4800 次 |
最近记录: |