WeeChat

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

WeeChat は高い拡張性を誇る機能豊富な IRC クライアントです。現在も活発に開発されています。

インストール

公式リポジトリから weechatインストールしてください。開発版は AURweechat-gitAUR でインストールできます。

実行

WeeChat は複数のインターフェイスを備えられるようになっています。weechat-[interface] を実行して WeeChat を起動してください。

現在のところ WeeChat には Ncurses インターフェイスしかありません。WeeChat の起動コマンドは:

$ weechat

設定

デフォルトでは、WeeChat は設定ファイルを XDG directory に保存します。WeeChat はいつでもファイルを書き込む可能性があるため、これらのファイルを直接編集することはお勧めできません。[1]

代わりに、/set コマンド を使用する必要があります。WeeChat バッファウィンドウで /set を実行すると、設定可能なすべてのオプションのリストを取得できます。デフォルトの設定可能なオプションは 600 近くあるため、ワイルドカード構文 (例として /set irc.server.* または /set *server*) を使用して検索できます。/help コマンドを使用すると、各オプションのヘルプを表示できます。

/help irc.server.libera.autoconnect
ヒント: すべての設定ファイルを単一のディレクトリに置きたい場合 (~/.weechat など)、このオプションを使用します: $ weechat -d $HOME/.weechat または環境変数 WEECHAT_HOME

サーバーに接続

IRC サーバーに接続するには、サーバーを追加してから /connect を使用します:

/server add libera irc.libera.chat/6697
/connect libera

詳細については、WeeChat のドキュメントと /help server を参照してください。

ノート: 事前にサーバーを追加せずに、/connect を使用した一時的なサーバー接続は許可されません。この機能を有効にするには、最初に /set irc.look.temporary_servers on を使用します。

SSL の設定

