Skip to content

Latest commit

 

History

History
6192 lines (4788 loc) · 254 KB

weechat_user.ja.adoc

File metadata and controls

6192 lines (4788 loc) · 254 KB

WeeChat ユーザーズガイド

翻訳者:

このマニュアルは WeeChat チャットクライアントについての文書で、これは WeeChat の一部です。

Latest version of this document can be found on this page .

イントロダクション

WeeChat (Wee Enhanced Environment for Chat) はフリーのチャットクライアントです。高速で軽量、多くのオペレーティングシステムで動くように設計されています。

特徴

主な特徴:

  • マルチプロトコル (主に IRC)

  • 複数のサーバへの接続 (TLS、IPv6、プロキシをサポート)

  • コンパクト、高速、軽量

  • プラグインとスクリプトでカスタマイズや拡張が可能

  • IRC の RFC に準拠 1459 2810 2811 2812 2813 7194 

  • リモートインターフェース用の IRC プロキシとリレー

  • マルチプラットフォーム (GNU/Linux、*BSD、macOS、Windows 等)

  • 完全な GPL、フリーソフトウェア

The list of all features can be found on this page .

事前に必要なもの

WeeChat をインストールするには、以下のものが必要です:

  • GNU/Linux が稼動しているシステム (ソースパッケージを使う場合は、コンパイラツールも必要)、または互換 OS

  • root 特権 (WeeChat をシステムディレクトリにインストールする場合)

  • 一部のライブラリ (依存関係を参照)。

インストール方法

バイナリパッケージ

多くのディストリビューションではバイナリパッケージが利用できます。例えば:

  • Arch Linux: pacman -S weechat

  • Cygwin (Windows): setup.exe で WeeChat パッケージを選択してください

  • Debian/Ubuntu (または Debian 互換ディストリビューション): apt-get install weechat-curses weechat-plugins
    For latest versions and nightly builds: Debian repositories 

  • Fedora Core: dnf install weechat

  • FreeBSD: pkg install weechat

  • Gentoo: emerge weechat

  • Mandriva/RedHat (または RPM 互換ディストリビューション): rpm -i /path/to/weechat-x.y.z-1.i386.rpm

  • openSUSE: zypper in weechat

  • Sourcemage: cast weechat

  • macOS (with Homebrew ): brew install weechat (for help: brew info weechat)

例えば weechat-plugins 等の追加パッケージを使うとさらに便利になるかもしれません。

その他のディストリビューションでは、インストール説明マニュアルを参照してください。

Containers

Containers with WeeChat can be built or installed directly from the Docker Hub .
For more information, see the README in the weechat-container  repository.

ソースパッケージ

WeeChat must be built with CMake.

Note
macOS では Homebrew  を使ってください: brew install --build-from-source weechat

依存関係

The following table shows the list of packages that are required to build WeeChat:

パッケージ (1) バージョン Features

C コンパイラ (gcc / clang)

Compile C sources.

cmake

≥ 3.0

ビルド

pkg-config

インストール済みライブラリを検出

libncurses-dev

ncurses インターフェース

libcurl4-gnutls-dev

URL 転送

libgcrypt20-dev

保護データ、IRC SASL 認証

libgnutls28-dev

≥ 2.2.0 (2)

IRC plugin: support of TLS connections, IRC SASL authentication (ECDSA-NIST256P-CHALLENGE).
Relay plugin: support of TLS connections.

zlib1g-dev

Logger plugin: compression of rotated log files (gzip).
Relay plugin: compression of messages (WeeChat → client) with zlib  (weechat protocol).
Script plugin: read of repository index file (gzip).

Note
(1) Name comes from the Debian GNU/Linux Bookworm distribution, version and name can be different in other distributions.
(2) IRC SASL 認証で ECDSA-NIST256P-CHALLENGE を使うには、GnuTLS バージョン 3.0.21 以上が必要です。

The following table shows the list of packages that are optional to compile WeeChat:

パッケージ (1) バージョン Features

C++ コンパイラ (g++ / clang++)

ビルドとテストの実行、JavaScript プラグイン

gettext

国際化 (メッセージの翻訳; ベース言語は英語です)

ca-certificates

TLS 接続に必要な証明書、relay プラグインで TLS サポート

libcjson-dev

Relay plugin: protocol "api" (HTTP REST API).

libzstd-dev

≥ 0.8.1

Logger plugin: compression of rotated log files (zstandard).
Relay plugin: compression of messages (WeeChat → client) with Zstandard  (weechat protocol).

libaspell-dev / libenchant-dev

spell プラグイン

python3-dev

3.0 以上

python プラグイン

libperl-dev

perl プラグイン

ruby3.1, ruby3.1-dev

1.9.1 以上

ruby プラグイン

liblua5.4-dev

lua プラグイン

tcl-dev

8.5 以上

tcl プラグイン

guile-3.0-dev

2.0 以上

guile (scheme) プラグイン

libv8-dev

3.24.3 以下

javascript プラグイン

php-dev

7.0 以上

PHP プラグイン

libphp-embed

7.0 以上

PHP プラグイン

libxml2-dev

PHP プラグイン

libargon2-dev

PHP プラグイン (PHP 7.2 以上の場合)

libsodium-dev

PHP プラグイン (PHP 7.2 以上の場合)

asciidoctor

1.5.4 以上

man ページと文書のビルド

ruby-pygments.rb

Build documentation.

libcpputest-dev

3.4 以上

ビルドとテストの実行

Note
(1) Name comes from the Debian GNU/Linux Bookworm distribution, version and name can be different in other distributions.

Debian および Ubuntu ベースのディストリビューションを使っており、/etc/apt/sources.list ファイルで "deb-src" ソースエントリを指定しているならば、すべての依存関係にあるパッケージを以下のコマンドでインストール可能です:

# apt-get build-dep weechat

Build

  • システムディレクトリにインストールする場合 (root 特権が必要です):

$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
  • 任意のディレクトリ (例えば自分のホームディレクトリ) にインストールする場合:

$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/directory
$ make
$ make install

CMake に対するオプションを指定するには、以下の書式を使ってください: -DOPTION=VALUE

List of available options:

オプション デフォルト値 説明

CMAKE_BUILD_TYPE

Debug, Release, RelWithDebInfo, MinSizeRel

ビルド形式: WeeChat の開発版を使っている場合は Debug (または RelWithDebInfo) を推奨します。

CMAKE_INSTALL_PREFIX

directory

/usr/local

WeeChat をインストールするディレクトリ。

WEECHAT_HOME

directory

(empty string)

WeeChat 実行時のホームディレクトリ。
With an empty value (recommended), XDG directories are used by default. If non empty, a single directory for all files is used. The value can also be 4 directories separated by colons, in this order: config, data, cache, runtime.

ENABLE_ALIAS

ON, OFF

ON

Alias プラグインのコンパイル。

ENABLE_BUFLIST

ON, OFF

ON

Buflist プラグインのコンパイル。

ENABLE_CHARSET

ON, OFF

ON

Charset プラグインのコンパイル。

ENABLE_CJSON

ON, OFF

ON

Support of JSON with cJSON  library.

ENABLE_MAN

ON, OFF

OFF

man ページのコンパイル。

ENABLE_DOC

ON, OFF

OFF

HTML 文書のコンパイル。

ENABLE_DOC_INCOMPLETE

ON, OFF

OFF

Force build of documentation even if some plugins are not compiled (not recommended: docs will be incomplete).

ENABLE_ENCHANT

ON, OFF

OFF

Enchant と含めた Spell プラグインのコンパイル。

ENABLE_EXEC

ON, OFF

ON

Exec プラグインのコンパイル。

ENABLE_FIFO

ON, OFF

ON

Fifo プラグインのコンパイル。

ENABLE_FSET

ON, OFF

ON

Fset プラグインのコンパイル。

ENABLE_GUILE

ON, OFF

ON

Guile プラグイン (Scheme) のコンパイル。

ENABLE_HEADLESS

ON, OFF

ON

Compile headless binary.

ENABLE_IRC

ON, OFF

ON

IRC プラグインのコンパイル

ENABLE_JAVASCRIPT

ON, OFF

OFF

JavaScript プラグインのコンパイル。

ENABLE_LARGEFILE

ON, OFF

ON

巨大ファイルのサポート。

ENABLE_LOGGER

ON, OFF

ON

Logger プラグインのコンパイル。

ENABLE_LUA

ON, OFF

ON

Lua プラグインのコンパイル。

ENABLE_NCURSES

ON, OFF

ON

Ncurses インターフェースのコンパイル。

ENABLE_NLS

ON, OFF

ON

NLS の有効化 (多言語サポート)。

ENABLE_PERL

ON, OFF

ON

Perl プラグインのコンパイル。

ENABLE_PHP

ON, OFF

ON

PHP プラグインのコンパイル。

ENABLE_PYTHON

ON, OFF

ON

Python プラグインのコンパイル。

ENABLE_RELAY

ON, OFF

ON

リレープラグインのコンパイル。

ENABLE_RUBY

ON, OFF

ON

Ruby プラグインのコンパイル。

ENABLE_SCRIPT

ON, OFF

ON

スクリプトプラグインのコンパイル。

ENABLE_SCRIPTS

ON, OFF

ON

すべてのスクリプトプラグイン (Python、Perl、Ruby、Lua、Tcl、Guile、PHP) のコンパイル。

ENABLE_SPELL

ON, OFF

ON

Spell プラグインのコンパイル。

ENABLE_TCL

ON, OFF

ON

Tcl プラグインのコンパイル。

ENABLE_TRIGGER

ON, OFF

ON

Trigger プラグインのコンパイル。

ENABLE_TYPING

ON, OFF

ON

Typing プラグインのコンパイル。

ENABLE_XFER

ON, OFF

ON

Xfer プラグインのコンパイル。

ENABLE_ZSTD

ON, OFF

ON

Enable Zstandard  compression.

ENABLE_TESTS

ON, OFF

OFF

コンパイルテスト。

ENABLE_CODE_COVERAGE

ON, OFF

OFF

コードカバレッジオプションを有効化してコンパイル。
このオプションはテスト網羅率を測定するために用意されています。

その他のオプションは以下のコマンドで確認してください:

$ cmake -LA

Curses インターフェースを使う場合は以下のコマンドを使ってください:

$ ccmake ..

Tests

テストをコンパイルするには以下のパッケージが 必須 です:

  • libcpputest-dev

  • C++ compiler

テストは WeeChat のコンパイル時に有効化しなければいけません:

$ cmake .. -DENABLE_TESTS=ON

コンパイル終了後、build ディレクトリでテストを起動してください:

$ ctest -V

Git ソース

警告: Git ソースを用いる方法は上級者向けです。コンパイルに失敗したり、 不安定な可能性があります。警告しましたよ!

Git ソースを入手するには、以下のコマンドを使ってください:

$ git clone https://github.com/weechat/weechat.git

その後は、ソースパッケージの説明に従ってください (ソースパッケージを参照)。

クラッシュレポート

WeeChat がクラッシュした場合、または WeeChat をクラッシュさせる操作を報告する場合、以下の手順に従ってください:

  • Compile with:

    • debug info (or install binary package with debug info),

    • address sanitizer (optional).

  • システムの core ファイルを有効化

  • gdb のインストール

Debug build

CMake でコンパイルする場合:

$ cmake .. -DCMAKE_BUILD_TYPE=Debug

Address sanitizer

You can additionally enable the address sanitizer, which causes WeeChat to crash immediately in case of problem:

$ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address
Warning
You should enable address sanitizer only if you’re trying to cause a crash, this is not recommended in production.

Then once compiled and installed, you must run WeeChat like this:

$ ASAN_OPTIONS="detect_odr_violation=0 log_path=asan.log" weechat

In case of crash, the backtrace is in file asan.log.

Core ファイル

core ファイルを有効化するには、weechat.startup.sys_rlimit オプションを使ってください:

/set weechat.startup.sys_rlimit "core:-1"

WeeChat バージョン 0.3.8 以下または WeeChat の実行前に core ファイルを有効化したい場合には、ulimit コマンドを使ってください。

Linux で bash シェルを使っている場合、以下の内容を ~/.bashrc に追加してください:

ulimit -c unlimited

サイズを指定する場合は:

ulimit -c 200000

gdb でバックトレースを得る

オプションが有効の場合、WeeChat がクラッシュするとシステムは core または core.12345 ファイルを作ります (12345 はプロセス番号です)。このファイルは WeeChat を起動したディレクトリに作られます (これは WeeChat がインストールされているディレクトリでは ありません!)。

Note
On some systems like Archlinux, core dumps could be in another directory like /var/lib/systemd/coredump and you must use the command coredumpctl to read it.
For more information, see this wiki page .

例えば、weechat/usr/bin/ にインストールされ、core ファイルが /home/user/ にある場合、以下のコマンドで gdb を起動してください:

gdb /usr/bin/weechat /home/user/core

gdb の中で bt full コマンドを実行するとバックトレースが表示されます。以下のような出力が得られるはずです:

(gdb) set logging file /tmp/crash.txt
(gdb) set logging on
Copying output to /tmp/crash.txt.
(gdb) bt full
#0  0x00007f9dfb04a465 in raise () from /lib/libc.so.6
#1  0x00007f9dfb04b8e6 in abort () from /lib/libc.so.6
#2  0x0000000000437f66 in weechat_shutdown (return_code=1, crash=1)
    at /some_path/src/core/weechat.c:351
#3  <signal handler called>
#4  0x000000000044cb24 in hook_process_timer_cb (arg_hook_process=0x254eb90,
    remaining_calls=<value optimized out>) at /some_path/src/core/wee-hook.c:1364
        hook_process = 0x254eb90
        status = <value optimized out>
#5  0x000000000044cc7d in hook_timer_exec ()
    at /some_path/src/core/wee-hook.c:1025
        tv_time = {tv_sec = 1272693881, tv_usec = 212665}
        ptr_hook = 0x2811f40
        next_hook = 0x0
#6  0x000000000041b5b0 in gui_main_loop ()
    at /some_path/src/gui/curses/gui-curses-main.c:319
        hook_fd_keyboard = 0x173b600
        tv_timeout = {tv_sec = 0, tv_usec = 0}
        read_fds = {fds_bits = {0 <repeats 16 times>}}
        write_fds = {fds_bits = {0 <repeats 16 times>}}
        except_fds = {fds_bits = {0 <repeats 16 times>}}
        max_fd = <value optimized out>

このバックトレースを開発者に報告し、クラッシュを引き起こした動作を伝えてください。

ご協力ありがとうございます!

起動中の WeeChat のデバッグ

起動している WeeChat をデバッグするには (例えば WeeChat がフリーズしているような場合)、gdb の引数にプロセス番号を与えて起動します (12345 は weechat プロセスの PID に変更してください):

gdb /usr/bin/weechat 12345

クラッシュが起きた場合と同様に、bt full コマンドを使ってください:

(gdb) bt full

WeeChat の起動

WeeChat を起動させるには、以下コマンドを実行:

$ weechat

WeeChat の初回起動時にデフォルトのオプション設定を含む設定ファイルが ~/.config/weechat ディレクトリの中に作成されます (ファイルとディレクトリを参照してください)。

コマンドラインオプション

Some extra options are available for debug purposes only:

Warning
Do NOT use any of these options in production!

環境変数

以下の環境変数が定義されていた場合、WeeChat はそれを利用します:

変数名 説明

WEECHAT_HOME

WeeChat ホームディレクトリ (ここには設定ファイル、ログ、スクリプトなどがあります) Same behavior as CMake option WEECHAT_HOME.

WEECHAT_PASSPHRASE

暗号化データを復号化するためのパスフレーズ

WEECHAT_EXTRA_LIBDIR

プラグインをロードするための追加ディレクトリパス (設定したパス内の "plugins" ディレクトリからロードします)

Colors support

WeeChat ではバーやチャットエリアにおけるテキスト表示に 32767 個の色ペアを利用できます (この機能を利用するには WeeChat が実行されている端末が 256 色表示に対応している必要があります)。

TERM 環境変数の値によって、WeeChat で利用できる色と色ペアに以下の制限があります:

$TERM ペア

"rxvt-unicode", "xterm", …​

88

32767

"rxvt-256color", "xterm-256color", …​

256

32767

"screen"

8

64

"screen-256color"

256

32767

"tmux"

8

64

"tmux-256color"

256

32767

weechat --colors を実行するか、/color コマンドを WeeChat の中で実行することで、色表示の制限を確認できます。

256 色を利用したい場合に推奨される TERM 環境変数の値は:

  • screen 内の場合: screen-256color

  • tmux 内の場合: screen-256colortmux-256color

  • screen および tmux の外の場合: xterm-256colorrxvt-256colorputty-256color、…​

Note
TERM 環境変数の値に上の値を設定するには、"ncurses-term" パッケージをインストールする必要があるかもしれません。

screen を使っている場合、~/.screenrc に以下の内容を追加してください:

term screen-256color

TERM 変数が間違った値に設定された状態で WeeChat が起動完了している場合は、以下の 2 つのコマンドを使って変数の値を変更してください:

/set env TERM screen-256color
/upgrade

ファイルとディレクトリ

XDG directories

WeeChat uses XDG directories by default (according to the XDG Base Directory Specification ).
A single home directory for all files can be forced by CMake option WEECHAT_HOME, the environment variable WEECHAT_HOME or the command-line option -d / --dir.

When a single WeeChat home directory is not forced, XDG directories are used and set like this:

Directory Default value Fallback value if $XDG_XXX is not defined

config

$XDG_CONFIG_HOME/weechat

$HOME/.config/weechat

data

$XDG_DATA_HOME/weechat

$HOME/.local/share/weechat

cache

$XDG_CACHE_HOME/weechat

$HOME/.cache/weechat

runtime

$XDG_RUNTIME_DIR/weechat

Same as cache directory

The configuration files are created with default values the first time you run WeeChat.

WeeChat directories

The WeeChat directories are:

Path (1) 説明

~/.config/weechat/

WeeChat configuration files: *.conf, certificates, etc.

~/.local/share/weechat/

WeeChat data files: logs, scripts, scripts data, xfer files, etc.

   logs/

ログファイル (バッファごとに 1 つのファイル)

   python/

Python スクリプト

      autoload/

起動時に自動ロードされる Python スクリプト (2)

   perl/

Perl スクリプト

      autoload/

起動時に自動ロードされる Perl スクリプト (2)

   ruby/

Ruby スクリプト

      autoload/

起動時に自動ロードされる Ruby スクリプト (2)

   lua/

Lua スクリプト

      autoload/

起動時に自動ロードされる Lua スクリプト (2)

   tcl/

Tcl スクリプト

      autoload/

起動時に自動ロードされる Tcl スクリプト (2)

   guile/

Guile スクリプト

      autoload/

起動時に自動ロードされる Guile スクリプト (2)

   javascript/

JavaScript スクリプト

      autoload/

起動時に自動ロードされる JavaScript スクリプト (2)

   php/

PHP スクリプト

      autoload/

起動時に自動ロードされる PHP スクリプト (2)

~/.cache/weechat/

WeeChat cache files: scripts cache.

/run/user/1000/weechat/

WeeChat runtime files: FIFO pipe, Relay UNIX sockets.

Note
(1) XDG directories may be different according to your environment variables XDG_*.
(2) このディレクトリには親ディレクトリ内にあるスクリプトへのシンボリックリンクのみが含まれることが多いです。

WeeChat files

WeeChat ホームディレクトリには以下のファイルが含まれます:

ファイル 説明 データ保護

weechat.conf

WeeChat の主要設定ファイル

保護される場合もあります (例: 保存されたバッファレイアウトに含まれるチャンネルのリスト)

sec.conf

機密データを含む設定ファイル

保護されます、機密性の高いデータ: このファイルを誰かと共有してはいけません

plugins.conf

プラグイン設定ファイル

保護される場合もあります、プラグインおよびスクリプトに依存します

alias.conf

alias プラグイン用の設定ファイル

保護される場合もあります、エイリアスに依存します

buflist.conf

buflist プラグイン用の設定ファイル

保護されません

charset.conf

charset プラグイン用の設定ファイル

保護されません

exec.conf

exec プラグイン用の設定ファイル

保護されません

fifo.conf

fifo プラグイン用の設定ファイル

保護されません

fset.conf

fset プラグイン用の設定ファイル

保護されません

guile.conf

guile プラグイン用の設定ファイル

保護されません

irc.conf

irc プラグイン用の設定ファイル

保護されます: サーバ、nickserv、チャンネルのパスワードを保存することが可能です (これらのデータが sec.conf に保存されない場合)

javascript.conf

javascript プラグイン用の設定ファイル

保護されません

logger.conf

logger プラグイン用の設定ファイル

保護されません

lua.conf

lua プラグイン用の設定ファイル

保護されません

perl.conf

perl プラグイン用の設定ファイル

保護されません

php.conf

php プラグイン用の設定ファイル

保護されません

python.conf

python プラグイン用の設定ファイル

保護されません

relay.conf

relay プラグイン用の設定ファイル

Yes: it can contain relay password and TOTP secret (if not stored in sec.conf), allowed IP addresses/websocket origins and opened ports.

ruby.conf

ruby プラグイン用の設定ファイル

保護されません

script.conf

script プラグイン用の設定ファイル

保護されません

spell.conf

spell プラグイン用の設定ファイル

保護されません

tcl.conf

tcl プラグイン用の設定ファイル

保護されません

trigger.conf

trigger プラグイン用の設定ファイル

保護される場合もあります、トリガに依存します

typing.conf

typing プラグイン用の設定ファイル

保護されません

xfer.conf

