Screen Irssi Bitlbee

提供: ArchWiki
2024年4月23日 (火) 00:04時点におけるKgx (トーク | 投稿記録)による版 (→‎Using Irssi in Screen: 翻訳)
ナビゲーションに移動 検索に移動

関連記事

GNU ScreenIrssiBitlbee、および SSH を一緒に使用すると、IRC サーバーや他のチャットネットワークへの永続的な接続が可能になります。SSH を介して、どこからでもこの永続チャットスイートにアクセスできます。ピースを組み立てるのは難しくありません。このページでそれをガイドします。

コンポーネント

GNU Screen

まずは GNU Screen を紹介します。Screen では、シェルをアクティブに使用していないときでも、シェルを開いたままにすることができます。ここではこれを使用して IRC セッションを永続的に維持し、IRC クライアントを閉じることなくどこからでも再接続できるようにします。GNU Screen および screen(1) を参照してください。

Irssi

Irssi はコマンドライン IRC クライアントです。非常に柔軟でスクリプト化が可能です。当然、これを IRC クライアントとして使用します。

Bitlbee

Bitlbee は興味深いプロジェクトです。ローカルマシン上に IRC サーバーをセットアップし、さまざまなインスタントメッセンジャープロトコルに接続し、ログインユーザーを IRC ユーザーとして表します。

SSH

SSH が何であるかは誰もが知っています。これにより、Web アクセスがあればどこからでも常設チャットスイートを使用できるようになります。

セットアップ

インストール

まず、opensshirssiscreenbitlbeeAUR をインストールします。

SSH の設定

SSH wiki ページ の指示に従って SSH を設定します。ここで要約するにはあまりにも複雑すぎます。

bitlbee の設定

本当に設定が必要なアプリケーションは Bitlbee だけです。必要に応じて、Bitlbee の wiki ページ の指示に従ってください。実際に行う必要があるのは、/etc/bitlbee/bitlbee.conf を参照して、好みに合わせて設定することだけです。以下に、注目に値するいくつかの変更を示します。

これにより、Bitlbee がデーモンとして実行され、参加するユーザーごとに新しいプロセスがフォークされます。これは、xinetd を介して実行するよりも簡単なので、お勧めします。

RunMode = ForkDaemon

これにより、デーモンは起動時に起動した後に root 権限を削除します。セキュリティのためにこれを実行してください。Bitlbee を root として実行する理由はありません。

User = bitlbee

ここで必ずパスワードを変更してください。

OperPassword =

Screen で Irssi を使用する

ターミナルを開いて Screen を実行します。著作権メッセージ (メッセージを無効にするには wiki を読んでください) の後に、普通の端末が表示されるはずです。このターミナルで irssi を起動します。

Irssi は本格的な IRC クライアントであるため、ここで完全なチュートリアルをリストすることはできません。irssi ができることの詳細については、Google で検索してください。好きな IRC ネットワークに接続してください。

Bitlbee に接続する

Bitlbee はローカルマシン上に IRC サーバーをセットアップします。接続するには、irssi でこれを実行します:

/connect localhost <optional port>

すぐに &bitlbee というチャンネルに参加する必要があります。ここでは、Bitlbee について簡単に説明します。開始するには、help と入力してください。Bitlbee をセットアップしてインスタントメッセンジャーアカウントに接続します。連絡先がチャンネルに参加していることがわかります。

Using It

Now that we have got Irssi, Bitlbee, and Screen all running, what can we do with it?

First, the whole point of this exercise was to create a persistent chat session that can be accessed from anywhere. From another computer, SSH into your server. Type in

screen -raAd 

and watch as irssi, with all of your channels and IM connections, pops up. Any messages left for you while you were away are visible, just as if you were at your server.

Launching the Setup

Since it is slow to manually connect to each IRC network, join channels, connect to Bitlbee, and have Bitlbee connect to your messaging accounts every time you you log in, set up some scripts to help you out.

First, create a screen initialization file. Here is an example:

~/irc_screen
source ~/.screenrc
screen -t IRC 1 irssi

This will launch irssi in window 1 and title the screen session 'IRC'.

Then set up a short script to launch screen with that configuration file:

~/bin/irc_start
#!/bin/sh
screen -d -m -c ~/irc_screen

The command line switches -d -m start screen in detached mode, so that it launches in the background. -c ~/irc_screen uses ~/irc_screen as the rc file for this session.

To launch and connect to the Screen session:

~/bin/irc_start
screen -raAd

Doing More

Look into configuring irssi to behave more like you want: https://www.quadpoint.org/articles/irssi

Auto-away on screen detach

Using the screen-away script, you can have yourself marked "away" on BitLBee when you disconnect your screen session. By default the script affects all servers but can easily be modified to only affect BitLBee.

Read more about scripts at the URL in 'Doing More'. Find the screen-away.pl script at https://scripts.irssi.org/

Modifying screen-away.pl for BitLBee

First you need the server tag for BitLBee. You can get this by typing "/server" in irssi. The tag is the first word on the line. For me, the tag is "BitLBee". On the line following

foreach $server (Irssi::servers()) {

(which occurs twice) insert the line

next unless ( $server->{chatnet} eq 'TAG' );

replacing TAG as necessary. In the current version, those occur on lines 181 and 206. To use the script you need to load it - unless if if autoloaded, and set it active.

/script load screen_away
/set screen_away_active on

Persisting the chat client through suspends and connectivity changes

If you use a laptop, you likely suspend and change wireless networks often, which causes your ssh client to lose connection. This can be annoying for a chat client you expect to always be available.

To fix this, try Mosh, which is a shell that seamlessly deals with reconnection after resuming or changing wireless networks.