web-dev-qa-db-ja.com

irssiのニックリストを毎回表示するにはどうすればよいですか?

私はtmuxとirssiの熱心なユーザーです。私はtmuxのirssiでnicklist.plを使用しようとしてきましたが、半分しか成功していません。私は現在ここの指示に従っています: tmux内のscreenを使用してirssiでニックリストを実行していますか?

ただし、毎回機能するとは限りません。設定してからirssi構成を保存すると、スクリプト(autorunフォルダーにあります)はtmuxペインを作成せず、tmuxでirssiを開くたびにニックリストを設定します。毎回動作させるにはどうすればよいですか?

6
Rivasa

リンクするソリューションは、「自動的に」機能するとは決して言いません。毎回手動でtmuxウィンドウを分割する必要があります。 irssi自体には、tmuxレイアウトを制御する方法がありません(スクリプト化することはできますが、最後の注釈を参照してください)。

nicklist FIFO(「ニックリストの出力を開始する」を意味します)を自動的に開始する場合—notinclude 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で競合状態が発生し、2番目のペインがそれを読み取るのに間に合うようにFIFOを作成しません。その場合は、sleep 1などを追加してみてください。 catの前。)

ボーナスとして、このスクリプトは、重複するセッションを開始しようとするのではなく、利用可能なセッションが存在する場合、それを適切にアタッチします。

すべてのtmuxアクションは、tmuxバイナリと同様のコマンドライン引数として使用できます。


ペインを特定の端末サイズに設定するとします。サイズの異なる端末からこのセッションに接続すると、tmuxはペインのサイズを変更しますが、これは問題になるためです。

  1. nicklistは、改行とスクロールを正しく処理するために、プレゼンテーションウィンドウの幅を知る必要があります
  2. フルスクリーン端末、25x80およびその他のサイズを処理できるようにしたい場合は、nicklistペインが小さすぎて使用できないことがよくあります。

これが頻繁に行われることである場合は、tmuxペインサイズを一定に保つirssiプラグインについて、 BitlBeeのインストールとセットアップ の「nicklist.plのtmuxペインサイズの自動更新」セクションを参照してください。

7