libera (#archlinux を含む) を含む多くの IRC サーバーは SSL をサポートしています。

/server でサーバーを作成している場合は、SSL ポート (通常は 6697) と -tls を行の最後に追加します。例えば:

/server add libera irc.libera.chat/6697 -tls
ノート: 一部のサーバーでは、ssl_dhkey_size の値をより低い値に変更する必要があります。たとえば、Libera を使用している場合は、コマンド /set irc.server.libera.tls_dhkey_size 1024 または /set irc.server.libera.tls_dhkey_size 1024 コマンドで値を設定する必要があります。(サーバーログを参照)

ヒントとテクニック‎

アップグレード

WeeChat は、IRC サーバーから切断せずにアップグレードできます (非 SSL 接続のみ):

/upgrade

これにより、新しい WeeChat バイナリがロードされ、現在の設定が再ロードされます。

エイリアス

エイリアスを作成して、一般的に実行されるコマンドを簡素化できます。良い例は、Wraithan の Smart Filter エイリアスです。

Smart Filter

まず、Smart Filter を有効にする必要があります。

/set irc.look.smart_filter "on"

次に、sfilter エイリアスを作成します。

/alias sfilter filter add irc_smart_$server_$channel irc.$server.$channel irc_smart_filter *

入力できるようになりました

/sfilter

任意のバッファにある場合、Smart Filter はそのバッファに対してのみ有効になります。

次のエイリアスは、現在のバッファーで以前に有効化された Smart Filter を削除する。エイリアスを追加します:

/alias rmsfilter filter del irc_smart_$server_$channel

実行

/rmsfilter

Exec コマンド

"exec" という新しいプラグインが追加され、コマンドは /exec です。外部コマンドを実行し、-o オプションを使用して現在のバッファに出力を表示することも、ローカル (デフォルト) で出力を表示することもできます。

キーバインド

参照 /help key

基本的な irssi スタイルのウィンドウスクロールを追加する例:

/key bind meta-p /window page_up
/key bind meta-n /window page_down

vimode プラグインを使用している場合、デフォルトのバインディングのほとんどは機能せず、vim のような代替手段が必要になります。バインディング を確認してください。

アイドル時に SSH の接続が切れる

SSH を使ってリモートシェルから WeeChat に接続している場合、例えば GNU Screentmux で WeeChat を実行している場合、アイドル状態でしばらくすると接続が切断されることがあります。この現象が発生する原因は複数ありますが、解決する最も簡単な方法はリモートシェル上の SSH 設定にこの設定を追加することで接続を強制的に維持することです。

これは WeeChat 自体とは関係ありませんが、アイドル時に接続が切断されることは代替の irssi ではデフォルトで起こりません。

# /etc/ssh/sshd_config
ClientAliveInterval 300

または、Mosh をご覧ください。

絵文字

絵文字はUnicodeセットの一部です。絵文字の要件:

  • ターミナルエミュレータはユニコードと絵文字サブセットをサポートしている必要があります。
  • ターミナルエミュレータで使用するフォントは、絵文字サブセットに対応している必要があります。

絵文字をサポートするターミナルの不完全なリスト:

マウスのサポート

ターミナルエミュレータはマウススクロールイベントを通過し、weechat は スクロールイン領域 を通過します。

  • チャットエリア
  • ニックネームリストバー

tmux 内のマウス

tmux で実行する場合は、~/.tmux.conf でマウスのサポートをオンにします。

set -g mouse on

Matrix

weechat-matrix スクリプトを使用すると、Matrix サーバーに接続できます。それをインストールしてから、次のようにします:

  1. Weechat 内で /script load weechat-matrix.py を実行してください、
  2. weechat-matrix を設定 します。
  3. Matrix チャンネルに参加するには、Matrix バッファ内で /join コマンドを使ってください。

WeeChat の起動時にスクリプトを自動的にロードするには、次のコマンドを実行します:

$ mkdir -p ~/.local/share/weechat/python/autoload
$ ln -s /usr/share/weechat/python/weechat-matrix.py -t ~/.local/share/weechat/python/autoload

Slack

Slack のネイティブクライアントがあります: wee-slack

デスクトップ通知

メンションまたはプライベートメッセージのデスクトップ通知を受信するには、Petr Zemek による weechat-notify-sendAUR スクリプトを インストール して下さい。

このスクリプトは libnotify を使用しており、KDE ​​と Gnome の両方で動作します。

組み込みの trigger プラグインを使用する別の方法は、trigger.trigger.beep.command の値を設定することです。

/set trigger.trigger.beep.command "/print -beep;/exec -bg notify-send -i '/usr/share/icons/hicolor/32x32/apps/weechat.png' 'IRC Notification' "${tg_tag_nick}: ${tg_message_nocolor}""

モバイルデバイスへの通知

メンションやプライベートメッセージの通知を Android モバイルデバイスで受信するには、公式サイト から WeeChat に IrssiNotifier ポートを接続してください。このスクリプトには Google アカウントと、API キーを取得するためのサービスプロバイダへの登録ステップが必要です。プラグインをインストールします

$ cd ~/.local/share/weechat/python
$ curl -O https://www.weechat.org/files/scripts/irssinotifier.py
$ ln -s ../irssinotifier.py autoload/

WeeChat で API トークンとエンドツーエンド暗号化パスワードを初期化します

/set plugins.var.python.irssinotifier.api_token your-api-token-from-website
/set plugins.var.python.irssinotifier.encryption_password your-password-same-as-in-andoid-app
/save

Google アカウントを必要としない代替手段として、GitHub にある NotifyMyAndroid.com 用の Ruby スクリプトがあります。上記と同様の手順で、~/.local/weechat/ruby にインストールしてください。

systemd ユーザーサービスを使用した WeeChat リレー

WeeChat インスタンスを他の WeeChat クライアントの WeeChat リレーとして使用するには (IRC リレー機能と混同しないでください)、必要に応じて、WeeChat リレープラグインと systemd/ユーザーサービス のいずれかを使用できます。ヘッドレス操作、または systemd ユーザーサービスと tmux を組み合わせて完全なコマンドライン機能を維持します。

どちらの方法でも、ディレクトリ ~/.config/systemd/user/ にサービスファイルを作成する必要があります。

tmux メソッド

systemd のジョブ管理方法と tmux のクライアントサーバ動作には非互換性があるため、-L オプションを使ってデフォルトの tmux セッションと systemd が管理する WeeChat セッションを分離してください。これがデフォルトソケットを使った最初の tmux セッションである場合、WeeChat ユーザサービスを停止して再起動すると、デフォルト tmux ソケットに接続されている全てのセッションが停止します。WeeChat tmux セッションが他のデフォルト tmux セッションの後に開始された場合、systemd が次のサービスユニットに移行すると WeeChat セッションは終了します。WeeChat tmux サーバを独自のソケットに隔離することで、systemctl を起動した際に期待通りの動作をします。ただし、-L を使って正しいソケットを選択しないと、tmux を使う際に WeeChat セッションが表示されないことを意味します。

~/.config/systemd/user/weechat.service
[Unit]
Description=A WeeChat client and relay service using Tmux
After=network.target

[Service]
Type=forking
RemainAfterExit=yes
ExecStart=/usr/bin/tmux -L weechat new -d -s weechat weechat
ExecStop=/usr/bin/tmux -L weechat kill-session -t weechat

[Install]
WantedBy=default.target

サービスが配置されたら、ユーザーユニットを 起動/有効化 して loginctl enable-linger を実行するだけです。

そこから tmux セッションに接続して、weechat リレープラグインを設定できます:

$ tmux -L weechat attach

そこから、コンソール上で希望の設定を使用して WeeChat リレープラグインを設定できます: https://www.weechat.org/files/doc/stable/weechat_user.en.html#relay_plugin

tmux ステータスバーを非表示にしたい場合は、このオプションを ExecStart に追加できます:

\; set-option status off

セッションで 256 色を表示するには、これを tmux 設定ファイルに追加する必要がある場合があります:

set -g default-terminal screen-256color

ヘッドレス方式

この方法の主な違いは、WeeChat を普通に起動し、リレープラグインを設定し、WeeChat を停止してからサービスを起動するか、WeeChat が起動していない状態で手動で relay.conf ファイルを編集してからサービスを起動する必要があるということです。いずれにせよ、systemd WeeChat サービスを開始する前にリレー設定を行う必要があります: https://www.weechat.org/files/doc/stable/weechat_user.en.html#relay_plugin

~/.config/systemd/user/weechat-headless.service
[Unit]
Description=A headless WeeChat client and relay service 
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/weechat-headless --daemon

[Install]
WantedBy=default.target

systemd が自動的に PID を追跡し、適切なシャットダウン信号をデーモンに送信するため、ExecStop を定義する必要がないことに注意してください。

ユーザーユニットを配置したら、それを 有効化 します。ヘッドレスリレーを開始する準備ができたら、ユーザーユニットを 起動 します。

トラブルシューティング

プラグインのロードエラー

weechat を開始すると、メイン ウィンドウに次のような出力が表示される場合があります:

13:26:10 =!= | Error: unable to load plugin "/usr/lib/weechat/plugins/ruby.so": libruby.so.2.4: cannot open shared object file: No such file or directory
13:26:10 =!= | If you're trying to load a script and not a C plugin, try command to load scripts (/perl, /python, ...)
13:26:10 =!= | Error: unable to load plugin "/usr/lib/weechat/plugins/lua.so": liblua.so.5.3: cannot open shared object file: No such file or directory
13:26:10 =!= | If you're trying to load a script and not a C plugin, try command to load scripts (/perl, /python, ...)
13:26:10 =!= | Error: unable to load plugin "/usr/lib/weechat/plugins/aspell.so": libaspell.so.15: cannot open shared object file: No such file or directory
13:26:10 =!= | If you're trying to load a script and not a C plugin, try command to load scripts (/perl, /python, ...)
13:26:10 =!= | Error: unable to load plugin "/usr/lib/weechat/plugins/tcl.so": libtcl8.6.so: cannot open shared object file: No such file or directory
13:26:10 =!= | If you're trying to load a script and not a C plugin, try command to load scripts (/perl, /python, ...)

weechat のデフォルト設定では、/usr/lib/weechat/plugins にあるすべてのプラグインをロードしようとします。この場合、ruby、lua、aspell、tcl が含まれます。これらのパッケージは weechat パッケージには必要ないため、マシンにインストールできない場合があります。これらのエラーが気になる場合は、次の 2 つのオプションがあります。

  1. rubyluaaspell、および/または tclインストール
  2. または、/set weechat.plugin.autoload "*,!ruby,!lua,!aspell,!tcl" を実行すると、(!) プレフィックスが付いたプラグインがロードされなくなります。

multiline.pl の読み込み中に問題が発生しました

この問題は、perl バージョン 5.31.1 以上で発生します。

multiline.pl スクリプトは、Pod::Select モジュールに依存します。ただし、perl バージョン v5.31.1 以降、Pod::Select は削除されました。

この問題を解決するには、perl-pod-parser をインストールします。

参照

ガイド