「WeeChat」の版間の差分
(→ヒントとテクニック: モバイルデバイスへの通知を翻訳して追加) |
(→ヒントとテクニック: systemd ユーザーサービスを使用した WeeChat リレーを翻訳して追加) |
||
194行目: | 194行目: | ||
Google アカウントを必要としない代替手段として、[https://github.com/jamtur01/nma-weechat GitHub] にある [https://www.notifymyandroid.com NotifyMyAndroid.com] 用の Ruby スクリプトがあります。上記と同様の手順で、{{ic|~/.local/weechat/ruby}} にインストールしてください。 |
Google アカウントを必要としない代替手段として、[https://github.com/jamtur01/nma-weechat GitHub] にある [https://www.notifymyandroid.com NotifyMyAndroid.com] 用の Ruby スクリプトがあります。上記と同様の手順で、{{ic|~/.local/weechat/ruby}} にインストールしてください。 |
||
+ | |||
+ | === systemd ユーザーサービスを使用した WeeChat リレー === |
||
+ | |||
+ | WeeChat インスタンスを他の WeeChat クライアントの WeeChat リレーとして使用するには (IRC リレー機能と混同しないでください)、必要に応じて、WeeChat リレープラグインと [[Systemd/ユーザー|systemd/ユーザーサービス]] のいずれかを使用できます。ヘッドレス操作、または systemd ユーザーサービスと [[tmux]] を組み合わせて完全なコマンドライン機能を維持します。 |
||
+ | |||
+ | どちらの方法でも、ディレクトリ {{ic|~/.config/systemd/user/}} にサービスファイルを作成する必要があります。 |
||
+ | |||
+ | ==== tmux メソッド ==== |
||
+ | |||
+ | systemd のジョブ管理方法と tmux のクライアントサーバ動作には非互換性があるため、{{ic|-L}} オプションを使ってデフォルトの tmux セッションと systemd が管理する WeeChat セッションを分離してください。これがデフォルトソケットを使った最初の tmux セッションである場合、WeeChat ユーザサービスを停止して再起動すると、デフォルト tmux ソケットに接続されている全てのセッションが停止します。WeeChat tmux セッションが他のデフォルト tmux セッションの後に開始された場合、systemd が次のサービスユニットに移行すると WeeChat セッションは終了します。WeeChat tmux サーバを独自のソケットに隔離することで、[[systemctl]] を起動した際に期待通りの動作をします。ただし、{{ic|-L}} を使って正しいソケットを選択しないと、tmux を使う際に WeeChat セッションが表示されないことを意味します。 |
||
+ | |||
+ | {{hc|~/.config/systemd/user/weechat.service|2= |
||
+ | [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 |
||
+ | }} |
||
+ | |||
+ | サービスが配置されたら、ユーザーユニットを [[起動/有効化]] して {{ic|loginctl enable-linger}} を実行するだけです。 |
||
+ | |||
+ | そこから tmux セッションに接続して、weechat リレープラグインを設定できます: |
||
+ | |||
+ | $ tmux -L weechat attach |
||
+ | |||
+ | そこから、コンソール上で希望の設定を使用して WeeChat リレープラグインを設定できます: https://www.weechat.org/files/doc/stable/weechat_user.en.html#relay_plugin |
||
+ | |||
+ | tmux ステータスバーを非表示にしたい場合は、このオプションを {{ic|ExecStart}} に追加できます: |
||
+ | \; set-option status off |
||
+ | |||
+ | セッションで 256 色を表示するには、これを tmux 設定ファイルに追加する必要がある場合があります: |
||
+ | set -g default-terminal screen-256color |
||
+ | |||
+ | ==== ヘッドレス方式 ==== |
||
+ | |||
+ | この方法の主な違いは、WeeChat を普通に起動し、リレープラグインを設定し、WeeChat を停止してからサービスを起動するか、WeeChat が起動していない状態で手動で {{ic|relay.conf}} ファイルを編集してからサービスを起動する必要があるということです。いずれにせよ、''systemd'' WeeChat サービスを開始する前にリレー設定を行う必要があります: https://www.weechat.org/files/doc/stable/weechat_user.en.html#relay_plugin |
||
+ | |||
+ | {{hc|~/.config/systemd/user/weechat-headless.service|2= |
||
+ | [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 を追跡し、適切なシャットダウン信号をデーモンに送信するため、{{ic|ExecStop}} を定義する必要がないことに注意してください。 |
||
+ | |||
+ | ユーザーユニットを配置したら、それを [[有効化]] します。ヘッドレスリレーを開始する準備ができたら、ユーザーユニットを [[起動]] します。 |
||
== トラブルシューティング == |
== トラブルシューティング == |
2023年11月16日 (木) 19:13時点における版
WeeChat は高い拡張性を誇る機能豊富な IRC クライアントです。現在も活発に開発されています。
インストール
公式リポジトリから weechat をインストールしてください。開発版は AUR の weechat-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
サーバーに接続
IRC サーバーに接続するには、サーバーを追加してから /connect
を使用します:
/server add libera irc.libera.chat/6697 /connect libera
詳細については、WeeChat のドキュメントと /help server
を参照してください。
サーバープロファイルの作成
If you plan on connecting to a server more than once it may be beneficial to create a Server.
/server add example irc.example.net/6667
Would create the server example which would connect to irc.example.net on port 6667
See the WeeChat documentation and /help server for more information.
SSL の設定
libera (#archlinux を含む) を含む多くの IRC サーバーは SSL をサポートしています。
/server
でサーバーを作成している場合は、SSL ポート (通常は 6697) と -tls
を行の最後に追加します。例えば:
/server add libera irc.libera.chat/6697 -tls
ヒントとテクニック
アップグレード
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 Screen や tmux で 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 サーバーに接続できます。それをインストールしてから、次のようにします:
- Weechat 内で
/script load weechat-matrix.py
を実行してください、 - weechat-matrix を設定 します。
- 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 つのオプションがあります。
- ruby、lua、aspell、および/または tcl を インストール
- または、
/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 をインストールします。
ヘルプの表示
To access WeeChat's built-in help, simply type
/help
and the help will be displayed in the main buffer (usually buffer 1).