xfer プラグイン用の設定ファイル

保護されません

weechat.log

WeeChat ログファイル

保護されません

Important
手作業で設定ファイルを編集することは 推奨されません。なぜなら WeeChat は常時 (例えば /quit コマンドの実行時など) 設定ファイルに書き込む可能性がありますし、手作業で修正を加えた後には必ず /reload コマンドを実行しなければいけない (これには /save を使って保存されていない変更を失うリスクがある) からです。
設定を編集するには /set コマンドを使ってください。これは値を検査し、設定の変更をすぐに適用します。

Upgrade

If a new stable version of WeeChat is released, this is time for you to switch to this version.

First of all, you must install the new version of WeeChat, either with your package manager or by compiling yourself, so that the weechat binary and all required files are in the same paths.
This can be done while WeeChat is running.

Upgrade command

WeeChat can restart the new binary, in place, using the /upgrade command: the buffer contents and non-TLS connections are preserved.
The TLS connections are lost during upgrade and are restored automatically after the upgrade (reload of TLS sessions is currently not possible with GnuTLS).

The command can also be used if you have to restart the machine, for example to upgrade the kernel or to move your WeeChat to another machine:

/upgrade -quit

This saves the current state in *.upgrade files. You can then either reboot or move the whole WeeChat directories (config, data, cache) to another machine, and restart WeeChat later with this command:

$ weechat --upgrade

Restart after upgrade

Release notes

After an upgrade, it is strongly recommended to read the release notes  which contain important information about breaking changes and some manual actions that could be required.

You must read the release notes of all versions between your old (excluded) and your new version (included).
For example if you switch from version 3.0 to 3.2, you must read release notes of versions 3.1 and 3.2.

Configuration upgrade

WeeChat has an automatic upgrade of configuration files (*.conf):

  • new options are silently added with default value

  • obsolete options are automatically discarded and WeeChat displays a warning with the value read from file.

Example of warning when an option has been removed:

=!= 警告: /home/user/.config/weechat/sec.conf, 行 15: セクション "crypt" の無効なオプション: passphrase_file = ""

That means the option sec.crypt.passphrase_file has been removed, and you had value set to empty string, which was the default value in the previous version (in this case no manual action is required).

Interface

画面レイアウト

WeeChat を起動した端末の例:

 ▼ "buflist" バー   ▼ "title" バー
┌──────────────────────────────────────────────────────────────────────────────────────┐
│1.libera │Welcome to #test, this is a test channel                                    │
│  weechat│12:52:27   --> | Flashy (flashcode@weechat.org) has joined #test    │@Flashy│
│2.  #test│12:52:27    -- | Nicks #test: [@Flashy @joe +weebot peter]          │@joe   │
│3.  #abc │12:52:27    -- | Channel #test: 4 nicks (2 ops, 1 voice, 1 normal)  │+weebot│
│4.  #def │12:52:27    -- | Channel created on Tue Jan 27 06:30:17 2009        │peter  │
│5.  #ghi │12:54:15 peter | hey!                                               │       │
│         │12:55:01  @joe | hello                                              │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │[12:55] [5] [irc/libera] 2:#test(+n){4}* [H: 3:#abc(2,5), 5]                │
│         │[@Flashy(i)] hi peter!█                                                     │
└──────────────────────────────────────────────────────────────────────────────────────┘
            ▲ "status" と "input" バー                               "nicklist" バー ▲

By default, the screen is divided up into the following areas:

  • チャットログが表示されるチャットエリア (画面の真ん中)、それぞれの行は:

    • 時刻

    • プレフィックス ("|" の前)

    • メッセージ ("|" の後)

  • チャットエリアの周りにあるバー、デフォルトバーは:

    • バッファリスト (buflist) バー、左端

    • タイトル (title) バー、チャットエリアの上

    • 状態 (status) バー、チャットエリアの下

    • 入力 (input) バー、状態バーの下

    • ニックネームリスト (nicklist) バー、右端

バッファリスト (buflist) バーは以下の初期要素を持っています:

要素 説明

buflist

1.weechat

バッファ一覧

状態 (title) バーは以下の初期要素を持っています:

要素 説明

buffer_title

Welcome to #test

バッファタイトル

状態 (status) バーは以下の初期要素を持っています:

要素 説明

time

[12:55]

時刻

buffer_last_number

[5]

リスト中の最後のバッファ番号

buffer_plugin

[irc/libera]

現在のバッファのプラグイン (irc プラグインではバッファで利用されている IRC サーバ名を追加できます)

buffer_number

2

現在のバッファの番号

buffer_name

#test

現在のバッファの名前

buffer_modes

+n

IRC チャンネルモード

buffer_nicklist_count

{4}

Number of nicks displayed in nicklist.

buffer_zoom

!

! はマージされたバッファがズームされている状態 (ズームされたものだけを表示する状態) を示します、空の場合はすべてのマージされたバッファが表示されていることを示します

buffer_filter

*

フィルタ表示: * の場合いくつかの行がフィルタされ (隠され) ます、空の場合すべての行が表示されます。

scroll

-MORE(50)-

スクロール表示、最後の行が表示されてから追加された行数を含む。

lag

[Lag: 2.5]

遅延秒表示 (遅延が短い場合は非表示)

hotlist

[H: 3:#abc(2,5), 5]

変化のあったバッファのリスト (未読メッセージ) (例では、#abc に 2 個のハイライトと 5 個の未読メッセージ、5 番目のバッファに 1 個の未読メッセージがあることを意味します。)

completion

abc(2) def(5)

補完候補の単語リスト、各単語に対して適応される補完候補の数を含む。

入力 (input) バーは以下の初期要素を持っています:

要素 説明

input_prompt

[@Flashy]

入力プロンプト、irc の場合: ニックネームとモード (libera では "+i" モードは不可視状態を意味します)

away

(away)

離席状態表示

input_search

[Search lines (~ str,msg)]

Search indicator (see below).

input_paste

[Paste 7 lines ? [ctrl-y] Yes [ctrl-n] No]

行をペーストする場合にユーザへ行われる質問

input_text

hi peter!

入力テキスト

There are two search modes:

  • search in lines, for example [Search lines (~ str,msg)], with the following info:

    • ~: 大文字小文字を区別しない

    • ==: 大文字小文字を区別する

    • str: 検索文字列

    • regex: 検索正規表現

    • msg: メッセージ部分から検索

    • pre: プレフィックス部分から検索

    • pre\|msg: プレフィックス部分とメッセージ部分から検索

  • search in commands history, for example [Search command (~ str,local)], with the following info:

    • ~: 大文字小文字を区別しない

    • ==: 大文字小文字を区別する

    • str: 検索文字列

    • regex: 検索正規表現

    • local: search in buffer local history

    • global: search in global history.

ニックネームリスト (nicklist) バーは以下の初期要素を持っています:

要素 説明

buffer_nicklist

@Flashy

現在のバッファのニックネーム一覧

その他の利用可能な要素 (初期状態のバーはこれらの要素を持ちません):

要素 説明

buffer_count

10

開いているバッファの総数

buffer_last_number

10

Number of the latest buffer (can be different from buffer_count if option weechat.look.buffer_auto_renumber is off).

buffer_nicklist_count_all

4

Number of visible groups and nicks in nicklist.

buffer_nicklist_count_groups

0

Number of visible groups in nicklist.

buffer_short_name

#test

現在のバッファの短い名前

buflist2

1.weechat

List of buffers, second bar item (see option buflist.look.use_items).

buflist3

1.weechat

List of buffers, third bar item (see option buflist.look.use_items).

buflist4

1.weechat

List of buffers, fourth bar item (see option buflist.look.use_items).

buflist5

1.weechat

List of buffers, fifth bar item (see option buflist.look.use_items).

fset

buflist.look.sort: …

Help on currently selected option on fset buffer.

irc_channel

#test

現在の IRC チャンネル名

irc_host

user@host.com

Current IRC host.

irc_nick

Flashy

Current IRC nick.

irc_nick_host

Flashy!user@host.com

Current IRC nick and host.

irc_nick_modes

i

自分のニックネームに対する IRC モード

irc_nick_prefix

@

IRC nick prefix on channel.

mouse_status

M

マウスの状態 (マウスが無効化されている場合は空文字列)

spell_dict

fr,en

現在のバッファにおけるスペリング辞書

spell_suggest

print,prone,prune

カーソル下の単語に対するスペリング候補 (スペルが間違っている場合)

tls_version

TLS1.3

TLS version in use for current IRC server.

window_number

2

現在のウィンドウ番号

Each aspect of the layout can be customized with the appropriate command: /bar to customize the bars, /buffer and /window to customize buffers and windows, and /layout to name, save and restore the screen layout and the association between windows and buffers.

コマンドライン

WeeChat コマンドライン (ウィンドウの一番下にあります) はコマンドの実行やバッファにテキストを送信するために利用します。

文法

コマンドは "/" 文字で始まり、コマンドの名前を続けます。例えば、すべてのオプションを表示するには:

/set

"/" が最初に無い場合、そのテキストはバッファに送信されます。例えば、hello というテキストをバッファに送信するには:

hello

"/" 文字から始まるテキストを送信したい場合、2 重に "/" をつけます。例えば、/set というテキストを現在のバッファに送信するには:

//set

色コード

IRC 等のプラグインでは、以下の色コードと属性を利用できます (kbd:[Ctrl+c] の後に、オプションとともに以下のキーを押してください):

キー 説明

kbd:[Ctrl+c], kbd:[b]

テキストを太字に

kbd:[Ctrl+c], kbd:[c], kbd:[xx]

テキスト表示色を xx に (以下の色リストを参照)

kbd:[Ctrl+c], kbd:[c], kbd:[xx], kbd:[,], kbd:[yy]

テキスト表示色を xx に、背景色を yy に (以下の色リストを参照)

kbd:[Ctrl+c], kbd:[d], kbd:[xxxxxx]

Text color xxxxxx (RGB as hexadecimal, for example FF0000 for red).

kbd:[Ctrl+c], kbd:[d], kbd:[xxxxxx], kbd:[,], kbd:[yyyyyy]

Text color xxxxxx and background yyyyyy (RGB as hexadecimal).

kbd:[Ctrl+c], kbd:[i]

テキストをイタリック体に

kbd:[Ctrl+c], kbd:[o]

テキスト表示色と属性をリセット

kbd:[Ctrl+c], kbd:[v]

テキストを反転 (テキスト表示色と背景色の入れ替え)

kbd:[Ctrl+c], kbd:[_]

テキストに下線を引く

Note
The same code (without number for kbd:[Ctrl+c], kbd:[c] and kbd:[Ctrl+c], kbd:[d]) can be used to stop the attribute.

kbd:[Ctrl+c], kbd:[c] 用の色コード:

Note
端末で利用可能なすべての色を表示するには、WeeChat で /color を実行した後 kbd:[Alt+c] を入力するか、端末で以下のコマンドを実行してください: weechat --colors

Example: display of "hello Alice!" with "hello" in light blue bold and "Alice" in light red underlined:

^Cc12^Cbhello ^Cb^Cc04^C_Alice^C_^Cc!

Keys:

kbd:[Ctrl+c] kbd:[c] kbd:[1] kbd:[2] kbd:[Ctrl+c] kbd:[b]
kbd:[h] kbd:[e] kbd:[l] kbd:[l] kbd:[o] kbd:[Space]
kbd:[Ctrl+c] kbd:[b] kbd:[Ctrl+c] kbd:[c] kbd:[0] kbd:[4] kbd:[Ctrl+c] kbd:[_]
kbd:[A] kbd:[l] kbd:[i] kbd:[c] kbd:[e]
kbd:[Ctrl+c] kbd:[_] kbd:[Ctrl+c] kbd:[c]
kbd:[!]

Note
irc プラグインでは、irc.color.mirc_remap を使ってこれらの色を別の色に対応付けることができます。

バッファとウィンドウ

バッファ は番号、名前、表示された行 (とその他の情報) で構成されています。

バッファの例:

  • コアバッファ (起動時に WeeChat が作成、閉じることはできません)

  • irc サーバ (サーバからのメッセージを表示)

  • irc チャンネル

  • irc プライベートメッセージ

window はバッファを表示する画面エリアのことです。画面を複数のウィンドウに分割することができます (examples below, see the /window command for details).

それぞれのウィンドウは 1 つのバッファを表示します。バッファは隠したり (ウィンドウに表示しない)、複数のウィンドウに表示することできます。

Screen layouts and the association between windows and buffers can be saved and restored.

Examples

水平方向分割の例 (/window splith):

                               ▼ ウィンドウ #2 (バッファ #4)
┌──────────────────────────────────────────────────────────────────────────────────────┐
│1.libera │Welcome to #def                                                             │
│  weechat│12:55:12     Max | hi                                               │@Flashy│
│2.  #test│12:55:20 @Flashy | hi Max!                                          │Max    │
│3.  #abc │                                                                    │       │
│4.  #def │                                                                    │       │
│5.  #ghi │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │[12:55] [5] [irc/libera] 4:#def(+n){2}                                      │
│         │[@Flashy]                                                                   │
│         │────────────────────────────────────────────────────────────────────────────│
│         │Welcome to #abc                                                             │
│         │12:54:15 peter | hey!                                               │@Flashy│
│         │12:55:01  @joe | hello                                              │@joe   │
│         │                                                                    │+weebot│
│         │                                                                    │peter  │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │[12:55] [5] [irc/libera] 3:#abc(+n){4}                                      │
│         │[@Flashy] hi peter!█                                                        │
└──────────────────────────────────────────────────────────────────────────────────────┘
                               ▲ ウィンドウ #1 (バッファ #3)

垂直方向分割の例 (/window splitv):

┌──────────────────────────────────────────────────────────────────────────────────────┐
│1.libera │Welcome to #abc                      │Welcome to #def                       │
│  weechat│12:54:15 peter | hey!        │@Flashy│12:55:12     Max | hi         │@Flashy│
│2.  #test│12:55:01  @joe | hello       │@joe   │12:55:20 @Flashy | hi Max!    │Max    │
│3.  #abc │                             │+weebot│                              │       │
│4.  #def │                             │peter  │                              │       │
│5.  #ghi │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │[12:55] [5] [irc/libera] 3:#abc(+n)  │[12:55] [5] [irc/libera] 4:#def(+n)   │
│         │[@Flashy] hi peter!█                 │[@Flashy]                             │
└──────────────────────────────────────────────────────────────────────────────────────┘
                 ▲ ウィンドウ #1 (バッファ #3)         ▲ ウィンドウ #2 (バッファ #4)

垂直方向 + 水平方向分割の例:

                                                       ▼ ウィンドウ #3 (バッファ #5)
┌──────────────────────────────────────────────────────────────────────────────────────┐
│1.libera │Welcome to #abc                      │Welcome to #ghi                       │
│  weechat│12:54:15 peter | hey!        │@Flashy│12:55:42 @Flashy | hi         │@Flashy│
│2.  #test│12:55:01  @joe | hello       │@joe   │12:55:56    alex | hi Flashy  │alex   │
│3.  #abc │                             │+weebot│                              │       │
│4.  #def │                             │peter  │                              │       │
│5.  #ghi │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │[12:55] [5] [irc/libera] 5:#ghi(+n)   │
│         │                             │       │[@Flashy]                             │
│         │                             │       │──────────────────────────────────────│
│         │                             │       │Welcome to #def                       │
│         │                             │       │12:55:12     Max | hi         │@Flashy│
│         │                             │       │12:55:20 @Flashy | hi Max!    │Max    │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │                             │       │                              │       │
│         │[12:55] [5] [irc/libera] 3:#abc(+n)  │[12:55] [5] [irc/libera] 4:#def(+n)   │
│         │[@Flashy] hi peter!█                 │[@Flashy]                             │
└──────────────────────────────────────────────────────────────────────────────────────┘
                 ▲ ウィンドウ #1 (バッファ #3)         ▲ ウィンドウ #2 (バッファ #4)

最小限表示

「最小限表示」と呼ばれる特殊な表示状態を使うことで、(マウスを使って) 長い URL を簡単にクリックしたり、テキストを簡単に選択できるようになっています。

最小限表示は以下の機能を持っています:

  • 現在のバッファの内容だけを表示: 分割ウィンドウやバー等 (タイトル、ニックネームリスト、状態、入力、…​) も表示しない

  • WeeChat マウスサポートを無効化 (有効化されていた場合): 端末でやるのと同じように URL をクリックしたりテキストを選択できます

  • ncurses を使わない、このため URL を行の最後で分断されることがなくなります。

最小限表示を有効化するデフォルトキーは kbd:[Alt+l] (L) で、終了するには同じキーを押してください (また、デフォルトでは入力が変更された場合に最小限表示を終了します、weechat.look.bare_display_exit_on_input オプションを参照)。

weechat.look.bare_display_time_format オプションを使えば、時間書式を変更することも可能です。

/window コマンドを使えば、指定秒後に最小限表示を有効化することができます。

WeeChat が以下のような表示状態の場合:

┌──────────────────────────────────────────────────────────────────────────────────────┐
│1.libera │Welcome to #abc                                                             │
│  weechat│12:52:27   --> | Flashy (flashcode@weechat.org) has joined #abc     │@Flashy│
│2.  #test│12:52:27    -- | Nicks #abc: [@Flashy @joe +weebot peter]           │@joe   │
│3.  #abc │12:52:27    -- | Channel #abc: 4 nicks (2 ops, 1 voice, 1 normal)   │+weebot│
│4.  #def │12:52:27    -- | Channel created on Tue Jan 27 06:30:17 2009        │peter  │
│5.  #ghi │12:54:15 peter | hey!                                               │       │
│         │12:55:01  @joe | peter: hook_process: https://weechat.org/files/doc │       │
│         │               | /weechat/devel/weechat_plugin_api.en.html#_weechat │       │
│         │               | _hook_process                                      │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │                                                                    │       │
│         │[12:55] [5] [irc/libera] 3:#abc(+n){4}                                      │
│         │[@Flashy(i)] hi peter!█                                                     │
└──────────────────────────────────────────────────────────────────────────────────────┘

最小限表示では以下の様に表示されます:

┌──────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│                                                                                      │
│12:52 --> Flashy (flashcode@weechat.org) has joined #abc                              │
│12:52 -- Nicks #abc: [@Flashy @joe +weebot peter]                                     │
│12:52 -- Channel #abc: 4 nicks (2 ops, 1 voice, 1 normal)                             │
│12:52 -- Channel created on Tue Jan 27 06:30:17 2009                                  │
│12:54 <peter> hey!                                                                    │
│12:55 <@joe> peter: hook_process: https://weechat.org/files/doc/weechat/devel/weechat_│
│plugin_api.en.html#_weechat_hook_process                                              │
└──────────────────────────────────────────────────────────────────────────────────────┘

このため、端末で問題なく joe さんからの URL をクリックできます (もちろん、使用中の端末で URL をクリックできるように設定されていなければいけませんが)。

Buffers

行の書式

書式付きバッファに表示される各行は以下のフィールドから構成されます:

フィールド 表示状態 説明

日付/時間 (メッセージ)

表示

メッセージの日付および時間 (おそらく過去)。

日付/時間 (表示)

非表示

WeeChat がメッセージを表示した時間。

プレフィックス

表示

メッセージのプレフィックス、通常ニックネーム。

メッセージ

表示

メッセージ自体。

表示状態

非表示

ブール値: 行が表示された場合には真、行が /filter コマンドでフィルタされた場合には偽。

ハイライト

非表示

ブール値: 行がハイライトされている場合には真、それ以外の場合には偽。

タグ

/debug tags の実行で表示状態を切り替え

行に関連付けられたタグ (行のタグ参照)。

外観オプション(weechat.look.*) と色オプション (weechat.color.chat_*) を使えば、行の表示をカスタマイズすることが可能です。

行のタグ

WeeChat は様々な目的で各行にタグを付けます:

  • ハイライト

  • 通知レベル

  • ログ記録

  • /filter コマンドの使用

/debug tags コマンドでタグを表示することが可能です (タグを非表示にする場合も同じコマンドを使います)。

通常使用するタグ (一部抜粋したリスト):

タグ 説明

no_filter

フィルタできない行

no_highlight

ハイライトできない行

no_log

ログファイルに書き込まれない行

log0 … log9

行に対するログレベル (/help logger を参照)

notify_none

The line must not be added to hotlist. (1)

notify_message

The line is a user message. (1)

notify_private

The line is a private message. (1)

notify_highlight

The line is a message with highlight. (1)

self_msg

自分のメッセージ

nick_xxx

ニックネーム "xxx" からのメッセージ

prefix_nick_ccc

プレフィックスを色 "ccc" のニックネームにします

host_xxx

メッセージ中のユーザ名とホスト

irc_xxx

IRC メッセージ "xxx" (コマンドまたは 3 桁の番号)

irc_numeric

IRC 番号メッセージ

irc_error

IRC からのエラー

irc_action

あるニックネームからのアクション (/me コマンド)

irc_ctcp

CTCP メッセージ

irc_ctcp_reply

CTCP メッセージに対する返信

irc_smart_filter

"smart filter" でフィルタリング可能な IRC メッセージ

away_info

離席状態のメッセージ

Note
(1) When no tag "notify_xxx" is present, the default level is "low". If a tag "notify_xxx" is present, the real notify level can be different, for example if a max hotlist level is used for a nick, the notify level can be lower than the value in the tag.

Local variables

Local variables can be defined in all buffers.

A local variable has:

  • a name (string)

  • a value (string, can be empty).

Local variables can be set by WeeChat, plugins, scripts, or manually on the command line in the buffer;

For example to add the local variable "completion_default_template":

/buffer setvar completion_default_template %(my_completion)

To list local variables in the current buffer:

/buffer listvar

To remove the local variable "completion_default_template":

/buffer delvar completion_default_template

By default WeeChat and its default plugins interpret these variables:

Name Value Description

away

any string

Away message on the server, set by irc plugin.

channel

any string

Channel name, set by irc/xfer plugins and debug buffer of relay/trigger plugins.

charset_modifier

any string

Charset modifier for the server buffer, set by irc plugin.

completion_default_template

any string

Default completion template for the buffer, overriding the option weechat.completion.default_template.

filter

any string

Filter defined on some buffers like /fset, /list (irc), /server raw (irc) and /script.

host

any string

Self host (if known), set by irc plugin.

lag

any string

Lag on the server, set by irc plugin.

name

any string

Buffer name (be careful, this is not the full name and this name is not enough to identify or search a buffer).

nick

any string

Self nick, set by irc and xfer plugins.

no_log

1 (or any non-empty string)

If set, the logger plugin does not log anything for the buffer.

plugin

any string

Name of plugin which created the buffer (core for WeeChat buffers).

script_close_cb

any string

Close callback defined by a script for a buffer.

script_close_cb_data

any string

Data for close callback defined by a script for a buffer.

script_input_cb

any string

Input callback defined by a script for a buffer.

script_input_cb_data

any string

Data for input callback defined by a script for a buffer.

script_name

any string

Name of the script which created the buffer.

server

any string

Server name, set by irc plugin and debug buffer of relay/trigger plugins.

spell_suggest

any string

Misspelled word and suggestions (format: "misspelled:suggestions"), set by spell plugin.

trigger_filter

any string

Trigger filter, set by trigger plugin.

type

any string, for example: channel, debug, exec, option, private, relay, script, server, user, xfer

Type of buffer, set by WeeChat and many plugins.

Note
External plugins and scripts can define and use other local variables.

List of buffers

Buflist プラグインを使うことで、"buflist" と呼ばれるバー要素の中にバッファリストを表示させることが可能になります (four other bar items "buflist2", "buflist3", "buflist4" and "buflist5" are available as well)。
プラグインは開始時にバー要素 "buflist" を持つデフォルトバー "buflist" を作成します。

オプション

buflist.conf ファイル内のセクション:

セクション 操作コマンド 説明

format

/set buflist.format.*

バッファリストの表示書式

look

/set buflist.look.*

外観

オプション:

Cursor mode

The cursor mode allows you to move freely the cursor anywhere on screen, in chat area and bars, and lets you perform actions at the given position.
You can enter in cursor mode either with the command /cursor or with a mouse middle click (mouse must have been enabled with key kbd:[Alt+m] or command /mouse enable).

Typical use is to quote messages (chat area) or interact with nicks (nicklist bar).

See command /cursor and key bindings in cursor context for the list of actions you can perform in this mode.

Key bindings

WeeChat provides a lot of default key bindings, listed in the following chapters.
They can be changed and new ones can be added with the /key command.

コマンドライン用のキー

Cursor movement

キー 説明 コマンド

kbd:[←]
kbd:[Shift+←]
kbd:[Ctrl+b]

コマンドラインで前の文字に移動

/input move_previous_char

kbd:[→]
kbd:[Shift+→]
kbd:[Ctrl+f]

コマンドラインで次の文字に移動

/input move_next_char

kbd:[Shift+↑]

Go to previous line.

/input move_previous_line

kbd:[Shift+↓]

Go to next line.

/input move_next_line

kbd:[Ctrl+←]
kbd:[Alt+b]

コマンドラインで前の単語に移動

/input move_previous_word

kbd:[Ctrl+→]
kbd:[Alt+f]

コマンドラインで次の単語に移動

/input move_next_word

kbd:[Home]
kbd:[Ctrl+a]

Go to the beginning of current line.

/input move_beginning_of_line

kbd:[Shift+Home]

Go to the beginning of command line.

/input move_beginning_of_input

kbd:[End]
kbd:[Ctrl+e]

Go to the end of current line.

/input move_end_of_line

kbd:[Shift+End]

Go to the end of command line.

/input move_end_of_input

Editing

キー 説明 コマンド

kbd:[Del]
kbd:[Ctrl+d]

コマンドラインで次の文字を削除

/input delete_next_char

kbd:[Backspace]
kbd:[Ctrl+h]

コマンドラインで前の文字を削除

/input delete_previous_char

kbd:[Ctrl+k]

Delete from cursor until end of current line (deleted string is copied to the internal clipboard).

/input delete_end_of_line

kbd:[Alt+Ctrl+k]

Delete from cursor until end of command line (deleted string is copied to the internal clipboard).

/input delete_end_of_input

kbd:[Ctrl+t]

文字の入れ替え

/input transpose_chars

kbd:[Ctrl+u]

Delete from cursor until beginning of current line (deleted string is copied to the internal clipboard).

/input delete_beginning_of_line

kbd:[Alt+Ctrl+u]

Delete from cursor until beginning of command line (deleted string is copied to the internal clipboard).

/input delete_beginning_of_input

kbd:[Alt+Backspace]

コマンドラインで前の単語を削除 (削除された文字列は WeeChat 専用の内部クリップボードに保存)

/input delete_previous_word

kbd:[Ctrl+w]

Delete previous word of command line until whitespace (deleted string is copied to the internal clipboard).

/input delete_previous_word_whitespace

kbd:[Ctrl+y]

WeeChat 専用の内部クリップボードの内容をペースト

/input clipboard_paste

kbd:[Ctrl+_]

コマンドラインの最後の動作をやり直す

/input undo

kbd:[Alt+_]

コマンドラインの最後の動作を取り消す

/input redo

kbd:[Tab]

コマンドやニックネームを補完 (再度 kbd:[Tab] することで次の補完候補を表示)

/input complete_next

kbd:[Shift+Tab]

補完候補が無い場合: 部分補完を行う、補完候補が有る場合: 前の補完候補を表示

/input complete_previous

kbd:[Enter]
kbd:[Ctrl+j]
kbd:[Ctrl+m]

コマンドを実行するか、メッセージを送信する (検索モードの場合: 検索の終了)

/input return

kbd:[Alt+Enter]

Insert a newline.

/input insert \n

kbd:[Alt+d]

コマンドラインで次の単語を削除 (削除された文字列は WeeChat 専用の内部クリップボードに保存)

/input delete_next_word

kbd:[Alt+k]

キー入力を奪って、コマンドラインにコード (キーが割り当てられていればコマンド) を入力

/input grab_key_command

kbd:[Alt+r]

Delete current line.

/input delete_line

kbd:[Alt+R]

Delete entire command line.

/input delete_input

Color codes

キー 説明 コマンド

kbd:[Ctrl+c], kbd:[b]

テキストを太字化するコードの挿入

/input insert \x02

kbd:[Ctrl+c], kbd:[c]

テキストに色をつけるコードの挿入

/input insert \x03

kbd:[Ctrl+c], kbd:[d]

Insert code for colored text (RGB color, as hexadecimal).

/input insert \x04

kbd:[Ctrl+c], kbd:[i]

テキストをイタリック体にするコードの挿入

/input insert \x1D

kbd:[Ctrl+c], kbd:[o]

テキスト色のリセットを行うコードの挿入

/input insert \x0F

kbd:[Ctrl+c], kbd:[v]

テキスト色の反転を行うコードの挿入

/input insert \x16

kbd:[Ctrl+c], kbd:[_]

テキストに下線を引くコードの挿入

/input insert \x1F

Command history

キー 説明 コマンド

kbd:[↑]

前のコマンド/メッセージを呼び出す (検索モードの場合: 上方向に検索)

/input history_previous

kbd:[↓]

次のコマンド/メッセージを呼び出す (検索モードの場合: 下方向に検索)

/input history_next

kbd:[Ctrl+↑]

グローバル履歴から前のコマンド/メッセージを呼び出す (すべてのバッファに対して共通の履歴)

/input history_global_previous

kbd:[Ctrl+↓]

グローバル履歴から次のコマンド/メッセージを呼び出す (すべてのバッファに対して共通の履歴)

/input history_global_next

System

キー 説明 コマンド

kbd:[Ctrl+z]

Suspend WeeChat process.

/sys suspend

Buffers

キー 説明 コマンド

kbd:[Ctrl+r]

Search for text in commands history (see keys for context "histsearch").

/input search_history

kbd:[Ctrl+s]

Search for text in buffer lines (see keys for context "search").

/input search_text_here

kbd:[Ctrl+x]

Switch current buffer if buffers are merged with same number, for example switch to another IRC server buffer.

/buffer switch

kbd:[Alt+x]

マージされたバッファに再ズーム (kbd:[Alt+x]: 全てのマージされたバッファを表示)

/buffer zoom

kbd:[PgUp]

バッファ履歴を 1 ページ分上方向にスクロール

/window page_up

kbd:[PgDn]

バッファ履歴を 1 ページ分下方向にスクロール

/window page_down

kbd:[Alt+PgUp]

バッファ履歴を数行分上方向にスクロール

/window scroll_up

kbd:[Alt+PgDn]

バッファ履歴を数行分下方向にスクロール

/window scroll_down

kbd:[Alt+Home]

バッファ履歴を最初までスクロール

/window scroll_top

kbd:[Alt+End]

バッファ履歴を最後までスクロール

/window scroll_bottom

kbd:[Alt+←]
kbd:[Alt+↑]
kbd:[Ctrl+p]
kbd:[F5]

前のバッファに移動

/buffer -1

kbd:[Alt+→]
kbd:[Alt+↓]
kbd:[Ctrl+n]
kbd:[F6]

後のバッファに移動

/buffer +1

kbd:[Alt+j], kbd:[Alt+f]

最初のバッファに移動

/buffer -

kbd:[Alt+j], kbd:[Alt+l] (L)

最後のバッファに移動

/buffer +

kbd:[Alt+j], kbd:[Alt+r]

IRC 生バッファに移動

/server raw

kbd:[Alt+j], kbd:[Alt+s]

IRC サーババッファに移動

/server jump

kbd:[Alt+0…​9]

番号のバッファに移動 (0 = 10)

/buffer *N

kbd:[Alt+j], kbd:[01…​99]

番号のバッファに移動

/buffer *NN

kbd:[Alt+n]

次のハイライトまでスクロール

/window scroll_next_highlight

kbd:[Alt+p]

前のハイライトまでスクロール

/window scroll_previous_highlight

kbd:[Alt+u]

バッファを最初の未読行までスクロール

/window scroll_unread

kbd:[Alt+Shift+U]

すべてのバッファに未読マークをセット

/allbuf /buffer set unread

kbd:[Alt+<]

バッファ訪問履歴で前のバッファに移動

/buffer jump prev_visited

kbd:[Alt+>]

バッファ訪問履歴で次のバッファに移動

/buffer jump next_visited

kbd:[Alt+/]

最後に表示したバッファに移動 (バッファ移動前に表示していたウィンドウ)

/buffer jump last_displayed

Windows

キー 説明 コマンド

kbd:[Ctrl+l] (L)

全ウィンドウを再描画

/window refresh

kbd:[Alt+l] (L)

最小限表示の有効無効を切り替え

/window bare

kbd:[F7]

ウィンドウを前に移動

/window -1

kbd:[F8]

ウィンドウを後に移動

/window +1

kbd:[Alt+w], kbd:[Alt+↑]

上のウィンドウに移動

/window up

kbd:[Alt+w], kbd:[Alt+↓]

下のウィンドウに移動

/window down

kbd:[Alt+w], kbd:[Alt+←]

左のウィンドウに移動

/window left

kbd:[Alt+w], kbd:[Alt+→]

右のウィンドウに移動

/window right

kbd:[Alt+w], kbd:[Alt+b]

すべてのウィンドウサイズを均等に

/window balance

kbd:[Alt+w], kbd:[Alt+s]

2 つのウィンドウを入れ替え

/window swap

kbd:[Alt+z]

現在のウィンドウを最大化 (再度 kbd:[Alt+z] することで: 最初のウィンドウ状態に戻す、最大化前の状態)

/window zoom

Bars

キー 説明 コマンド

kbd:[F1]
kbd:[Ctrl+F1]

バッファリストを上方に 1 ページスクロール

/bar scroll buflist * -100%

kbd:[F2]
kbd:[Ctrl+F2]

バッファリストを下方に 1 ページスクロール

/bar scroll buflist * +100%

kbd:[Alt+F1]

バッファリストを上端までスクロール

/bar scroll buflist * b

kbd:[Alt+F2]

バッファリストを下端までスクロール

/bar scroll buflist * e

kbd:[F9]

バッファタイトルを左方向にスクロール

/bar scroll title * -30%

kbd:[F10]

バッファタイトルを右方向にスクロール

/bar scroll title * +30%

kbd:[F11]
kbd:[Ctrl+F11]

ニックネームリストを上方向にスクロール

/bar scroll nicklist * -100%

kbd:[F12]
kbd:[Ctrl+F12]

ニックネームリストを下方向にスクロール

/bar scroll nicklist * +100%

kbd:[Alt+F11]

ニックネームリストを一番上にスクロール

/bar scroll nicklist * b

kbd:[Alt+F12]

ニックネームリストを一番下にスクロール

/bar scroll nicklist * e

kbd:[Alt+Shift+B]

Toggle buflist.

/buflist toggle

kbd:[Alt+Shift+N]

Toggle nicklist bar.

/bar toggle nicklist

Hotlist

キー 説明 コマンド

kbd:[Alt+a]

変更のあった次のバッファに移動 (優先順位: ハイライト、新規メッセージ、その他)

/buffer jump smart

kbd:[Alt+h], kbd:[Alt+c]

Clear hotlist (activity notification on buffers).

/hotlist clear

kbd:[Alt+h], kbd:[Alt+m]

Remove current buffer from hotlist.

/hotlist remove

kbd:[Alt+h], kbd:[Alt+r]

Restore latest hotlist removed in the current buffer.

/hotlist restore

kbd:[Alt+h], kbd:[Alt+Shift+R]

Restore latest hotlist removed in all buffers.

/hotlist restore -all

Toggle keys

キー 説明 コマンド

kbd:[Alt+m]

マウスの有効無効を切り替え

/mouse toggle

kbd:[Alt+s]

スペルチェッカの有効無効を切り替え

/mute spell toggle

kbd:[Alt+=]

フィルタの有効無効を切り替え

/filter toggle

kbd:[Alt+-]

現在のバッファのフィルタの有効無効を切り替え

/filter toggle @

Search context

These keys are used in context "search" (when kbd:[Ctrl+s] is pressed to search text in buffer lines).

キー 説明 コマンド

kbd:[Ctrl+x]

検索タイプを切り替え: 文字列 (デフォルト)、正規表現

/input search_switch_regex

kbd:[Alt+c]

大文字小文字を区別して検索

/input search_switch_case

kbd:[Tab]

検索範囲: メッセージ (デフォルト)、プレフィックス、プレフィックスとメッセージ

/input search_switch_where

kbd:[Ctrl+r]
kbd:[↑]

前のキーワードで検索

/input search_previous

kbd:[Ctrl+s]
kbd:[↓]

次のキーワードで検索

/input search_next

kbd:[Enter]
kbd:[Ctrl+j]
kbd:[Ctrl+m]

現在の位置で検索を終了

/input search_stop_here

kbd:[Ctrl+q]

Stop search and reset scroll to pre-text search state.

/input search_stop

History search context

These keys are used in context "histsearch" (when kbd:[Ctrl+r] is pressed to search text in commands history).

キー 説明 コマンド

kbd:[Ctrl+x]

検索タイプを切り替え: 文字列 (デフォルト)、正規表現

/input search_switch_regex

kbd:[Alt+c]

大文字小文字を区別して検索

/input search_switch_case

kbd:[Tab]

Switch search in: buffer local history (default), global history.

/input search_switch_where

kbd:[Ctrl+r]
kbd:[↑]

Search in previous (older) history entries.

/input search_previous

kbd:[Ctrl+s]
kbd:[↓]

Search in next (newer) history entries.

/input search_next

kbd:[Enter]
kbd:[Ctrl+j]
kbd:[Ctrl+m]

Stop search and use matching input.

/input search_stop_here

kbd:[Ctrl+o]

Execute the command found in history and insert the next one in the command line.

/input history_use_get_next

kbd:[Ctrl+q]

Stop search and restore input to its initial value.

/input search_stop

Cursor context

以下のキーは「カーソル」モード (画面上でカーソルを自由に動かせる状態) でのみ有効です, see Cursor mode.

キー エリア 説明 コマンド

kbd:[↑]

-

カーソルを上の行に移動

/cursor move up

kbd:[↓]

-

カーソルを下の行に移動

/cursor move down

kbd:[←]

-

カーソルを左の列に移動

/cursor move left

kbd:[→]

-

カーソルを右の列に移動

/cursor move right

kbd:[Alt+↑]

-

Move cursor to the first line of the area.

/cursor move edge_top

kbd:[Alt+↓]

-

Move cursor to the last line of the area.

/cursor move edge_bottom

kbd:[Alt+←]

-

Move cursor to the first column of the area.

/cursor move edge_left

kbd:[Alt+→]

-

Move cursor to the last column of the area.

/cursor move edge_right

kbd:[Alt+Home]

-

Move cursor to the top left corner of the area.

/cursor move top_left

kbd:[Alt+End]

-

Move cursor to the bottom right corner of the area.

/cursor move bottom_right

kbd:[Alt+Shift+↑]

-

カーソルを上のエリアに移動

/cursor move area_up

kbd:[Alt+Shift+↓]

-

カーソルを下のエリアに移動

/cursor move area_down

kbd:[Alt+Shift+←]

-

カーソルを左のエリアに移動

/cursor move area_left

kbd:[Alt+Shift+→]

-

カーソルを右のエリアに移動

/cursor move area_right

kbd:[m]

チャット

メッセージを引用

hsignal:chat_quote_message;/cursor stop

kbd:[l]

チャット

Quote focused line.

hsignal:chat_quote_focused_line;/cursor stop

kbd:[q]

チャット

プレフィックスとメッセージを引用

hsignal:chat_quote_prefix_message;/cursor stop

kbd:[Q]

チャット

時間、プレフィックス、メッセージを引用

hsignal:chat_quote_time_prefix_message;/cursor stop

kbd:[b]

ニックネームリスト

ニックネームをバンする

/window ${_window_number};/ban ${nick}

kbd:[k]

ニックネームリスト

ニックネームをキックする

/window ${_window_number};/kick ${nick}

kbd:[K]

ニックネームリスト

ニックネームをバンとキックする

/window ${_window_number};/kickban ${nick}

kbd:[q]

ニックネームリスト

ニックネームに対するクエリを開く

/window ${_window_number};/query ${nick};/cursor stop

kbd:[w]

ニックネームリスト

ニックネームに対して whois を行う

/window ${_window_number};/whois ${nick}

kbd:[Enter]
kbd:[Ctrl+j]
kbd:[Ctrl+m]

-

カーソルモードを終了

/cursor stop

Mouse

These mouse actions are possible only if mouse is enabled with key kbd:[Alt+m] (command: /mouse toggle).

ボタン/ホイール (1) ジェスチャー エリア 説明 コマンド

kbd:[■ □ □]

-

チャット

ウィンドウに移動

/window ${_window_number}

kbd:[■ □ □]

チャット

前のバッファに移動

/window ${_window_number};/buffer +1

kbd:[■ □ □]

チャット

次のバッファに移動

/window ${_window_number};/buffer +1

kbd:[■ □ □]

左 (長く)

チャット

最初のバッファに移動

/window ${_window_number};/buffer 1

kbd:[■ □ □]

右 (長く)

チャット

最後のバッファに移動

/window ${_window_number};/buffer +

kbd:[▲]

-

チャット

バッファ履歴を上方向にスクロール

/window scroll_up -window ${_window_number}

kbd:[▼]

-

チャット

バッファ履歴を下方向にスクロール

/window scroll_down -window ${_window_number}

kbd:[Ctrl+▲]

-

チャット

水平左方向にスクロール

/window scroll_horiz -window ${_window_number} -10%

kbd:[Ctrl+▼]

-

チャット

水平右方向にスクロール

/window scroll_horiz -window ${_window_number} +10%

kbd:[▲]

-

chat: fset buffer

Move five lines up in fset buffer.

/fset -up 5

kbd:[▼]

-

chat: fset buffer

Move five lines down in fset buffer.

/fset -down 5

kbd:[■ □ □]

-

chat: fset buffer

Select line in fset buffer.

/window ${_window_number};/fset -go ${fset_option_index}

kbd:[□ □ ■]

-

chat: fset buffer

Toggle boolean (on/off) or edit the option value.

hsignal:fset_mouse

kbd:[□ □ ■]

left

chat: fset buffer

Decrease value for integer/color/enum, set/append to value for other types.

hsignal:fset_mouse

kbd:[□ □ ■]

right

chat: fset buffer

Increase value for integer/color/enum, set/append to value for other types.

hsignal:fset_mouse

kbd:[□ □ ■]

up / down

chat: fset buffer

Mark/unmark multiple options.

hsignal:fset_mouse

kbd:[▲]

-

chat: /list buffer

Move five lines up in /list buffer.

/list -up 5

kbd:[▼]

-

chat: /list buffer

Move five lines down in /list buffer.

/list -down 5

kbd:[■ □ □]

-

chat: /list buffer

Select line in /list buffer.

/window ${_window_number};/list -go ${_chat_line_y}

kbd:[□ □ ■]

-

chat: /list buffer

Join IRC channel on selected line.

hsignal:irc_list_mouse

kbd:[▲]

-

チャット: スクリプトバッファ

スクリプトバッファを 5 行上方向にスクロール

/script -up 5

kbd:[▼]

-

チャット: スクリプトバッファ

スクリプトバッファで 5 行下方向にスクロール

/script -down 5

kbd:[■ □ □]

-

チャット: スクリプトバッファ

スクリプトバッファで行選択

/script -go ${_chat_line_y}

kbd:[□ □ ■]

-

チャット: スクリプトバッファ

スクリプトのインストール `+/ 削除

/script -go ${_chat_line_y};/script installremove ${script_name_with_extension}+`

kbd:[■ □ □]

上 / 左

バッファリスト

指定したバッファを下の番号に移動

buflist_mouse シグナル

kbd:[■ □ □]

下 / 右

バッファリスト

指定したバッファを上の番号に移動

buflist_mouse シグナル

kbd:[■ □ □]

-

バッファリスト

指定したバッファに切り替える (現在のバッファを指定した場合、バッファ切り替え履歴で前のバッファに切り替える)

buflist_mouse シグナル

kbd:[□ □ ■]

-

バッファリスト

現在のバッファを指定した場合、バッファ切り替え履歴で次のバッファに切り替える

buflist_mouse シグナル

kbd:[Ctrl+▲]

-

バッファリスト

バッファ切り替え履歴で前のバッファに切り替える

buflist_mouse シグナル

kbd:[Ctrl+▼]

-

バッファリスト

バッファ切り替え履歴で次のバッファに切り替える

buflist_mouse シグナル

kbd:[■ □ □]

ニックネームリスト

ニックネームリストを 1 ページ分上方向にスクロール

/bar scroll nicklist ${_window_number} -100%

kbd:[■ □ □]

ニックネームリスト

ニックネームリストを 1 ページ分下方向にスクロール

/bar scroll nicklist ${_window_number} +100%

kbd:[■ □ □]

上 (長く)

ニックネームリスト

ニックネームリストの最初に移動

/bar scroll nicklist ${_window_number} b

kbd:[■ □ □]

下 (長く)

ニックネームリスト

ニックネームリストの最後に移動

/bar scroll nicklist ${_window_number} e

kbd:[■ □ □]

-

ニックネームリスト

ニックネームに対するクエリを開く

/window ${_window_number};/query ${nick}

kbd:[□ □ ■]

-

ニックネームリスト

ニックネームに対する whois を行う

/window ${_window_number};/whois ${nick}

kbd:[■ □ □]

ニックネームリスト

ニックネームをキックする

/window ${_window_number};/kick ${nick}

kbd:[■ □ □]

左 (長く)

ニックネームリスト

ニックネームをキックとバンする

/window ${_window_number};/kickban ${nick}

kbd:[□ □ ■]

ニックネームリスト

ニックネームをバンする

/window ${_window_number};/ban ${nick}

kbd:[□ □ ■]

-

入力

マウスイベントを奪ってコマンドラインにコードを入力

/input grab_mouse_area

kbd:[▲]

-

任意のバー

バーを -20% スクロール

/bar scroll ${_bar_name} ${_window_number} -20%

kbd:[▼]

-

任意のバー

バーを +20% スクロール

/bar scroll ${_bar_name} ${_window_number} +20%

kbd:[□ ■ □]

-

任意の場所

この場所でカーソルモードを開始

/cursor go ${_x},${_y}

Note
(1) Buttons:
kbd:[◼ □ □]: click on left button
kbd:[□ ◼ □]: click on middle button
kbd:[□ □ ◼]: click on right button
Wheel:
kbd:[▲]: wheel up
kbd:[▼]: wheel down

Fset buffer

These keys and actions are used on the fset buffer (see Fset plugin).

Key Action (1) Description Command

kbd:[↑]

Move one line up.

/fset -up

kbd:[↓]

Move one line down.

/fset -down

kbd:[PgUp]

Move one page up.

/window page_up

kbd:[PgDn]

Move one page down.

/window page_down

kbd:[Alt+Home]

<<

Move to first line.

/fset -go 0

kbd:[Alt+End]

>>

Move to last line.

/fset -go end

kbd:[F11]

<

Scroll horizontally on the left.

/fset -left

kbd:[F12]

>

Scroll horizontally on the right.

/fset -right

kbd:[Alt+Space]

t

Toggle boolean value.

/fset -toggle

kbd:[Alt+-]

-

Subtract 1 from value for integer/color/enum, set value for other types.

/fset -add -1

kbd:[Alt++]

+

Add 1 to value for integer/color/enum, append to value for other types.

/fset -add 1

kbd:[Alt+f], kbd:[Alt+r]

r

Reset value.

/fset -reset

kbd:[Alt+f], kbd:[Alt+u]

u

Unset value.

/fset -unset

kbd:[Alt+Enter]

s

Set value.

/fset -set

kbd:[Alt+f], kbd:[Alt+n]

n

Set new value.

/fset -setnew

kbd:[Alt+f], kbd:[Alt+a]

a

Append to value.

/fset -append

kbd:[Alt+,]

,

Mark/unmark option.

/fset -mark 1

kbd:[Shift+↑]

Move one line up and mark/unmark option.

/fset -up; /fset -mark

kbd:[Shift+↓]

Mark/unmark option and move one line down.

/fset -mark; /fset -down

m:xxx

Mark options displayed that are matching filter "xxx" (any filter on option or value is allowed, see /fset command).

u:xxx

Unmark options displayed that are matching filter "xxx" (any filter on option or value is allowed, see /fset command).

kbd:[Ctrl+l] (L)

Refresh options and whole screen.

/fset -refresh

$

Refresh options (keep marked options).

$$

Refresh options (unmark all options).

kbd:[Alt+p]

p

Toggle plugin description options (plugins.desc.*).

/mute /set fset.look.show_plugins_desc toggle

kbd:[Alt+v]

v

Toggle help bar.

/bar toggle fset

s:x,y

Sort options by fields x,y (see option fset.look.sort).

/mute /set fset.look.sort x,y

s:

Reset sort to its default value (see option fset.look.sort).

/mute /unset fset.look.sort

w:xxx

Export options in file "xxx".

/fset -export xxx

w-:xxx

Export options in file "xxx" without help.

/fset -export -nohelp xxx

w+:xxx

Export options in file "xxx" with help.

/fset -export -help xxx

kbd:[Ctrl+x]

x

Switch the format used to display options.

/fset -format

q

Close fset buffer.

/buffer close

Note
(1) The action must be entered as input on the command line, followed by kbd:[Enter].

IRC /list buffer

These keys and actions are used on the IRC /list buffer (see command /list).

Key Action (1) Description Command

kbd:[↑]

Move one line up.

/list -up

kbd:[↓]

Move one line down.

/list -down

kbd:[PgUp]

Move one page up.

/window page_up

kbd:[PgDn]

Move one page down.

/window page_down

kbd:[Alt+Home]

<<

Move to first line.

/list -go 0

kbd:[Alt+End]

>>

Move to last line.

/list -go end

kbd:[F11]

<

Scroll horizontally on the left.

/list -left

kbd:[F12]

>

Scroll horizontally on the right.

/list -right

kbd:[Ctrl+j]

j

Join IRC channel on selected line.

/list -join

xxx

Show only channels with "xxx" in name or topic (case insensitive).

n:xxx

Show only channels with "xxx" in name (case insensitive).

t:xxx

Show only channels with "xxx" in topic (case insensitive).

u:n

Show only channels with at least "n" users.

u:>n

Show only channels with more than "n" users.

u:<n

Show only channels with less than "n" users.

c:xxx

Show only channels matching the evaluated condition "xxx", using following variables: name, name2, users, topic.

s:x,y

Sort channels by fields x,y (see command /list).

s:

Reset sort to its default value (see command /list).

$

Refresh list (run again command /list).

q

Close buffer.

/buffer close

Note
(1) The action must be entered as input on the command line, followed by kbd:[Enter].

Script buffer

These keys and actions are used on the script buffer (see script manager).

Key Action (1) Description Command

kbd:[↑]

Move one line up.

/script -up

kbd:[↓]

Move one line down.

/script -down

kbd:[PgUp]

Move one page up.

/window page_up

kbd:[PgDn]

Move one page down.

/window page_down

kbd:[Alt+i]

i

Install script.

/script install

kbd:[Alt+r]

r

Remove script.

/script remove

kbd:[Alt+l]

l

Load script.

/script load

kbd:[Alt+L]

L

Reload script.

/script reload

kbd:[Alt+u]

u

Unload script.

/script unload

kbd:[Alt+Shift+A]

A

Autoload script.

/script toggleautoload

kbd:[Alt+h]

h

Hold/unhold script.

/script hold

kbd:[Alt+v]

v

View script.

/script show

s:x,y

Sort scripts by fields x,y (see option script.look.sort).

s:

Reset sort to its default value (see option script.look.sort).

$

Refresh list.

q

Close buffer.

/buffer close

Note
(1) The action must be entered as input on the command line, followed by kbd:[Enter].

Configuration

Fset

fset (高速設定) プラグインはバッファ内にオプションのリストを表示し、WeeChat とプラグインのオプション設定を支援します。

Example of fset buffer displaying options starting with weechat.look :

┌──────────────────────────────────────────────────────────────────────────────────────┐
│1.weechat│1/121 | Filter: weechat.look.* | Sort: ~name | Key(input): alt+space=toggle │
│2.fset   │weechat.look.bare_display_exit_on_input: exit the bare display mode on any c│
│         │hanges in input [default: on]                                               │
│         │----------------------------------------------------------------------------│
│         │  weechat.look.align_end_of_lines                   enum     message        │
│         │  weechat.look.align_multiline_words                boolean  on             │
│         │  weechat.look.bar_more_down                        string   "++"           │
│         │  weechat.look.bar_more_left                        string   "<<"           │
│         │  weechat.look.bar_more_right                       string   ">>"           │
│         │  weechat.look.bar_more_up                          string   "--"           │
│         │  weechat.look.bare_display_exit_on_input           boolean  on             │
│         │  weechat.look.bare_display_time_format             string   "%H:%M"        │
│         │  weechat.look.buffer_auto_renumber                 boolean  on             │
│         │  weechat.look.buffer_notify_default                enum     all            │
│         │  weechat.look.buffer_position                      enum     end            │
│         │  weechat.look.buffer_search_case_sensitive         boolean  off            │
│         │  weechat.look.buffer_search_force_default          boolean  off            │
│         │  weechat.look.buffer_search_regex                  boolean  off            │
│         │  weechat.look.buffer_search_where                  enum     prefix_message │
│         │  weechat.look.buffer_time_format                   string   "%H:%M:%S"     │
│         │  weechat.look.buffer_time_same                     string   ""             │
│         │[12:55] [2] [fset] 2:fset                                                   │
│         │█                                                                           │
└──────────────────────────────────────────────────────────────────────────────────────┘

オプション

fset.conf ファイル内のセクション:

セクション 操作コマンド 説明

color

/set fset.color.*

format

/set fset.format.*

オプションリストの表示書式

look

/set fset.look.*

外観

オプション:

Colors

基本色

WeeChat における基本色とは:

名前

default

デフォルトの端末色 (背景色を透過色とする)

black

darkgray

暗い灰色

red

暗い赤

lightred

明るい赤

green

暗い緑色

lightgreen

明るい緑色

brown

茶色

yellow

黄色

blue

暗い青

lightblue

明るい青

magenta

暗い赤紫色

lightmagenta

明るい赤紫色

cyan

暗い青緑色

lightcyan

明るい青緑色

gray

灰色

white

拡張色

WeeChat は画面に色が表示された時点で色ペアを動的に割り当てます (バッファとバーを表示する時点で)。

基本色に加えて、1 番 から端末の対応状況に依存する番号までの色番号を利用できます。

/color コマンドで現在の色と色制限を確認できます。kbd:[Alt+c] をタイプすることで、一時的に端末色を選択された色に変更できます。

例えば、バッファ中のに表示される時刻をオレンジ色にしたい場合、以下のようにしてください:

/set weechat.color.chat_time 214

ステータスバーの色を非常に暗い緑色にしたい場合:

/set weechat.bar.status.color_bg 22

別名

/color alias コマンドを使えば色の別名を追加できます。 追加後は任意の色関連オプションで別名を使えます。

例:

/color alias 214 orange
/set weechat.color.chat_delimiters orange

属性

色に対していくつかの属性を付加することができます。1 つ以上の属性を色名または色番号の前に付加できます:

  • %: blink

  • .: "dim" (half bright)

  • * : テキストを太字に

  • ! : テキストを反転

  • / : テキストをイタリック体に

  • _ : テキストに下線を引く

  • |: keep attributes: do not reset blink/dim/bold/reverse/italic/underlined when changing color

例えば、自分自身のニックネームの表示色を白にして、下線を引きたい場合:

/set weechat.color.chat_nick_self _white

ステータスバーの時刻の表示色を橙色にして、下線を引いて、太字にしたい場合:

/set weechat.color.status_time *_214

デフォルト端末色 (-1) に対して属性を設定したい場合、端末色番号の最大値よりも大きな値を利用してください。例えば、WeeChat における色番号の最大値は 99999 です。

端末の表示色に太字の属性を付加する例:

/set weechat.color.status_time *99999

Charset

Charset プラグインを使うことで、文字コードに従ってデータのデコードとエンコードができます。

デコード/エンコード用にデフォルトの文字コードが設定されていますが、それぞれのバッファ (バッファグループ) に対して個別に文字コードを設定することもできます。

このプラグインの導入は任意ですが、導入を推奨します: このプラグインがロードされていない場合、WeeChat が読み書きできるデータは UTF-8 データのみになります。

Charset プラグインは WeeChat によって自動的にロードされるべきです。プラグインがロードされていることを確認するには、以下のようにしてください:

/charset

コマンドが見つからない場合、以下のコマンドでプラグインをロードしてください:

/plugin load charset

プラグインが見つからない場合、文字コードサポートを有効化した状態で WeeChat を再コンパイルしてください。

Charset プラグインがロードされた場合、端末文字コードと内部文字コードが表示されます。端末文字コードはロケールに依存し、内部文字コードは UTF-8 です。

例:

charset: terminal: ISO-8859-15, internal: UTF-8

文字コードの設定

グローバルデコード文字コードとエンコード文字コードを設定するには、/set コマンドを使ってください。

例:

/set charset.default.decode ISO-8859-15
/set charset.default.encode ISO-8859-15

グローバルデコード文字コードが設定されていない場合 (例えば Charset プラグインを始めてロードした場合)、これは自動的に端末の文字コードか (UTF-8 でなければ)、デフォルトの ISO-8859-1 に設定されます。

デフォルトのエンコード文字コードはありません。従って、内部文字コード (UTF-8) が使われます。

IRC サーバの文字コードを設定するには、サーババッファで /charset コマンドを使ってください。文字コードのみを引数として与えた場合、この文字コードがデコードとエンコードに利用されます。

例:

/charset ISO-8859-15

これは以下と等価です:

/charset decode ISO-8859-15
/charset encode ISO-8859-15

IRC チャンネル (またはプライベートメッセージ) の文字コードを設定するには、サーバの文字コード設定と同様のコマンドをチャンネル (またはプライベートメッセージ) バッファで使ってください。

IRC サーバの全てのチャンネルおよびプライベートバッファに対する文字コードを設定するには:

/set charset.encode.irc.libera ISO-8859-15

すべての文字コード設定を確認するには、以下のコマンドを利用してください:

/set charset.*

トラブルシューティング

文字コードに関する問題があれば、WeeChat FAQ (よくある質問) / いくつかの文字が見えません。どうすれば良いですか。 を参照してください。

オプション

charset.conf ファイル内のセクション:

セクション 操作コマンド 説明

default

/set charset.default.*

デフォルトのデコード/エンコード文字セット

decode

/charset decode
/set charset.decode.*

バッファのデコード文字セット (オプションをセクションに追加/削除出来ます)

encode

/charset encode
/set charset.encode.*

バッファのエンコード文字セット (オプションをセクションに追加/削除出来ます)

オプション:

通知レベル

通知レベルの設定

バッファに表示された各メッセージには 4 つのレベルが設定されています。レベルの低いものから順に:

  • low: 重要性の低いメッセージ (例えば irc の参加/退出/終了メッセージ)

  • message: ユーザからのメッセージ

  • private: プライベートバッファのメッセージ

  • highlight: ハイライトされたメッセージ

それぞれのバッファには通知レベルが設定されており、通知レベルに対応するメッセージの数がホットリストに表示されます。

デフォルトの通知レベルは weechat.look.buffer_notify_default オプションで指定し、デフォルトは all です。

通知レベル ホットリストに追加されるメッセージのレベル

none

(無効)

highlight

highlight + private

message

highlight + private + message

all

highlight + private + message + low

通知レベルはバッファグループに対して設定することも可能で、例えば irc サーバ "libera" に含まれる全てのバッファに対して設定する場合:

/set weechat.notify.irc.libera message

"#weechat" チャンネルだけに対して、通知レベルを highlight に設定する場合:

/set weechat.notify.irc.libera.#weechat highlight

/buffer コマンドで、あるバッファに対する通知レベルを設定できます:

/buffer notify highlight

ニックネームに対するホットリストレベルの最大値

ニックネーム、バッファ、バッファグループ (IRC サーバなど) に対してホットリストレベルの最大値を設定することが可能です。

あるニックネームのリストに対してバッファプロパティ "hotlist_max_level_nicks" を設定したり、各ニックネームに対してホットリストレベルの最大値を設定することも可能です。設定可能なレベルは以下です:

  • -1: ニックネームがホットリストを変更しない優先度

  • 0: 低優先度 (参加および退出メッセージなど)

  • 1: 通常メッセージ

  • 2: プライベートメッセージ

  • 3: ハイライト (これはすべてのメッセージのデフォルト最大値であるため、通常これを指定することはありません)

例えば現在のバッファで "joe" と "mike" からのメッセージに対するハイライトを無効化するには以下のように設定します:

/buffer setauto hotlist_max_level_nicks_add joe:2,mike:2

ハイライト

Disable highlights

You can disable highlights with option weechat.look.highlight_disable_regex (regular expression).
When a highlight is disabled with this option, the other highlight options are ignored.

For example to disable any highlight on messages with a word beginning with "flash" between chevrons:

/set weechat.look.highlight_disable_regex "<flash.*>"

This can also be set with the buffer property "highlight_disable_regex".

Same example, specific to the current buffer:

/buffer setauto highlight_disable_regex <flash.*>

ハイライトする単語の追加

デフォルトで WeeChat は自分のニックネームが含まれる他のユーザからのメッセージをハイライトします。このため、ハイライトはバッファに依存します (ニックネームはバッファごとに異なる場合があります)。

他の単語を追加するには weechat.look.highlight オプションを使います。例えば自分のニックネーム、"word1"、"word2"、"test" から始まる任意の単語をハイライトするには以下のように設定します:

/set weechat.look.highlight "word1,word2,test*"

単語に対してさらに具体的なルールを設定する必要がある場合、weechat.look.highlight_regex オプションを使って正規表現で指定することも可能です。例えば "flashcode"、"flashcöde"、"flashy" という単語をハイライトするには以下のように設定します:

/set weechat.look.highlight_regex "flashc[oö]de|flashy"

ハイライトする単語の区切りは weechat.look.word_chars_highlight オプションを使って設定します。

ハイライトするタグの追加

表示される行には「タグ」を含めることが可能です。「タグ」とはメッセージの出自やメッセージ自身に関する情報を与えるものです。
/debug tags コマンドでタグを表示することが可能です (タグを非表示にする場合も同じコマンドを使います)。

ハイライトするタグを明示するには weechat.look.highlight_tags オプションを使います。複数のタグを指定するにはコンマで区切り、複数のタグの論理 "and" を表すには + で区切ります。

例えば "FlashCode" というニックネームからのすべてのメッセージと "toto" で始まるニックネームからのすべての通知メッセージをハイライトするには以下のように設定します:

/set weechat.look.highlight_tags "nick_flashcode,irc_notice+nick_toto*"

バッファに対する特別なハイライトの設定

バッファプロパティ "highlight_regex" と正規表現を使ってハイライトを強制できます。

例えば現在のバッファ宛のすべてのメッセージをハイライトするには以下のように設定します:

/buffer setauto highlight_regex .*

Buffer logging

Logger プラグインを使うことで、バッファの内容をファイルに保存できます。保存形式とその方法をオプションで設定できます。

ログレベル

ログ保存はそれぞれのバッファに対して設定されたログレベルに従って行われます。デフォルトのレベルは 9 (バッファに表示されたメッセージをすべて保存) です。特定のバッファやバッファグループに対して個別にログレベルを設定できます。

設定可能なレベルは 0 から 9 です。0 は "保存しない"、9 は「すべてのメッセージを保存」を意味します。

それぞれのプラグインでレベルの意味が変わります。IRC プラグインに対しては以下のレベルが利用されます:

  • レベル 1: ユーザからのメッセージ (チャンネルまたはプライベート)

  • レベル 2: ニックネームの変更 (自身と他のユーザ)

  • レベル 3: 任意のサーバメッセージ (参加/退出/終了メッセージを除く)

  • レベル 4: 参加/退出/終了メッセージ

従って、IRC チャンネルに対してレベル 3 を設定した場合、WeeChat は参加/退出/終了メッセージを除いて全てのメッセージを保存します。

例:

  • IRC チャンネル #weechat に対してレベル 3 を設定:

/set logger.level.irc.libera.#weechat 3
  • libera サーババッファに対してレベル 3 を設定:

/set logger.level.irc.server.libera 3
  • libera サーバの全てのチャンネルに対してレベル 3 を設定:

/set logger.level.irc.libera 3
  • 全ての IRC バッファに対してレベル 2 を設定:

/set logger.level.irc 2

ファイル名マスク

It is possible to define a filename mask for each buffer, and use local buffer variables to build filename. To see available local variables for current buffer:

/buffer listvar

Masks will be matched on options in descending order of specificity on logger.mask.$plugin.*, with logger.file.mask as fallback option.

例えば "irc.libera.#weechat" バッファの場合、WeeChat は以下の順番でオプションに設定されたファイル名マスクを検索します:

logger.mask.irc.libera.#weechat
logger.mask.irc.libera
logger.mask.irc
logger.file.mask

特定の IRC サーバ ("logger.mask.irc.libera") またはプラグイン ("logger.mask.irc") のグループに対して共通のマスクを適用できます。

ログファイルに日付を利用する

ログファイルに日付を使うには、マスクに日時/時間指定子を利用できます (書式に関しては man strftime を参照してください)。例えば:

/set logger.file.mask "%Y/%m/$plugin.$name.weechatlog"

以下のファイルが作成されます:

~/.local/share/weechat
└── logs
    ├── 2010
    │   ├── 11
    │   │   ├── irc.server.libera.weechatlog
    │   │   └── irc.libera.#weechat.weechatlog
    │   └── 12
    │       ├── irc.server.libera.weechatlog
    │       └── irc.libera.#weechat.weechatlog
    ├── 2011
    │   ├── 01
    │   │   ├── irc.server.libera.weechatlog
    │   │   └── irc.libera.#weechat.weechatlog
    │   ├── 02
    ...
IRC ログファイルにサーバとチャンネル名を利用する

IRC サーバ名を使ったディレクトリに、チャンネル名を使ったファイルを作成する場合:

/set logger.mask.irc "irc/$server/$channel.weechatlog"

以下のファイルが作成されます:

~/.local/share/weechat
└── logs
    └── irc
        ├── libera
        │   ├── libera.weechatlog
        │   ├── #weechat.weechatlog
        │   └── #mychan.weechatlog
        ├── oftc
        │   ├── oftc.weechatlog
        │   ├── #channel1.weechatlog
        │   └── #channel2.weechatlog
        ...

Rotation and compression

It is possible to define a max size for log files, and when it is reached, there is automatic rotation of log file.

The rotated log files can be compressed with gzip or zstd .

Note
As the compression of a file can take some time, it is performed in background.

Example with a max size of 2GB and compression with gzip, using good compression level (slower than default one):

/set logger.file.rotation_compression_type gzip
/set logger.file.rotation_compression_level 80
/set logger.file.rotation_size_max "2g"

If you want to use a decimal number, you can use the unit below and multiply by 1000, for example to set max size to 2.5GB:

/set logger.file.rotation_size_max "2500m"

With these settings, you’ll end with files like these ones (in this example there is rotation only for the log of #weechat channel):

~/.local/share/weechat
└── logs
    ├── core.weechat.weechatlog
    ├── irc.server.libera.weechatlog
    ├── irc.libera.#weechat.weechatlog
    ├── irc.libera.#weechat.weechatlog.1.gz
    ├── irc.libera.#weechat.weechatlog.2.gz
    └── irc.libera.#weechat.weechatlog.3.gz

オプション

logger.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set logger.look.*

外観

color

/set logger.color.*

file

/set logger.file.*

ログファイルのオプション

level

/set logger.level.*

バッファのログレベル (オプションをセクションに追加/削除出来ます)

mask

/set logger.mask.*

バッファのファイル名マスク (オプションをセクションに追加/削除出来ます)

オプション:

マウスサポート

WeeChat はマウスクリックとマウスジェスチャーをサポートしています。 ローカル端末と screen/tmux の有無にかかわらず ssh 接続経由で利用可能です。

マウスの有効化

起動時にマウスを有効化するには:

/set weechat.look.mouse on

マウスを有効化するには kbd:[Alt+m] を押すか、以下のコマンドを使います:

/mouse enable

キーにマウスの一時的な無効化を割り当てることができます。例えば、kbd:[Alt+%] キーにマウスを 10 秒間無効化する機能を割り当てるには:

/key bind meta-% /mouse toggle 10
Important
WeeChat でマウスを有効化した場合、すべてのマウスイベントは WeeChat によって捕捉されます。したがって、カット/ペーストなどの操作や URL のクリックなどは端末に送信されません。kbd:[Shift] キーを使えば、一時的にマウスを無効化して、端末へ直接イベントを送信する事が可能です (一部の端末、例えば iTerm などでは kbd:[Shift] の代わりに kbd:[Alt] を使ってください)。
Note
マウスに関するトラブルがあれば WeeChat FAQ (よくある質問) / マウス を参照してください。

コマンドに対してマウスイベントを割り当てる

WeeChat はデフォルトマウスイベントの多くを定義しています (mouse actionsを参照)。

/key コマンドで "mouse" コンテキストを指定することで割り当てを追加、変更できます (詳しい使い方は /key コマンドを参照)。

イベント名には修飾キー (任意)、ボタン/ホイール名、ジェスチャー (任意) を利用できます。異なるイベントは - で分割してください。

List of modifiers (by order in the event name):

修飾キー 説明

alt

kbd:[Alt] キー

ctrl

kbd:[Ctrl] キー

shift

kbd:[Shift] キー (1)

Note
(1) The shift modifier can rarely be used in WeeChat because many terminals use this modifier to catch directly mouse events.

Several modifiers can be combined, for example:

  • alt-ctrl

  • ctrl-shift

  • alt-ctrl-shift

ボタン/ホイールのリスト:

ボタン/ホイール 説明

button1

左ボタンクリック

button2

右ボタンクリック

button3

中ボタンクリック (多くの場合ホイールクリック)

button4 …​ button11

その他のボタンクリック

wheelup

ホイール (上方向)

wheeldown

ホイール (下方向)

ジェスチャーのリスト (ボタンのみ対応、ホイール未対応):

ジェスチャー 距離

gesture-up

3 から 19

gesture-up-long

20 以上

gesture-down

3 から 19

gesture-down-long

20 以上

gesture-left

3 から 39

gesture-left-long

40 以上

gesture-right

3 から 39

gesture-right-long

40 以上

未完了イベントのリスト (ボタンのみ、プラグイン/スクリプトで便利):

イベント 説明

event-down

マウスボタンが押され、離されていない状態

event-drag

マウスボタンが押された状態でマウスが動かされた

イベントの表記例:

  • button1

  • ctrl-button1

  • button1-gesture-right

  • button1-event-down

  • button1-event-drag

  • alt-button2-gesture-down-long

  • wheelup

  • alt-ctrl-wheeldown

  • …​

Tip
"mouse" イベントにキーを割り当てる場合、イベント名の最初または最後に * を使うことで複数のイベントにマッチさせることができます。例えば button1-gesture-* は左クリックを利用したすべてのジェスチャーにマッチします。
Tip
/input grab_mouse コマンドの後にマウスを動かすことでコマンドラインにマウスイベントが入力されます。これにより対応するイベントを確認できます。

Spell checking

Spell プラグインを使うことで、コマンドラインに入力した文字列のスペルチェックができます。バッファごとに異なる言語に対するスペルチェックを実行できます。

スペルチェック機能はデフォルトで無効化されています。kbd:[Alt+s] で有効無効を切り替える事が可能です。

辞書

スペルチェック機能を使う前に、すべてのバッファまたは特定のバッファに対して辞書を定義しなければいけません。

同時に複数の辞書を使用可能です: WeeChat はすべての辞書を使って単語をチェックします。

英語とフランス語の辞書を使う例:

/set spell.check.default_dict "en,fr"

特定のバッファで使用する辞書を定義することも可能です。ドイツ語のチャンネルでドイツ語の辞書を使う例:

/spell setdict de

バッファグループに対して特定の辞書を指定することも可能です。libera IRC サーバに対して英語の辞書を使う例:

/set spell.dict.irc.libera en

詳しい情報はコマンド /spell を参照してください。

Speller オプション

Speller オプションは aspell 設定の "option" セクションにあるオプションを追加して定義します。

ここで利用するオプション名は aspell 設定オプションと同じものです。オプションのリストはシェルで以下のコマンドを実行することで確認できます:

$ aspell config

例えば、"ignore-case" オプションを有効化するには:

/set spell.option.ignore-case "true"

修正候補

"spell_suggest" バー要素内に修正候補が表示されます。修正候補の数は spell.check.suggestions オプションで設定します。

修正候補を利用するには、spell.check.suggestions オプションをゼロ以上の整数に設定し、status バーなどに "spell_suggest" バー要素を追加してください。

英語辞書 (en) を用いた修正候補の例:

│[12:55] [6] [irc/libera] 3:#test(+n){4} [print,prone,prune]                      │
│[@Flashy] prinr █                                                                │
└─────────────────────────────────────────────────────────────────────────────────┘

英語とフランス語辞書 (en,fr) を用いた修正候補の例:

│[12:55] [6] [irc/libera] 3:#test(+n){4} [print,prone,prune/prime,primer,primé]   │
│[@Flashy] prinr █                                                                │
└─────────────────────────────────────────────────────────────────────────────────┘

オプション

spell.conf ファイル内のセクション:

セクション 操作コマンド 説明

color

/set spell.color.*

check

/set spell.check.*

スペルチェックの操作コマンド

dict

/spell setdict
/set spell.dict.*

バッファが利用するディレクトリ (オプションをセクションに追加/削除出来ます)

look

/set spell.look.*

外観

option

/set spell.option.*

Speller オプション (オプションをセクションに追加/削除出来ます)

オプション:

バー

バー とは任意のテキストを含めることができるチャットエリア以外の場所です。

バーオプションは weechat.bar.name.option オプションで設定します。ここで name はバーの名前、option はこのバーのオプション名です。

バーオプションのリスト:

オプション名 説明

type

rootwindow

root 型バーは画面上の全ウィンドウの外側にきっかり 1 回だけ表示されます。 デフォルトバーである buflistroot 型のバーです。
window 型バーは各ウィンドウの中に表示されます。例えば、/window splith/window splitv などの方法で画面を 1 回分割した場合、1 つのバーがそれぞれのウィンドウに表示されます。デフォルトの window 型バーには titlestatusinputnicklist などがあります。

position

topbottomleftright

バーの位置: チャットエリアの上、下、左、右。

priority

0 以上の整数

バーの表示優先度: 型と位置が同じ複数のバーを画面に表示する順番に利用される。
バーは画面の端から中心に向かって表示される。高い優先度を持つバーが先に (画面の端に近い側に) 表示される。
例: 優先度 1000 の input バーは優先度 500 の status バーよりも先に表示される。

size

0 以上の整数

バーのサイズ: 位置が右/左の場合は列数、位置が上/下の場合は行数。値が 0 の場合は自動 (バーのサイズはバーの内容を基に計算される)。

size_max

0 以上の整数

バーの最大サイズ、0 = 制限無し (このオプションは size = 0 の場合のみ使われる)。

color_bg

バーのデフォルトの背景色

color_fg

バーのデフォルトのテキスト色

color_delim

バーの区切り文字の色

hidden

onoff

このオプションが on の場合、バーは表示されません。
注意: このオプションを変更する代わりに、/bar コマンドを使うと便利です。例: /bar toggle nicklist (/bar コマンドを参照)。

separator

onoff

このオプションが on の場合、セパレータ (区切り線) がバー同士またはバーとチャットエリアの間に表示されます。

items

文字列

items のリスト (詳細はバー要素を参照)。

filling_left_right

horizontalverticalcolumns_horizontalcolumns_vertical

位置が left または right のバーに対するフィリングタイプ (詳細はバーフィリングを参照)。

filling_top_bottom

horizontalverticalcolumns_horizontalcolumns_vertical

位置が top または bottom のバーに対するフィリングタイプ (詳細はバーフィリングを参照)。

conditions

文字列

バーを表示する状態 (詳細はバー状態を参照)。

バー要素

items オプションはバー要素をコンマ (画面上の要素同士に間隔を空ける) または + (間隔を空けない) で区切った文字列です。

バー要素のリストは /bar listitems コマンドで表示されます。

要素名の前または後に文字を表示させることができます (英数字以外の文字、- または _)。この文字はバー (color_delim オプション) で定義された区切り文字の色をつけて要素の前または後に表示されます。

バー要素を含むバーの例 "[time],buffer_number+:+buffer_plugin+.+buffer_name,[buffer_last_number]":

┌───────────────────────────────────────────────────────────────────────────┐
│[12:55] 3:irc/libera.#weechat [9]                                          │
└───────────────────────────────────────────────────────────────────────────┘
Spacer item

An item called spacer can be used to align items (left, center, right).

When at least one spacer item is used in a bar, the whole bar width is used: the spacers auto expand with the same size (or almost).
When the bar is not large enough for all items, spacers are not displayed.

Note
The spacer bar item can be used only in bars with position top or bottom, filling horizontal and size 1.

Example of bar with items "[time],spacer,buffer_number+:+buffer_plugin+.+buffer_name,spacer,[buffer_last_number]":

┌───────────────────────────────────────────────────────────────────────────┐
│[12:55]                      3:irc/libera.#weechat                      [9]│
└───────────────────────────────────────────────────────────────────────────┘
Force buffer

特殊構文を使うことで、バー要素: "@buffer:item" ("buffer" はバッファの完全な名前、"item" はバー要素の名前) を表示する際に強制的に指定されたバッファを利用することが可能です。

これはルートバーに現在のウィンドウで表示されない (またはどこにも表示されない) 特定のバッファの要素を表示させる際に便利です。

例: bitlbee のニックネームリストをルートバーに表示させる (バーが bitlist で bitlbee サーバが bitlbee の場合):

/set weechat.bar.bitlist.items "@irc.bitlbee.&bitlbee:buffer_nicklist"
Custom bar items

Custom bar items can be added with the /item command, each new item having two properties defined via configuration options:

  • conditions: evaluated conditions to display the bar item, for example to restrict the bar item to some specific buffers (if empty, the bar item is displayed everywhere)

  • content: evaluated content of bar item.

In both options, the following variables can be used:

  • window: pointer to the window where the bar is displayed (NULL for root bars)

  • buffer: pointer to buffer where the bar is displayed (current buffer for root bars).

Examples of conditions:

Condition Description

${window}

Displayed in window bars only

${buffer.number} == 1

Displayed in all buffers with number = 1

${buffer.plugin.name} == irc

Displayed in all IRC buffers

${type} == channel

Displayed in all buffers where local variable type is set to channel (example: all IRC channels)

${type} == private

Displayed in all buffers where local variable type is set to private (example: all IRC private buffers)

Note
There’s no builtin way to refresh the custom bar items. You can use the Trigger plugin to force the refresh, for example via one or more signals received.

For more information and examples, see the /item command.

バーフィリング

フィリングタイプには 4 つの種類があります:

  • horizontal: 左から右に向かって要素を水平に表示。要素内に改行がある場合、空白を行区切りに利用します。

  • vertical: 上から下に向かって要素を表示。要素内に改行がある場合、改行を行区切りに利用します。

  • columns_horizontal: テキストを左寄せして、列形式で要素を表示。最初の要素は左上、2 番目は同じ行の 1 列右側。

  • columns_vertical: テキストを左寄せして、列形式で要素を表示。最初の要素は左上、2 番目は同じ列の 1 行下側。

デフォルトバーである titlestatusinputhorizontal フィリング、nicklistvertical フィリング。

nicklist バーに対するフィリングの例:

┌───────────────────────────────────────────────────────────────────────┐
│Welcome to #test, this is a test channel                               │
│12:54:15 peter | hey!                                         │@carl   │
│12:55:01  +Max | hello                                        │@jessika│
│                                                              │@maddy  │
│                                                              │%Diego  │
│                                                              │%Melody │
│                                                              │+Max    │
│                                                              │ celia  │
│                                                              │ Eva    │
│                                                              │ freddy │
│                                                              │ Harold^│
│                                                              │ henry4 │
│                                                              │ jimmy17│
│                                                              │ jodie ▼│
│[12:55] [6] [irc/libera] 3:#test(+n){24}                               │
│[@carl] █                                                              │
└───────────────────────────────────────────────────────────────────────┘
                                     filling_left_right = vertical ▲

┌───────────────────────────────────────────────────────────────────────┐
│Welcome to #test, this is a test channel                               │
│12:54:15 peter | hey!                                │@carl     lee    │
│12:55:01  +Max | hello                               │@jessika  louise │
│                                                     │@maddy    mario  │
│                                                     │%Diego    mark   │
│                                                     │%Melody   peter  │
│                                                     │+Max      Rachel │
│                                                     │ celia    richard│
│                                                     │ Eva      sheryl │
│                                                     │ freddy   Vince  │
│                                                     │ Harold^  warren │
│                                                     │ henry4   zack   │
│                                                     │ jimmy17         │
│                                                     │ jodie           │
│[12:55] [6] [irc/libera] 3:#test(+n){24}                               │
│[@carl] █                                                              │
└───────────────────────────────────────────────────────────────────────┘
                             filling_left_right = columns_vertical ▲

┌───────────────────────────────────────────────────────────────────────┐
│@carl    %Diego    celia    Harold^  jodie    mario    Rachel   Vince  │
│@jessika %Melody   Eva      henry4   lee      mark     richard  warren │
│@maddy   +Max      freddy   jimmy17  louise   peter    sheryl   zack   │
│───────────────────────────────────────────────────────────────────────│
│                                                                       │
        filling_top_bottom = columns_vertical ▲

┌───────────────────────────────────────────────────────────────────────┐
│@carl    @jessika @maddy   %Diego   %Melody  +Max      celia    Eva    │
│ freddy   Harold^  henry4   jimmy17  jodie    lee      louise   mario  │
│ mark     peter    Rachel   richard  sheryl   Vince    warren   zack   │
│───────────────────────────────────────────────────────────────────────│
│                                                                       │
      filling_top_bottom = columns_horizontal ▲

バー状態

conditions オプションはバーを表示するか否かを評価する文字列です。

文字列は以下のいずれか:

  • active: 非アクティブ状態のウィンドウ

  • inactive: 非アクティブ状態のウィンドウ

  • nicklist: ニックネームリストが含まれるバッファのウィンドウ

  • 式: ブール値として評価 (/eval コマンドを参照)

式に使える変数は以下:

  • ${active}: ウィンドウがアクティブ状態の時に真

  • ${inactive}: ウィンドウが非アクティブ状態の時に真

  • ${nicklist}: ウィンドウに表示されるバッファがニックネームリストの場合に真。

式に使えるポインタは以下:

  • ${window}: 状態が評価されたウィンドウ

  • ${buffer}: 状態が評価されたウィンドウのバッファ

Example to display nicklist bar in all buffers with a nicklist, and only if width of terminal is > 100:

/set weechat.bar.nicklist.conditions "${nicklist} && ${info:term_width} > 100"

Same condition, but always display nicklist on buffer &bitlbee (even if terminal is small):

/set weechat.bar.nicklist.conditions "${nicklist} && (${info:term_width} > 100 || ${buffer.full_name} == irc.bitlbee.&bitlbee)"

暗号化データ

データの保存

WeeChat はパスワードおよび sec.conf ファイルに保存されている個人データを暗号化することができます。

この設定ファイルは他のどのファイルよりも先に読まれ、ファイルに保存されている値を WeeChat およびプラグイン/スクリプトのオプションで使うことができます。

sec.conf に含まれるデータを暗号化するパスフレーズを設定することが可能です。これは必須ではありませんが、パスフレーズを設定することを強く勧めます。パスフレーズを設定しない場合、データは平文でファイルに保存されます。

/secure passphrase this is my passphrase
Passphrase on startup

When a passphrase is set, WeeChat will ask you to enter it on startup (but not on /upgrade).

If you are using a password manager, you can run an external program to read the passphrase instead of having to type it manually on WeeChat startup.
For example with password-store (command pass):

/set sec.crypt.passphrase_command "/usr/bin/pass show weechat/passphrase"

The program may ask you unlock your GPG key or enter another passphrase to read the secret. WeeChat will wait for the end of the command to read the passphrase on the standard output (it must be on the first line without any extra character).
If the output contains no passphrase or if it is wrong, WeeChat will then ask you to enter it.

暗号化

データの暗号化は 3 段階に分けて行われます:

  1. パスフレーズから鍵を生成 (任意の salt を加えます)。

  2. 暗号化するデータのハッシュを計算。

  3. ハッシュとデータを暗号化 (出力: salt + 暗号化済みのハッシュ/データ)。

Note
ブロック暗号モードは CFB です。

結果は 16 進数文字列として sec.conf ファイルに保存されます、例:

[data]
__passphrase__ = on
libera = "53B1C86FCDA28FC122A95B0456ABD79B5AB74654F21C3D099A6CCA8173239EEA59533A1D83011251F96778AC3F5166A394"
復号化

データの復号化は 3 段階に分けて行われます:

  1. salt とパスフレーズを使って鍵を生成。

  2. ハッシュとデータを復号化。

  3. 復号化したハッシュとデータのハッシュが同じことを確認。

暗号化データの管理

暗号化データを追加するには、/secure set を使ってください、libera IRC サーバのパスワードを設定する例:

/secure set libera mypassword

利便性を考慮して、暗号化データを専用のバッファに表示できるようになっています (値を見るにはバッファで kbd:[Alt+v]、以下のコマンドを実行してください:

/secure

例えばパスワードなどの個人データを含むオプションで暗号化データを使うことができます、書式: "${sec.data.xxx}" ここで "xxx" は暗号化データの名前です (/secure set xxx …​ のように使います)。
利用できるオプションの完全なリストはを見るには、/help secure を使ってください。

例えば上の libera パスワードを SASL 認証で使うには:

/set irc.server.libera.sasl_password "${sec.data.libera}"

Command aliases

Alias プラグインを使うことで、コマンドの別名を定義できます (WeeChat だけでなく他のプラグインが提供するコマンドの別名を定義することもできます)。

大文字の別名はデフォルトで定義されたものです (標準コマンドと区別するために大文字を使っています); WeeChat はコマンドの大文字小文字を区別しないので、コマンド /close は別名である /CLOSE を実行します。

デフォルトで定義された別名のリスト:

オプション

alias.conf ファイル内のセクション:

セクション 操作コマンド 説明

cmd

/alias
/set alias.cmd.*

別名に割り当てたコマンド

completion

/alias
/set alias.completion.*

別名に割り当てた補完

コマンドとオプション

保護データのオプション

sec.conf ファイル内のセクション:

セクション 操作コマンド 説明

crypt

/set sec.crypt.*

暗号化に関するオプション

data

/secure

保護データ

オプション:

WeeChat オプション

weechat.conf ファイル内のセクション:

セクション 操作コマンド 説明

debug

/debug set
/set weechat.debug.*

core とプラグインのデバッグレベル (オプションをセクションに追加/削除出来ます)

startup

/set weechat.startup.*

起動オプション

look

/set weechat.look.*

外観

palette

/color alias
/set weechat.palette.*

色の別名 (オプションをセクションに追加/削除出来ます)

color

/set weechat.color.*

completion

/set weechat.completion.*

補完オプション

history

/set weechat.history.*

履歴オプション (コマンドとバッファ)

proxy

/proxy
/set weechat.proxy.*

プロキシオプション

network

/set weechat.network.*

ネットワーク/TLS オプション

plugin

/set weechat.plugin.*

Options on plugins.

signal

/set weechat.signal.*

Options on signals.

bar

/bar
/set weechat.bar.*

バーオプション

layout

/layout

レイアウト

buffer

/buffer setauto

Properties auto-applied on buffers when they are opened.

notify

/buffer notify

バッファに対する通知レベル (オプションをセクションに追加/削除出来ます)

filter

/filter

フィルタ

key

/key

デフォルトコンテキストのキー

key_search

/key

検索コンテキストのキー

key_cursor

/key

カーソルコンテキストのキー

key_mouse

/key

マウスコンテキストのキー

オプション:

IRC

IRC プラグインは IRC プロトコルに従って他の人と会話を行うために設計されています。

マルチサーバに対応し、DCC チャットとファイル転送 (xfer プラグインを使います。Xfer プラグインを参照) を含む全ての IRC コマンドをサポートしています。

コマンドラインオプション

以下のように 1 つ以上の IRC サーバに対応する URL を引数として与えることができます:

irc[6][s]://[nick[:password]@]irc.example.org[:port][/channel][,channel[...]]

alice というニックネームを使って irc.libera.chat ホストのデフォルトポート (6667) で稼働中の IRC サーバ上の #weechat#weechat-fr チャンネルに参加する例:

$ weechat irc://alice@irc.libera.chat/#weechat,#weechat-fr

Servers

Add a server

By default no servers are defined. You can add as many servers as you want with the /server command.

For example to connect to libera.chat  with TLS (encrypted trafic):

/server add libera irc.libera.chat/6697 -tls

You can tell WeeChat to auto-connect to this server on startup:

/set irc.server.libera.autoconnect on

To authenticate, it is recommended to use SASL (if supported on the server), with the password stored as secured data (see also chapter on SASL authentication):

/set irc.server.libera.sasl_username "alice"
/secure set libera xxxxxxx
/set irc.server.libera.sasl_password "${sec.data.libera}"

If SASL is not supported, you can use a command to send a message to nickserv:

/set irc.server.libera.command "/msg nickserv identify ${sec.data.libera}"
Note
By sending a message to nickserv, you may authenticate after joining channels which could be a problem on some channels requiring you to be authenticated to join. In this case, you can set a command delay: /set irc.server.libera.command_delay 5.

Server options

Server options are named irc.server.<server>.<option> where <server> is the internal name of the server and <option> the name of an option.
The value of a server option is inherited from irc.server_default.xxx if the server option has the special value null.

For example if you created the libera server with the commands above, you’ll see this with the command /fset libera:

irc.server.libera.addresses             string   "irc.libera.chat/6697"
irc.server.libera.anti_flood_prio_high  integer  null -> 2
irc.server.libera.anti_flood_prio_low   integer  null -> 2
irc.server.libera.autoconnect           boolean  on
irc.server.libera.autojoin              string   null -> ""
irc.server.libera.autojoin_dynamic      boolean  null -> off
irc.server.libera.autoreconnect         boolean  null -> on
irc.server.libera.autoreconnect_delay   integer  null -> 10
irc.server.libera.autorejoin            boolean  null -> off
irc.server.libera.autorejoin_delay      integer  null -> 30
irc.server.libera.away_check            integer  null -> 0
irc.server.libera.away_check_max_nicks  integer  null -> 25
irc.server.libera.capabilities          string   null -> "*"
irc.server.libera.charset_message       enum     null -> message
irc.server.libera.command               string   null -> ""
irc.server.libera.command_delay         integer  null -> 0
irc.server.libera.connection_timeout    integer  null -> 60
irc.server.libera.default_chantypes     string   null -> "#&"
irc.server.libera.ipv6                  boolean  null -> on
irc.server.libera.local_hostname        string   null -> ""
irc.server.libera.msg_kick              string   null -> ""
irc.server.libera.msg_part              string   null -> "WeeChat ${info:version}"
irc.server.libera.msg_quit              string   null -> "WeeChat ${info:version}"
irc.server.libera.nicks                 string   null -> "alice,alice1,alice2,alice3,alice4"
irc.server.libera.nicks_alternate       boolean  null -> on
irc.server.libera.notify                string   null -> ""
irc.server.libera.password              string   null -> ""
irc.server.libera.proxy                 string   null -> ""
irc.server.libera.realname              string   null -> ""
irc.server.libera.sasl_fail             enum     null -> reconnect
irc.server.libera.sasl_key              string   null -> ""
irc.server.libera.sasl_mechanism        enum     null -> plain
irc.server.libera.sasl_password         string   "${sec.data.libera}"
irc.server.libera.sasl_timeout          integer  null -> 15
irc.server.libera.sasl_username         string   "alice"
irc.server.libera.split_msg_max_length  integer  null -> 512
irc.server.libera.tls                   boolean  on
irc.server.libera.tls_cert              string   null -> ""
irc.server.libera.tls_dhkey_size        integer  null -> 2048
irc.server.libera.tls_fingerprint       string   null -> ""
irc.server.libera.tls_password          string   null -> ""
irc.server.libera.tls_priorities        string   null -> "NORMAL:-VERS-SSL3.0"
irc.server.libera.tls_verify            boolean  null -> on
irc.server.libera.usermode              string   null -> ""
irc.server.libera.username              string   null -> "alice"

For example if you want to automatically connect to all servers you define without having to do it on each server, you can do:

/set irc.server_default.autoconnect on

And then you can reset the server option so that it uses the default inherited value, which is now on instead of the default value off:

/unset irc.server.libera.autoconnect

TLS 証明書

TLS を使って IRC サーバに接続する場合、WeeChat はデフォルトで接続が完全に信頼できるものかどうかを確認します。

以下のオプションで TLS 接続を設定します:

weechat.network.gnutls_ca_system

load system’s default trusted certificate authorities on startup

weechat.network.gnutls_ca_user

extra file(s) with certificate authorities

irc.server.xxx.tls_cert

自動的にニックネームを確認するために利用される TLS 証明書ファイル (例えば oftc サーバにおける CertFP の場合、以下を確認してください)

irc.server.xxx.tls_dhkey_size

Diffie-Hellman キー交換の際に利用される鍵サイズ (デフォルト: 2048)

irc.server.xxx.tls_verify

TLS 接続が完全に信頼できることの確認を行う (デフォルトで有効)

Note
"tls_verify" オプションはデフォルトで有効です、したがって厳密な確認が行われ、0.3.1 より前のバージョンでは信頼性の確認に成功していたものが失敗する場合もあります。
最初の例: oftc に接続して、証明書を確認
  • シェルを使って証明書をインポート:

$ mkdir -p ~/.config/weechat/tls
$ wget -O ~/.config/weechat/tls/CAs.pem https://www.spi-inc.org/ca/spi-cacert.crt
Note
You must replace ~/.config/weechat by the path to your WeeChat config directory which can also be for example ~/.weechat.
Note
CAs.pem ファイル中で複数の証明書を連結することもできます。
  • WeeChat では、"oftc" サーバが既に追加されています:

/connect oftc
2 番目の例: CertFP を使って oftc に接続
  • シェルで証明書を作成:

$ mkdir -p ~/.config/weechat/tls
$ cd ~/.config/weechat/tls
$ openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick.pem
Note
You must replace ~/.config/weechat by the path to your WeeChat config directory which can also be for example ~/.weechat.
  • WeeChat では、"oftc" サーバが既に追加されています:

/set irc.server.oftc.tls_cert "${weechat_config_dir}/tls/nick.pem"
/connect oftc
/msg nickserv cert add

For more information, please look at this page .

SASL 認証

WeeChat は SASL 認証をサポートします、以下の認証メカニズムを利用できます:

  • plain: 平文パスワード (デフォルト)

  • scram-sha-1: SCRAM with SHA-1 digest algorithm

  • scram-sha-256: SCRAM with SHA-256 digest algorithm

  • scram-sha-512: SCRAM with SHA-512 digest algorithm

  • ecdsa-nist256p-challenge: 公開鍵/秘密鍵を使うチャレンジ認証

  • external: クライアント側 TLS 証明書

サーバオプション:

  • sasl_mechanism: 利用する認証メカニズム (上記参照)

  • sasl_timeout: 認証時のタイムアウト (秒単位)

  • sasl_fail: 認証に失敗した場合の挙動

  • sasl_username: ユーザ名 (ニックネーム)

  • sasl_password: パスワード

  • sasl_key: ECC 秘密鍵を含むファイル (ecdsa-nist256p-challenge 用)

SASL ECDSA-NIST256P-CHALLENGE 認証

ECDSA-NIST256P-CHALLENGE を使って認証を行うためには、秘密鍵を作成してください (接続の際にパスワードは不要です)。

鍵を作成するには、以下のコマンドを使ってください:

$ openssl ecparam -genkey -name prime256v1 -out ~/.config/weechat/ecdsa.pem
Note
You must replace ~/.config/weechat by the path to your WeeChat config directory which can also be for example ~/.weechat.

公開鍵を (base64 エンコード形式で) 作成するには、以下のコマンドを使ってください:

$ openssl ec -noout -text -conv_form compressed -in ~/.config/weechat/ecdsa.pem | grep '^pub:' -A 3 | tail -n 3 | tr -d ' \n:' | xxd -r -p | base64

サーバに接続、本人確認 (例えば "nickserv identify" を使って)、nickserv を使ってアカウントに公開鍵を設定 (アカウントの公開鍵に base64 文字列を指定する):

/connect libera
/msg nickserv identify your_password
/msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q

サーバの SASL オプションを設定:

/set irc.server.libera.sasl_mechanism ecdsa-nist256p-challenge
/set irc.server.libera.sasl_username "your_nickname"
/set irc.server.libera.sasl_key "${weechat_config_dir}/ecdsa.pem"

サーバに再接続:

/reconnect libera

Connection

You can connect to server with the /connect command:

/connect libera

To disconnect:

/disconnect libera

Or just this if you are on any buffer belonging to libera server (server, channel, private):

/disconnect

When you connect to multiple servers at same time, server buffers are merged by default and you can switch between them with the kbd:[Ctrl+x] key.
It is possible to disable auto merge of server buffers to have independent server buffers:

/set irc.look.server_buffer independent

Connect with Tor and SASL

Some servers support connections with Tor , a network of virtual tunnels that allows people and groups to improve their privacy and security on the Internet.

最初に、Tor をインストールしてください。Debian (とその派生ディストリビューション) の場合:

$ sudo apt-get install tor

WeeChat で Tor サービスを使った socks5 プロキシを作成してください (ホスト名/IP アドレス、ポート番号は Tor の設定に依存します):

/proxy add tor socks5 127.0.0.1 9050

Now, add a new server (replace server name "irc-tor" and the address by a valid one):

/server add irc-tor this.is.the.address.onion

Tor プロキシを設定:

/set irc.server.irc-tor.proxy "tor"

ECDSA-NIST256P-CHALLENGE メカニズムで SASL 認証を設定 (秘密鍵を作成するには SASL ECDSA-NIST256P-CHALLENGE 認証を参照してください):

/set irc.server.irc-tor.sasl_mechanism ecdsa-nist256p-challenge
/set irc.server.irc-tor.sasl_username "your_nickname"
/set irc.server.irc-tor.sasl_key "${weechat_config_dir}/ecdsa.pem"

And finally, connect to the server:

/connect irc-tor

IRCv3 support

WeeChat supports the following IRCv3 extensions :

By default all capabilities supported by the server and WeeChat are automatically enabled (see option irc.server_default.capabilities).

Tables with comparison of different IRC clients, including WeeChat, are available on this page .

account-notify

Specification: account-notify 

This capability allows the server to send messages when users identify or unidentify on the server.
WeeChat displays such messages if the option irc.look.display_account_message is enabled (default value).

Examples:

-- alice has identified as Alice01

-- alice has unidentified

account-tag

Specification: account-tag 

This capability allows the server to send account as message tag to commands sent to the client.
WeeChat parses this tag and saves it in the message, but it is not used or displayed. It can be used in /filter command to filter messages matching specific accounts.

Example of raw IRC message received:

@account=Alice01 :user@example.com PRIVMSG #test :Hello!

Message displayed in channel:

<alice> Hello!

Message with tags:

<alice> Hello! [irc_privmsg,irc_tag_account_Alice01,notify_message,prefix_nick_lightcyan,nick_alice,host_user@example.com,log1]

away-notify

Specification: away-notify 

This capability allows the server to send away notifications for users present on the same channels as you.

When the away status is changed for a user (away or back), this is reflected with a specific color in the nicklist, using the following options:

batch

Specification: batch 

This capability allows the server to send batched events (grouping of several messages that are related).

For now, WeeChat only stores messages received in a batch and processes as usual later, when the batch ends.

cap-notify

Specification: cap-notify 

This capability allows the server to advertise on new or removed capabilities on the server (via CAP NEW and CAP DEL commands).

Examples:

-- irc: クライアントの機能、現在利用可能なもの: sasl

-- irc: クライアントの機能、削除されたもの: sasl

chghost

Specification: chghost 

This capability allows the server to send messages when users change name or host.
When the option irc.look.smart_filter_chghost is enabled (default value), the host changes are automatically hidden if the nick has not spoken for several minutes.
The color of the change host message is controlled by the option irc.color.message_chghost.

Example:

-- alice (user@example.com) がホストを test.com に変更しました

draft/multiline

Specification: multiline 

This capability allows the client and server to send messages with multiple lines, using the batch capability, that must be enabled as well.

There are limits in term of bytes or number of lines in a multiline message that are given in the capability sent by the server, for example:

CAP alice LS * :draft/multiline=max-bytes=4096,max-lines=24

This sets a limit of 4096 bytes and 24 lines for a multiline batched content.

If the limits are not given by the server, the default in WeeChat are:

  • max bytes: 4096

  • max lines: 24

Only standard messages and those send by the /notice command can be multiline.
ACTION CTCP messages sent with command /me are not affected by this capability. That means multiline actions are sent as multiple actions.

Warning
As the specification is a "draft", it may change and the multiline support can possibly break at any time in WeeChat.
The capability is automatically enabled if the server supports it and can be disabled with this command: /set irc.server_default.capabilities "*,!draft/multiline".
When the capability is disabled, a multiline message is sent as multiple messages, as if they were sent sequentially to the server.

Example of IRC messages sent for a user message with two lines (this is a test / on two lines), send to channel #test:

BATCH +i8Je7M7gquddoyC9 draft/multiline #test
@batch=i8Je7M7gquddoyC9 PRIVMSG #test :this is a test
@batch=i8Je7M7gquddoyC9 PRIVMSG #test :on two lines
BATCH -i8Je7M7gquddoyC9

Display of the message sent in WeeChat:

19:01:45 alice | this is a test
               | on two lines

echo-message

Specification: echo-message 

This capability forces the server to send PRIVMSG, NOTICE and TAGMSG messages back to WeeChat.

WeeChat displays only the message received and not the message sent, so a delay can be noticed between the send and the display. When the message is displayed, it means it has been properly received by the server and propagated to other clients connected to the server as well.

extended-join

Specification: extended-join 

This capability allows the server to send account and real name when users join channels.
WeeChat displays this additional information in join messages if the option irc.look.display_extended_join is enabled (default value).

Example:

--> john [John01] (John Doe) (~user@example.com) が #test に参加

invite-notify

Specification: invite-notify 

This capability allows the server to send invite messages when users are invited to channels.

Example:

-- alice が bob を #test に招待しました

message-tags

Specification: message-tags 

This capability allows to add metadata in messages.
These tags can be displayed using the command /debug tags.

It must be enabled to use typing notifications.

monitor

Specification: monitor 

This capability allows the server to send notifications when clients become online/offline.
WeeChat automatically uses this extension if available when using the /notify command.

multi-prefix

Specification: multi-prefix 

This capability allows the server to send all user modes at once in /names and /whois responses.

Note
For now, WeeChat doesn’t display all prefixes in the /names output, even if they are received and properly saved internally.

Example: output of /whois alice:

-- [alice] @%+#test

SASL

Specification: SASL 3.2 

See the dedicated chapter SASL authentication.

server-time

Specification: server-time 

This capability allows the server to send time for messages as message tag.
When the time is received in a message, WeeChat uses it to display the message (it can then be displayed with a past date).

The IRC proxy in Relay plugin supports this capability, so any IRC client of Relay should enable it to display the real message time in the backlog sent upon connection.

setname

Specification: setname 

This capability lets you change your real name by using the /setname command.

typing

Specification: typing 

See the dedicated chapter Typing notifications.

userhost-in-names

Specification: userhost-in-names 

This capability allows the server to send hostnames in /names responses.

Note
WeeChat doesn’t display hostnames in the /names output.

Example of raw IRC messages received without the capability:

:irc.server 353 alice = #test :@alice bob +carol

Example of raw IRC messages received with the capability:

:irc.server 353 alice = #test :@alice!user1@host1 bob!user2@host2 +carol!user3@host3

WHOX

Specification: WHOX 

This capability lets you request additional fields in the WHO response (via the /who command).
WeeChat displays all additional information received in the WHO output.

Channels

You can join channels with the /join command:

/join #channel

Part a channel (keeping the buffer open):

/part [quit message]

The channels you joined are not saved. If you want to join them automatically when connecting to the server, you must set the server autojoin option:

/set irc.server.libera.autojoin "#weechat,#weechat-fr"
Note
Some scripts can help to automatically set this option, see /script search autojoin.

Be careful, spaces can be used only to separate list of channels from keys, for example if #channel1 requires a key but not #channel2:

/set irc.server.libera.autojoin "#channel1,#channel2 key1"

For help on the format, see /help irc.server.libera.autojoin.

Private messages

You can send a private message with the /query command, which opens a separate buffer:

/query bob hi, how are you?

Without arguments the command just opens the buffer (or selects it if already open):

/query bob

To close the private buffer, you can do this command on the private buffer:

/close

Smart filter

A smart filter is available to filter some messages when someone did not write anything in the channel during a configurable delay:

  • join: user joins the channel

  • part: user leaves the channel

  • quit: user quits the server

  • account: user changes its account

  • chghost: user changes name or host

  • mode: mode changes on channel

  • nick: user changes its nick

  • setname: user changes its real name

Smart filter is enabled by default, but you must add a filter to hide lines on buffers, for example:

/filter add irc_smart * irc_smart_filter *

It is possible to create filter for one channel only or channels beginning with same name (see /help filter):

/filter add irc_smart_weechat irc.libera.#weechat* irc_smart_filter *

You can setup a longer delay (in minutes):

/set irc.look.smart_filter_delay 10

If someone did not write anything during last 10 minutes, its messages like join/part/quit will be hidden by default on channel, and you can use key kbd:[Alt+=] (toggle filters) to see them.

CTCP 応答

CTCP 応答をカスタマイズしたり、いくつかの CTCP 要求をブロック (無応答) することができます。

例えば、CTCP "VERSION" 要求に対する応答をカスタマイズするには、以下のコマンドを使ってください:

/set irc.ctcp.version "I'm running WeeChat ${version}, it rocks!"
Note
The name of CTCP must be in lower case. That means option irc.ctcp.VERSION would not work.

CTCP "VERSION" 要求をブロックする (要求に対する応答を行わない) には、空文字列を設定してください:

/set irc.ctcp.version ""

未定義の CTCP 要求に対する応答もカスタマイズできます。例えば CTCP "BLABLA" 要求に対する応答を以下のように設定できます:

/set irc.ctcp.blabla "This is my answer to CTCP BLABLA"

特定のサーバに対して CTCP 応答をカスタマイズするには、CTCP 名の前に内部サーバ名をつけてください:

/set irc.ctcp.libera.version "WeeChat ${version} (for libera)"

標準の CTCP 応答を復元するには、オプションを削除してください:

/unset irc.ctcp.version

The CTCP replies are evaluated (see command /eval) and the following extra variables are available:

Variable 説明 値/例

${clientinfo}

サポートしている CTCP オプションのリスト

ACTION DCC CLIENTINFO PING SOURCE TIME VERSION

${version}

WeeChat バージョン

4.1.0-dev

${versiongit}

WeeChat バージョン + Git バージョン (1)

4.1.0-dev (git: v4.0.0-51-g8f98b922a)

${git}

Git バージョン (1)

v4.0.0-51-g8f98b922a

${compilation}

WeeChat コンパイル日時

Jul 8 2023 20:14:23

${osinfo}

OS に関する情報

Linux 5.10.0-23-amd64 / x86_64

${site}

WeeChat ウェブサイト

https://weechat.org/

${download}

WeeChat ウェブサイトのダウンロードページ

https://weechat.org/download/

${time}

現在の日時

Sat, 08 Jul 2023 21:11:19 +0200

${username}

IRC サーバ上で使うユーザ名

name

${realname}

IRC サーバ上で使う実名

John Doe

Note
(1) git バージョンとは git describe コマンドの出力です。Git リポジトリで WeeChat をコンパイルし、Git がインストールされている場合のみ値が設定されます。

The default CTCP replies are:

CTCP 応答書式

CLIENTINFO

${clientinfo}

ACTION DCC CLIENTINFO PING SOURCE TIME VERSION

SOURCE

${download}

https://weechat.org/download/

TIME

${time}

Sat, 08 Jul 2023 21:11:19 +0200

VERSION

WeeChat ${version}

WeeChat 4.1.0-dev

IRC メッセージのターゲットバッファ

irc.msgbuffer.* オプションを使えば、IRC メッセージに対するターゲットバッファ (メッセージを表示するバッファ) をカスタマイズすることができます。

一部の IRC メッセージ (以下のリストを参照) に対して、以下の値を設定できます:

current

現在のバッファ (IRC バッファまたはサーババッファの場合のデフォルト)

private

ニックネームに対するプライベートバッファ、見つからない場合は現在のバッファまたはサーババッファ (irc.look.msgbuffer_fallback オプションに依存)

server

サーババッファ

weechat

WeeChat "core" バッファ

オプションが設定されていない (デフォルトの) 場合、WeeChat は適当なバッファを選びます。通常ではサーバまたはチャンネルバッファです。

カスタマイズできる一部の IRC メッセージ、別名のリストは以下です:

メッセージ 別名 説明

error

エラー

invite

チャンネルへの招待

join

参加

kick

キック

kill

キル

mode

モード

notice

通知

part

退出

quit

終了

topic

トピック

wallops

IRC オペレータメッセージ

ctcp

ctcp (プライベートまたは notice メッセージ内の、送信または受信メッセージ)

221

ユーザモード文字列

275

whois

whois (セキュアな接続)

301

whois

whois (離席状態)

303

サーバへの接続状態

305

unaway

着席状態

306

away

離席状態

307

whois

whois (登録済みニックネーム)

310

whois

whois (ヘルプモード)

311

whois

whois (ユーザ)

312

whois

whois (サーバ)

313

whois

whois (オペレータ)

314

whowas

whowas

315

who

who (終了)

317

whois

whois (アイドル状態)

318

whois

whois (終了)

319

whois

whois (チャンネル)

320

whois

whois (身元確認済みユーザ)

321

list

list (開始)

322

list

list (チャンネル)

323

list

list (終了)

326

whois

whois (オペレータ権限を持っているユーザ)

327

whois

whois (ホスト)

328

チャンネルの URL

329

チャンネル作成日時

330

whois

whois (ログイン時の名前)

331

トピックが未設定のチャンネル

332

チャンネルのトピック

333

トピックに関する情報

335

whois

whois (ボットが有効化されているか)

338

whois

whois (ホスト)

341

招待中

343

whois

whois (オペレータ)

344

reop

チャンネルオペレータを復活

345

reop

チャンネルオペレータを復活 (終了)

346

invitelist

招待リスト

347

invitelist

招待リスト (終了)

348

exceptionlist

除外リスト

349

exceptionlist

除外リスト (終了)

351

サーババージョン

352

who

who

353

names

チャンネル内ユーザのリスト

366

names

チャンネル内ユーザのリストの終了

367

banlist

禁止リスト

368

banlist

禁止リストの終了

369

whowas

whowas (終了)

378

whois

whois (接続元)

379

whois

whois (モード)

401

whois

指定したニックネームおよびチャンネルがありません

402

whois

指定したサーバがありません

432

ニックネームにエラーがあります

433

ニックネームが使用されています

438

ニックネームを変更する権限がありません

671

whois

whois (セキュアな接続)

728

quietlist

発言禁止リスト

729

quietlist

発言禁止リストの終了

732

monitor

監視中のニックネームのリスト

733

monitor

監視中のニックネームのリスト (終了)

901

ログインに成功

その他の数値コマンドも同様にカスタマイズできます。

サーバ名を前につけることで、特定のサーバに対して設定することができます (例: libera.whois)。

例:

  • /whois の結果をプライベートバッファに表示:

/set irc.msgbuffer.whois private
  • whois に対する設定をデフォルトに戻す (サーババッファに表示):

/unset irc.msgbuffer.whois
  • "libera" サーバの場合、招待メッセージを現在のバッファに表示:

/set irc.msgbuffer.libera.invite current
  • "303" (ison) メッセージを WeeChat "core" バッファに表示:

/set irc.msgbuffer.303 weechat

オプション

irc.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set irc.look.*

外観

color

/set irc.color.*

network

/set irc.network.*

ネットワークオプション

msgbuffer

/set irc.msgbuffer.*

IRC メッセージのターゲットバッファ (オプションをセクションに追加/削除出来ます)

ctcp

/set irc.ctcp.*

CTCP 応答 (オプションをセクションに追加/削除出来ます)

ignore

/ignore

無視ユーザ

server_default

/set irc.server_default.*

サーバに対するデフォルト値 (サーバオプションが定義されていない場合に利用されます)

server

/server
/set irc.server.*

サーバ

オプション:

Xfer

Xfer プラグインの機能:

  • ダイレクトチャット (サーバ不要の 2 ホスト間直接接続): 例えば IRC プラグイン経由の "DCC チャット"

  • ファイル転送、例えば IRC プラグイン経由の "DCC"

オプション

xfer.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set xfer.look.*

外観

color

/set xfer.color.*

network

/set xfer.network.*

ネットワークオプション

file

/set xfer.file.*

ファイルの送信/受信に関するオプション

オプション:

Typing notifications

The typing plugin is used to inform other users you are typing messages and show a list of users currently typing a message on the buffer.

It is used by IRC plugin on channel and private buffers, when the "message-tags" capability is enabled (you can check with /cap command).
Under the hood, typing client tag is used, following this specification .

Activation

For privacy considerations, the typing feature is disabled by default.
If you want to use it, you must enable options in both typing and irc plugins:

/set typing.look.enabled_nicks on
/set typing.look.enabled_self on
/set irc.look.typing_status_nicks on
/set irc.look.typing_status_self on

The typing notifications are displayed at the end of the status bar.

Example of status bar with the "typing" item: "bob" is typing a message and "alice" was typing a message but made a pause:

│[12:55] [6] [irc/libera] 3:#test(+n){4} [Typing: bob, (alice)]                   │
│[@Flashy] █                                                                      │
└─────────────────────────────────────────────────────────────────────────────────┘

Signals sent

When you are typing a message (not a command starting with /), the typing plugin sends signals to inform other plugins (like IRC) that you are typing, and these plugins can then send typing notifications to other users.

The following signals are sent when you are typing messages:

Signal Arguments Description

typing_self_typing

Pointer: buffer.

You are typing a message.

typing_self_paused

Pointer: buffer.

You made a pause while typing a message.

typing_self_cleared

Pointer: buffer.

You cleared the command line without sending the message.

typing_self_sent

Pointer: buffer.

You sent the message to the buffer.

Signals caught

The typing plugin is catching some signals that can be sent by other plugins (like IRC), to update internal hashtables used to store the typing state of nicks on buffers. These hashtables are used to build the content of "typing" bar item.

The following signals are caught by the typing plugin:

Signal Arguments Description

typing_set_nick

String: buffer pointer + ";" + state (one of: "off", "typing", "paused", "cleared") + ";" + nick.
Example: "0x1234abcd;typing;alice".

Set typing state for a nick on a buffer.

typing_reset_buffer

Pointer: buffer.

Remove typing state for all nicks on a buffer.

オプション

typing.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set typing.look.*

外観

オプション:

Relay

Relay プラグインはネットワークを介して異なるプロトコルを用いてデータを中継するために利用します:

  • irc: IRC プロキシ: IRC サーバに対する接続を、単一または複数の IRC クライアントで共有するために用います。

  • weechat: protocol used by remote interfaces to display and interact with WeeChat, see this page .

パスワード

It is highly recommended to set a password for relay, with these commands:

secure set relay mypassword
/set relay.network.password "${sec.data.relay}"

このパスワードは ircweechat プロトコルで利用されます。

TOTP

weechat プロトコルでは、パスワードに加えて、二要素認証の TOTP (時間ベースのワンタイムパスワード) を使うことが可能です。

これは任意設定項目であり、セキュリティレベルを向上させます。

ワンタイムパスワードは以下のようなアプリケーションを使って生成します:

TOTP の secret を WeeChat とワンタイムパスワードを生成するアプリケーション内部に設定しなければいけません。

TOTP の secret は base32 でエンコードされた文字列 (文字および 2 から 7 までの数字) でなければいけません。以下はその例です:

/secure set relay_totp secretpasswordbase32
/set relay.network.totp_secret "${sec.data.relay_totp}"

TLS

証明書と秘密鍵を作り、プロトコル名の最初に "tls." を付けることで TLS 経由でリレーを利用することができます。

The default path to certificate/key is defined by option relay.network.tls_cert_key.

以下のコマンドを使って証明書と秘密鍵ファイルを作成します:

$ mkdir -p ~/.config/weechat/tls
$ cd ~/.config/weechat/tls
$ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem
Note
You must replace ~/.config/weechat by the path to your WeeChat config directory which can also be for example ~/.weechat.

WeeChat が既に起動している場合、以下のコマンドで証明書と秘密鍵をリロードできます:

/relay tlscertkey

IRC プロキシ

Relay プラグインは IRC プロキシとしても使えます: Relay プラグインは IRC サーバのふりをして、他の IRC クライアント (WeeChat 自身も) は WeeChat に接続できます。

IRC サーバごとに異なるポート、もしくは全てのサーバに対して共通のポートを定義することができます。

すべてのサーバに対して共通のポートを定義した場合には、クライアントからサーバの内部名を IRC の "PASS" コマンドに含めて送信するようにしてください、以下の書式を使ってください (see example below):

PASS server:mypass

例: TLS を使い、全てのサーバに対して共通の IRC プロキシを設定 (サーバはクライアントが選択):

/relay add tls.irc 8000

例: TLS を使わず、内部名 "libera" のサーバに対して IRC プロキシを設定:

/relay add irc.libera 8000

任意の IRC クライアントからサーバパスワード "mypass" (全てのサーバに対して共通の IRC プロキシを設定した場合には "libera:mypass") で 8000 番ポートに接続出来ます。

For example if you use WeeChat as IRC client of the relay, with a server called "relay" and the relay password "secret", you can setup the password with these commands:

/secure set relay_libera libera:secret
/set irc.server.relay.password "${sec.data.relay_libera}"

WeeChat プロトコル

Relay プラグインは WeeChat プロトコルを使ってリモートインターフェースに対してデータを送信できます。

You can connect with a remote interface, see this page .

Important
このプロトコルを使った場合 WeeChat から他の WeeChat に接続することはできません。

例:

/relay add weechat 9000

この後、リモートインターフェースを使って 9000 番ポートに対して、パスワード "mypass" で接続することができます。

WebSocket

Relay プラグインはすべてのプロトコルに対して WebSocket プロトコル (RFC 6455 ) をサポートします。

WebSocket ハンドシェイクは自動的に検知され、ハンドシェイク中に必要なヘッダが見つかり origin が許可されていれば WebSocket 用のソケットが準備されます (オプション relay.network.websocket_allowed_origins を参照)。

HTML5 を使えばたった 1 行の JavaScript で WebSocket をオープンすることが可能です:

websocket = new WebSocket("ws://server.com:9000/weechat");

ポート番号 (例では 9000 番) は Relay プラグインで定義したものです。URI の最後には必ず "/weechat" をつけます (ircweechat プロトコルの場合)。

UNIX ドメインソケット

/relay add コマンドにプロトコルオプション "unix" をつけることで、指定したパスで動作する UNIX ドメインソケット上の任意のプロトコルをリッスンできます。例:

/relay add unix.weechat ${weechat_runtime_dir}/relay_socket

こうすることで、クライアントは weechat プロトコルを使って /run/user/1000/weechat/relay_socket に接続できます。これは、他のポートをオープンが禁止されている状況下で、リレークライアントの SSH 転送を許可する際に特に便利です。

OpenSSH を使った例:

$ ssh -L 9000:.weechat/relay_socket user@hostname

これでポート 9000 番に接続してきたローカルのリレークライアントは "hostname" 上で動作中の WeeChat インスタンスへ転送されます。

オプション

relay.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set relay.look.*

外観

color

/set relay.color.*

network

/set relay.network.*

ネットワークオプション

irc

/set relay.irc.*

特定の irc プロトコルのオプション (irc プロキシ)

port

/relay add
/set relay.port.*

リレーに使うポート(irc や weechat プロトコル) (オプションをセクションに追加/削除出来ます)

オプション:

External commands

/exec コマンドを使うことで WeeChat 内部から外部コマンドを実行し、その結果を表示したりバッファに送信することが可能になります。

オプション

exec.conf ファイル内のセクション:

セクション 操作コマンド 説明

command

/set exec.command.*

コマンドに対するオプション

color

/set exec.color.*

オプション:

FIFO pipe

外部から WeeChat を操作するには、FIFO パイプにコマンドやテキストを書き込んでください ("fifo.file.enabled" オプションが有効化されている必要がありますが、デフォルトで有効化されているはずです)。

The FIFO pipe is located in WeeChat runtime directory and is called weechat_fifo_12345 by default (where 12345 is the WeeChat process id).

FIFO パイプに書き込むコマンド/テキストの文法は以下の例の一つです:

  plugin.buffer *テキストまたはコマンド
  *テキストまたはコマンド

Backslashes can be interpreted with this format, where * is replaced by \, allowing for example to send multiline messages:

  plugin.buffer \text or command here
  \text or command here

例:

  • IRC サーバ libera で使うニックネームを "newnick" に変更する:

$ echo 'irc.server.libera */nick newnick' >/run/user/1000/weechat/weechat_fifo_12345
  • IRC チャンネル #weechat に対してテキストを送信:

$ echo 'irc.libera.#weechat *hello!' >/run/user/1000/weechat/weechat_fifo_12345
  • Send a multiline message on IRC #test channel, if capability "draft/multiline" is enabled on the ergo server:

$ echo 'irc.ergo.#test \hello\n...on two lines!' >/run/user/1000/weechat/weechat_fifo_12345
  • 現在のバッファに対してテキストを送信:

$ echo '*hello!' >/run/user/1000/weechat/weechat_fifo_12345
  • Python スクリプトのアンロードとロードを行う 2 つのコマンドを送信 (複数のコマンドは "\n" で分割してください):

$ printf '%b' '*/python unload\n*/python autoload\n' >/run/user/1000/weechat/weechat_fifo_12345

オプション

fifo.conf ファイル内のセクション:

セクション 操作コマンド 説明

file

/set fifo.file.*

FIFO パイプに関するオプション

オプション:

Trigger

トリガは WeeChat の便利ツールです: 様々なもの (signal、modifier、print、…​) をフックして、データの内容を書き換えたり、複数のコマンドを実行することができます。条件をつけることで一部の場合だけトリガを実行するように設定することもできます。

トリガを使うにはシグナル、修飾子、…​ がどのように動いているかを知らなければいけません。これを知るには WeeChat プラグイン API リファレンス / フック を読むことをお勧めします。

デフォルトトリガ

WeeChat はデフォルトで 5 つのトリガを作成しますが、これらを無効化、更新、削除することも可能です:

  • 通知用の beep トリガ

  • それ以外の 4 つは画面上でパスワードを隠すためのトリガ

デフォルトトリガのリスト:

名前 フック 説明

beep

print

ハイライト/プライベートメッセージを受信した際にビープを鳴らす。

cmd_pass

modifier

コマンド内のパスワードを隠す: /msg nickserv id|identify|set password|ghost|release|regain|recover/oper/quote pass/secure passphrase|decrypt|set

cmd_pass_register

modifier

コマンド内のパスワードを隠す /msg nickserv register

msg_auth

modifier

IRC auth メッセージ (ユーザがコマンドを実行した後にサーバから受信するメッセージ) の表示時にパスワードを隠す。

server_pass

modifier

/server/connect コマンド内のパスワードを隠す。

トリガの構造

トリガは以下のオプションをとります (名前は trigger.trigger.<name>.<option>):

オプション 説明

enabled

onoff

オプションが off の場合、トリガは無効化され、アクションは実行されません。

hook

signalhsignalmodifierline, printcommandcommand_runtimerconfigfocusinfoinfo_hashtable

トリガの中で使われるフック。より詳しい情報は WeeChat プラグイン API リファレンス / フック を参照してください。

arguments

文字列

フックに対する引数、指定したフックの型に依存します。

conditions

文字列

トリガを実行する条件; 内容は評価されます (コマンド /eval を参照)。

regex

文字列

1 つ以上の POSIX 拡張正規表現、フックコールバック (とトリガプラグインによって追加されるもの) が受け取るデータに変更を加えるためのもの、正規表現を参照。

command

文字列

実行するコマンド (複数のコマンドを使う場合には各コマンドをセミコロンで区切ってください); 内容は評価されます (コマンド /eval を参照)。

return_code

okok_eaterror

コールバックの戻り値 (デフォルトは ok、ほとんどすべてのトリガで戻り値はこれを使うべきで、ほかの値を使うことは極めてまれです)。

post_action

none (何もしない)、disable (無効化)、delete (削除)

実行後のトリガに対する処遇 (ほとんどすべてのトリガではデフォルトの none を設定するべきで、それ以外の値を設定することはほとんどありません)。

例えば、デフォルトの beep トリガは以下のオプションをとります:

trigger.trigger.beep.enabled = on
trigger.trigger.beep.hook = print
trigger.trigger.beep.arguments = ""
trigger.trigger.beep.conditions = "${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})"
trigger.trigger.beep.regex = ""
trigger.trigger.beep.command = "/print -beep"
trigger.trigger.beep.return_code = ok
trigger.trigger.beep.post_action = none

実行

トリガ機能が有効になっていてさらに対象のトリガが有効化されている場合に、トリガコールバックが呼び出されると、以下のアクションがこの順番で実行されます:

  1. トリガ条件の確認: 偽の場合、終了

  2. 正規表現を使ってトリガ内でテキスト置換

  3. コマンドを実行

  4. 戻り値を返して終了 (modifierlinefocusinfoinfo_hashtable フックを除く)

  5. トリガ実行後の処遇を適用 (none 以外の場合)。

フック引数

引数は使用するフックの種類に依存します。引数はセミコロンで区切ってください。

フック 引数 解説 (API)

signal

1. シグナル名 (優先度の指定も可) (必須)
2. シグナル名 (優先度の指定も可)
3. …​

*,irc_in_privmsg
*,irc_in_privmsg;*,irc_in_notice
signal_sigwinch

hook_signal 

hsignal

1. シグナル名 (優先度の指定も可) (必須)
2. シグナル名 (優先度の指定も可)
3. …​

nicklist_nick_added

hook_hsignal 

modifier

1. 修飾子名 (優先度の指定も可) (必須)
2. 修飾子名 (優先度の指定も可)
3. …​

weechat_print
5000|input_text_display;5000|history_add

hook_modifier 

line

1. バッファ型
2. バッファ名
3. タグ

formatted
free
*;irc.libera.*
*;irc.libera.#weechat
formatted;irc.libera.#weechat;irc_notice

hook_line 

print

1. バッファ名
2. タグ
3. メッセージ
4. 色の削除 (0/1)

irc.libera.*
irc.libera.#weechat
irc.libera.#weechat;irc_notice
*;;;1

hook_print 

command

1. コマンド名 (優先度の指定も可) (必須)
2. 説明 (evaluated, /eval コマンドを参照)
3. 引数 (evaluated, /eval コマンドを参照)
4. 引数の説明 (evaluated, /eval コマンドを参照)
5. 補完 (evaluated, /eval コマンドを参照)

test
5000|test
test;test command;arg1 arg2;arg1: description 1${\n}arg2: description 2

hook_command 

command_run

1. コマンド (優先度の指定も可) (必須)
2. コマンド (優先度の指定も可)
3. …​

/cmd arguments

hook_command_run 

timer

1. インターバルするミリ秒数 (必須)
2. 秒の調整 (デフォルト: 0)
3. 呼び出し回数の最大値 (デフォルト: 0、「無限に」呼び出すことを意味します)

3600000
60000;0;5

hook_timer 

config

1. オプション名 (優先度の指定も可) (必須)
2. オプション名 (優先度の指定も可)
3. …​

weechat.look.*

hook_config 

focus

1. エリア名 (優先度の指定も可) (必須)
2. エリア名 (優先度の指定も可)
3. …​

buffer_nicklist

hook_focus 

info

1. インフォ名 (優先度の指定も可) (必須)
2. インフォ名 (優先度の指定も可)
3. …​

my_info

hook_info 

info_hashtable

1. インフォ名 (優先度の指定も可) (必須)
2. インフォ名 (優先度の指定も可)
3. …​

my_info

hook_info_hashtable 

条件

条件を指定することで、トリガ内で処理を継続するか完全に止めるかを制御できます。

条件は評価され、コールバック内で利用できるデータを条件として利用できます (コールバック内のデータとコマンド /eval を参照)。

例: デフォルトの beep トリガは以下の条件を使い、ハイライトまたはプライベートメッセージの場合だけビープを鳴らすようにしています:

${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})

Regular expression

The regular expression is used to change variables in callback hashtable.

Format is one of the following:

/string1/string2
/string1/string2/var
s/string1/string2
s/string1/string2/var
y/string1/string2
y/string1/string2/var

Fields:

  • s or y: a letter with the command; if missing, default command is s and the first char is then used as the delimiter:

    • s: regex replacement: first string is a regular expression, second string is the replacement for every matching string

    • y: chars translation: first string is a set of characters that are replaced by the characters in the second string; once evaluated, each string must have exactly the same number of UTF-8 chars

  • /: the regex delimiter; the char "/" can be replaced by any char (one or more identical chars)

  • string1: the first string (use depends on the command)

  • string2: the second string (use depends on the command)

  • var: the hashtable variable to update

Many regular expressions can be separated by a space, for example:

s/regex1/replace1/var1 y/abcdef/ABDDEF/var2

Regex replace

For the command s, the format is: s/regex/replace or s/regex/replace/var (where var is a variable of the hashtable).

As s is the default command, it can be omitted, so /regex/replace is also valid (but the first char, which is the delimiter, must not be a letter).

Matching groups can be used in replace:

  • ${re:0} to ${re:99}: ${re:0} is the whole match, ${re:1} to ${re:99} are groups captured

  • ${re:}+: the last match (with highest number)

  • ${hide:c,${re:N}}: match "N" with all chars replaced by "c" (example: ${hide:*,${re:2}} is the group #2 with all chars replaced by *).

Example: use bold for words between *:

s/\*([^ ]+)\*/*${color:bold}${re:1}${color:-bold}*/

Example: default trigger server_pass uses this regular expression to hide password in commands /server and /connect (chars in passwords are replaced by *):

s==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}
Note
In this example, the delimiter used is "==" because there is a "/" in the regular expression.

Translate chars

For the command y, the format is: y/chars1/chars2 or y/chars1/chars2/var (where var is a variable of the hashtable).

Example: replace "a", "b" and "c" by upper case letter:

y/abc/ABC/

Example: rotate arrows clockwise:

y/←↑→↓/↑→↓←/

Example: convert all letters to lower case:

y/${chars:upper}/${chars:lower}/

Example: shift each letter by one position, preserving case: a→b, b→c … y→z, z→a:

y/${chars:a-z}${chars:A-Z}/${chars:b-z}a${chars:B-Z}A/

Variable

If var does not exist in the hashtable, it is created automatically with an empty value. This allows to create custom temporary variables.

If var is not specified, the default variable is used, it depends on hook type:

フック デフォルト変数 更新が許可Update allowed (1)

signal

tg_signal_data

hsignal

modifier

tg_string

tg_string

line

message

buffer、buffer_name、y、date、date_usec、date_printed、date_usec_printed、str_time、tags、notify_level、highlight、prefix、message

print

tg_message

command

tg_argv_eol1

command_run

tg_command

timer

tg_remaining_calls

config

tg_value

focus

info

tg_info

tg_info

info_hashtable

ハッシュテーブルで受け取ったすべての変数

Note
(1) トリガはすべての値を更新できますが、ここで挙げた変数だけがトリガによって返されて WeeChat によって使われる値に影響を及ぼします

コマンド

コマンドは正規表現を使ったテキスト置換の後に実行されます。複数のコマンドを実行するにはセミコロンで区切ってください。

コマンドは評価され (コマンド /eval を参照) コマンド内では正規表現を使って置換したテキストを使うことができます。

例: デフォルトの beep トリガは以下のコマンドを実行してビープ (BEL) を鳴らしています:

/print -beep

コールバック内におけるデータ

コールバック内で受け取ったデータはハッシュテーブル (ポインタと文字列) の中に保存され、以下のオプションで使うことができます:

  • conditions

  • regex

  • command

ハッシュテーブルの内容はフックの種類に依存します。

トリガ内部におけるデータを簡単に確認するには、以下のコマンドを使ってトリガ監視バッファを開いてください:

/trigger monitor

All callbacks set following variables in hashtable:

変数 説明

tg_trigger_name

string

Name of trigger.

tg_hook_type

string

Hook type: "signal", "command", etc.

Signal

"signal" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

tg_signal

string

シグナル名

tg_signal_data

string

シグナルと一緒に送信されたデータ

シグナルが IRC メッセージを含む場合、メッセージは解析され以下のデータがハッシュテーブルに追加されます:

変数 説明

irc_server

pointer

IRC サーバへのポインタ (${irc_server.name} のように使うことで、"irc_server" 型の hdata に含まれる変数を使うことが可能です)

irc_channel

pointer

IRC チャンネルへのポインタ (${irc_channel.name} のように使うことで、"irc_channel" 型の hdata に含まれる変数を使うことが可能です)

server

string

サーバの名前 (例: "libera")

tags

string

メッセージ内のタグ (使われることはまれです)

message_without_tags

string

タグを含まないメッセージ

nick

string

ニックネーム

host

string

ホスト名

command

string

IRC コマンド (例: "PRIVMSG"、"NOTICE"、…​)

channel

string

IRC チャンネル

arguments

string

コマンドの引数 (channel の値を含みます)

text

string

テキスト (例えばユーザメッセージ)

pos_command

string

メッセージ内における command のインデックス (command が見つからない場合 "-1")

pos_arguments

string

メッセージ内における arguments のインデックス (arguments が見つからない場合 "-1")

pos_channel

string

メッセージ内における channel のインデックス (channel が見つからない場合 "-1")

pos_text

string

メッセージ内における text のインデックス (text が見つからない場合 "-1")

データがポインタの場合、hdata の属性を読むために変数 tg_signal_data を以下のようにして使うことが可能です (以下の例では、バッファのポインタとして使っています):

${buffer[${tg_signal_data}].full_name}

Hsignal

"hsignal" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

tg_signal

string

シグナル名

ハッシュテーブルには受け取ったハッシュテーブルに含まれる全てのキーおよび値 (型: string/string) が含まれています。

Modifier

"modifier" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

tg_modifier

string

修飾子の名前

tg_modifier_data

string

修飾子と一緒に送信されたデータ

tg_string

string

修正可能な文字列

tg_string_nocolor

string

色コードを含まない文字列

weechat_print 修飾子では、メッセージタグを使う変数 (下の Print を参照) と以下の変数が追加されます:

変数 説明

buffer

pointer

メッセージが表示されたバッファ

tg_plugin

string

メッセージが表示されたバッファのプラグイン

tg_buffer

string

メッセージが表示されたバッファの完全な名前

tg_prefix

string

表示されたメッセージのプレフィックス

tg_prefix_nocolor

string

色コードを削除したプレフィックス

tg_message

string

表示されたメッセージ

tg_message_nocolor

string

色コードを削除したメッセージ

修飾子が IRC メッセージを含む場合、メッセージは解析され追加のデータがハッシュテーブルに追加されます (Signal を参照)。

Line

"line" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

buffer

pointer

バッファ

buffer_name

string

バッファ名

buffer_type

string

バッファ型 ("formatted" または "free")

y

string

自由内容バッファの行番号 (≥ 0)、-1 はフォーマット済みバッファ用

date

string

行の日付 (タイムスタンプ)

date_usec

string

Microseconds of line date.

date_printed

string

行が表示される日付 (タイムスタンプ).

date_usec_printed

string

Microseconds of date when line was displayed.

str_time

string

表示に使う日付、色コードを含めることも可能

tags

string

メッセージのタグ (文字列の最初と最後にコンマが追加されます)

displayed

string

"1" の場合は表示、"0" の場合は非表示

notify_level

string

"-1" = no notify, "0" = 低レベル、"1" = メッセージ、"2" = プライベートメッセージ、"3" = ハイライト

highlight

string

"1" の場合はハイライトあり、"0" の場合はハイライトなし

prefix

string

プレフィックス

tg_prefix_nocolor

string

色コードを含まないプレフィックス

message

string

メッセージ

tg_message_nocolor

string

色コードを含まないメッセージ

メッセージにつけられたタグに関する変数:

変数 説明

tg_tags_count

string

メッセージのタグの個数

tg_tag_nick

string

ニックネーム ("nick_xxx" タグから)

tg_tag_prefix_nick

string

プレフィックスで使うニックネームの色 ("prefix_nick_ccc" タグから)

tg_tag_host

string

ユーザ名とホスト名、書式: username@host ("host_xxx" タグから)

tg_tag_notify

string

通知レベル (nonemessageprivatehighlight)

tg_tag_irc_xxx

string

IRC message tag (key "xxx"). (1)

tg_notify

string

通知レベルが none 以外の場合、その通知レベル

tg_msg_pv

string

プライベートメッセージの場合 "1"、それ以外は "0"

Note
(1) Commas are replaced by semicolons in IRC tag (key and value).

Print

"print" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

buffer

pointer

メッセージが表示されたバッファ

tg_date

string

メッセージの日付と時間 (書式: %FT%T.%f, see WeeChat plugin API reference / util_strftimeval ).

tg_displayed

string

表示された場合 "1"、フィルタされた場合 "0"

tg_highlight

string

ハイライトされた場合 "1"、それ以外は "0"

tg_prefix

string

プレフィックス

tg_prefix_nocolor

string

色コードを削除したプレフィックス

tg_message

string

メッセージ

tg_message_nocolor

string

色コードを削除したメッセージ

メッセージにつけられたタグに関する変数:

変数 説明

tg_tags

string

メッセージのタグ (文字列の最初と最後にコンマが追加されます)

tg_tags_count

string

メッセージのタグの個数

tg_tag_nick

string

ニックネーム ("nick_xxx" タグから)

tg_tag_prefix_nick

string

プレフィックスで使うニックネームの色 ("prefix_nick_ccc" タグから)

tg_tag_host

string

ユーザ名とホスト名、書式: username@host ("host_xxx" タグから)

tg_tag_notify

string

通知レベル (nonemessageprivatehighlight)

tg_tag_irc_xxx

string

IRC message tag (key "xxx"). (1)

tg_notify

string

通知レベルが none 以外の場合、その通知レベル

tg_msg_pv

string

プライベートメッセージの場合 "1"、それ以外は "0"

Note
(1) Commas are replaced by semicolons in IRC tag (key and value).

Command

"command" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

buffer

pointer

バッファ

tg_argc

string

The number of arguments (the command itself counts for one).

tg_argvN

string

N 番目の引数 (tg_argv0 is the command itself, the others are command arguments).

tg_argv_eolN

string

N 番目の引数から最後の引数まで (tg_argv_eol0 includes the command itself).

tg_shell_argc

string

The number of arguments with a split like the shell does (the command itself counts for one).

tg_shell_argvN

string

Argument #N with a split like the shell does (tg_shell_argv0 is the command itself, the others are command arguments).

Command_run

"command_run" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

buffer

pointer

バッファ

tg_command

string

実行されたコマンド

Timer

"timer" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

tg_remaining_calls

string

残り呼び出し回数

tg_date

string

現在の日付および時間 (書式: %FT%T.%f, see WeeChat plugin API reference / util_strftimeval ).

Config

"config" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

tg_option

string

オプション

tg_value

string

Focus

"focus" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

window

pointer

ウィンドウ

buffer

pointer

バッファ

ハッシュテーブルには受け取ったハッシュテーブルに含まれる全てのキーおよび値 (型: string/string) が含まれています。

Info

"info" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

tg_info_name

string

インフォ名

tg_arguments

string

引数

tg_info

string

空文字列 (インフォの返却先)

Info_hashtable

"info_hashtable" コールバックは以下の変数をハッシュテーブルに格納します:

変数 説明

tg_info_name

string

インフォ名

ハッシュテーブルには受け取ったハッシュテーブルに含まれる全てのキーおよび値 (型: string/string) が含まれています。

URL の色

URL を緑色にする:

/trigger add url_color modifier weechat_print "${tg_notify}" "==[a-zA-Z0-9_]+://[^ ]+==${color:green}${re:0}${color:reset}=="
Note
ここで使われている URL を検出するための単純な正規表現はすべての URL をうまく検出するものではありませんが、複雑な正規表現を使うよりも高速です。

ping クエリに対する自動応答

誰かがプライベートバッファで "ping" を送信した場合、このトリガは pong で自動的に応答します:

/trigger add pong print "" "${type} == private && ${tg_message} == ping" "" "pong"

レスポンシブレイアウト

以下のトリガは端末のサイズが変更されたときに表示されている内容をカスタマイズするものです:

/trigger add resize_small signal signal_sigwinch "${info:term_width} < 100" "" "/bar hide nicklist"
/trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"

WeeChat は SIGWINCH を受けとたった際 (端末のサイズが変更された際) に "signal_sigwinch" シグナルを送信し、このトリガはこのシグナルをキャッチします。

${info:term_width} を使った条件で端末の横幅を確認します (必要であれば ${info:term_height} を使うことも可能です)。

この例では、端末が小さくなった場合、ニックネームリストを隠します。さらに横幅が 100 文字幅以上になった場合、ニックネームリストを表示します。

設定の自動保存

例えば 1 時間ごとに、設定ファイル (*.conf) を自動的に保存することが可能です:

/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"

timer フックに対する引数は:

  • 3600000: 3600 * 1000 ミリ秒、コールバックは毎時間呼び出される

  • 0: 秒の調整 (この場合調整しない)

  • 0: 呼び出し回数の最大値 (0 = タイマーを無限に繰り返す)

コマンド /mute /save は無言で設定ファイルを保存します (core バッファに対して何も表示しません)。

オプション

trigger.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set trigger.look.*

外観

color

/set trigger.color.*

trigger

/trigger add
/trigger set
/set trigger.trigger.*

トリガオプション

オプション:

Extending WeeChat

WeeChat has a modular design and can be extended with plugins and scripts.

プラグインスクリプト の違いを明らかにすることは重要です: プラグイン とは /plugin コマンドで読み込まれるコンパイル済みバイナリファイルです。これに対して、 スクリプト とは /python 等のコマンドで python 等のプラグインとともに読み込まれるテキストファイルです。

プラグイン

プラグインとは動的ライブラリのことで、C 言語で書かれてコンパイルされています。プラグインは WeeChat によって読み込まれます。GNU/Linux の場合、プラグインファイルは ".so" という拡張子を持ち、Windows の場合、".dll" です。

見つかったプラグインは WeeChat の起動時に自動的に読み込まれます。WeeChat の起動時にプラグインを読み込むか否かは選択可能です。

/plugin コマンドを使うことで、プラグインのロード/アンロード、ロード済みプラグインの表示を行うことができます。

When a plugin is unloaded, WeeChat removes:

  • buffers

  • configuration options (options are written in files)

  • all hooks: commands, modifiers, process, etc.

  • infos and infolists

  • hdata

  • bar items.

プラグインをロード、アンロード、ロード済みプラグインを表示する例:

/plugin load irc
/plugin unload irc
/plugin list

デフォルトプラグインのリスト:

プラグイン 説明

alias

コマンドの別名を定義

buflist

バッファリストを表示するためのバー要素

charset

バッファの文字コードに従ってデコード/エンコード

exec

WeeChat 内部から外部コマンドを実行

fifo

外部から WeeChat にコマンドを送信するための FIFO パイプ

fset

WeeChat とプラグインのオプションを高速設定

irc

IRC チャットプロトコル

logger

バッファの内容をファイルに保存

relay

ネットワーク経由でデータを中継

script

スクリプトマネージャ

python

Python スクリプト API

perl

Perl スクリプト API

ruby

Ruby スクリプト API

lua

Lua スクリプト API

tcl

Tcl スクリプト API

guile

Guile (scheme) スクリプト API

javascript

JavaScript スクリプト API

php

PHP スクリプト API

spell

コマンドラインのスペルチェック

trigger

WeeChat およびプラグインが発生させたイベントに対するテキスト置換とコマンド実行

typing

Display users currently writing messages.

xfer

ファイル転送とダイレクトチャット

API を使ったプラグインやスクリプトの開発についてより詳しく学ぶには WeeChat プラグイン API リファレンス または WeeChat スクリプト作成ガイド を参照してください。

スクリプト

WeeChat は 8 種類のスクリプトプラグインを備えています: Python、Perl、Ruby、Lua、Tcl、Guile (scheme)、JavaScript、PHP。これらのプラグインでそれぞれの言語で書かれたスクリプトのロード、実行、アンロードができます。

スクリプトの書き方やスクリプト用の WeeChat API についての詳しい情報は WeeChat スクリプト作成ガイド を参照してください。

Script manager

The script manager (command /script) is used to load/unload scripts of any language, and install/remove scripts of WeeChat scripts repository, which are visible on this page .

For privacy considerations, the download of scripts is disabled by default.
To enable it, type this command:

/set script.scripts.download_enabled on

Then you can download the list of scripts and display them in a new buffer with the /script command:

┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│1.weechat│368/368 scripts (filter: *) | Sort: i,p,n | Alt+key/input: i=install, r=remove, l=load, L=reload, u=│
│2.scripts│*      autosort.py                 3.9     2020-10-11 | Automatically keep buffers grouped by server│
│         │*      multiline.pl                0.6.3   2016-01-02 | Multi-line edit box, also supports editing o│
│         │*      highmon.pl                  2.7     2020-06-21 | Adds a highlight monitor buffer.            │
│         │*ia r  grep.py               0.8.5 0.8.5   2021-05-11 | Search regular expression in buffers or log │
│         │*      autojoin.py                 0.3.1   2019-10-06 | Configure autojoin for all servers according│
│         │*      colorize_nicks.py           28      2021-03-06 | Use the weechat nick colors in the chat area│
│         │*ia r  go.py                 2.7   2.7     2021-05-26 | Quick jump to buffers.                      │
│         │*      text_item.py                0.9     2019-05-25 | Add bar items with plain text.              │
│         │       aesthetic.py                1.0.6   2020-10-25 | Make messages more A E S T H E T I C A L L Y│
│         │       aformat.py                  0.2     2018-06-21 | Alternate text formatting, useful for relays│
│         │       alternatetz.py              0.3     2018-11-11 | Add an alternate timezone item.             │
│         │       amarok2.pl                  0.7     2012-05-08 | Amarok 2 control and now playing script.    │
│         │       amqp_notify.rb              0.1     2011-01-12 | Send private messages and highlights to an A│
│         │       announce_url_title.py       19      2021-06-05 | Announce URL title to user or to channel.   │
│         │       anotify.py                  1.0.2   2020-05-16 | Notifications of private messages, highlight│
│         │       anti_password.py            1.2.1   2021-03-13 | Prevent a password from being accidentally s│
│         │       apply_corrections.py        1.3     2018-06-21 | Display corrected text when user sends s/typ│
│         │       arespond.py                 0.1.1   2020-10-11 | Simple autoresponder.                       │
│         │       atcomplete.pl               0.001   2016-10-29 | Tab complete nicks when prefixed with "@".  │
│         │       audacious.pl                0.3     2009-05-03 | Display which song Audacious is currently pl│
│         │       auth.rb                     0.3     2014-05-30 | Automatically authenticate with NickServ usi│
│         │       auto_away.py                0.4     2018-11-11 | A simple auto-away script.                  │
│         │       autoauth.py                 1.3     2021-11-07 | Permits to auto-authenticate when changing n│
│         │       autobump.py                 0.1.0   2019-06-14 | Bump buffers upon activity.                 │
│         │       autoconf.py                 0.4     2021-05-11 | Auto save/load changed options in a .weerc f│
│         │       autoconnect.py              0.3.3   2019-10-06 | Reopen servers and channels opened last time│
│         │[12:55] [2] [script] 2:scripts                                                                      │
│         │█                                                                                                   │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
スクリプトオプション

script.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set script.look.*

外観

color

/set script.color.*

scripts

/set script.scripts.*

スクリプトのダウンロードに関するオプション

オプション:

Scripting plugins

Python オプション

python.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set python.look.*

外観

オプション:

Perl オプション

perl.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set perl.look.*

外観

オプション:

Ruby オプション

ruby.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set ruby.look.*

外観

オプション:

Lua オプション

lua.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set lua.look.*

外観

オプション:

Tcl オプション

tcl.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set tcl.look.*

外観

オプション:

Guile オプション

guile.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set guile.look.*

外観

オプション:

PHP オプション

php.conf ファイル内のセクション:

セクション 操作コマンド 説明

look

/set php.look.*

外観

オプション:

サポート

サポートを依頼する前に、必ず WeeChat に付属するドキュメントと FAQ を読んでください。

IRC を使ったサポート窓口は irc.libera.chat サーバにあります:

  • 公式チャンネル (開発者もいます):

    • #weechat (英語)

    • #weechat-fr (フランス語)

  • 非公式チャンネル:

    • #weechat-de (ドイツ語)

    • #weechat-fi (フィンランド語)

For other ways of support, see this page .