mirror of
https://github.com/weechat/weechat.git
synced 2026-06-12 14:14:48 +02:00
Compare commits
252 Commits
v4.8.2
...
d4ed290a37
| Author | SHA1 | Date | |
|---|---|---|---|
| d4ed290a37 | |||
| a98568788b | |||
| 215fdfc0a7 | |||
| deedaed1f9 | |||
| fb220e1afd | |||
| afd7e08691 | |||
| 0fb0b3bb07 | |||
| ecec47c633 | |||
| 3f64975a72 | |||
| b970962bdb | |||
| d56e46908f | |||
| 8b19d3b0a4 | |||
| fcf439dfa0 | |||
| e4a2a6d3f2 | |||
| 7051d7e08b | |||
| 36d09a2ba6 | |||
| ee799c9032 | |||
| 797d3c0db2 | |||
| 91223591e9 | |||
| f50b91a6d9 | |||
| d2d490146c | |||
| f587a9dcaf | |||
| 54b0753aab | |||
| d189ca7f19 | |||
| 86d8bec433 | |||
| 53db79aa5f | |||
| b994a645e3 | |||
| 64f17761f1 | |||
| 3bdb31bbf6 | |||
| 7f1f9462f4 | |||
| 9fbc81dc54 | |||
| 4550c3e33a | |||
| 7e2b9ffa9a | |||
| 04f817814f | |||
| 0315c53a9e | |||
| 3aeaa70e64 | |||
| 66e633e27e | |||
| 436bbeceff | |||
| c307087e2d | |||
| 51a1149852 | |||
| d74993a42c | |||
| 51464e400f | |||
| 1c5e6c3fc2 | |||
| e563dfc903 | |||
| befbcceb7f | |||
| 56f9ad68fb | |||
| 328f86affc | |||
| f4dc30ec58 | |||
| 23291acb7b | |||
| b802681230 | |||
| 3687ce0f0f | |||
| 1211510ded | |||
| 07871f123f | |||
| a0cf82d4a6 | |||
| 13291b6b9a | |||
| 76d652a513 | |||
| ff9b698665 | |||
| d5c985eb11 | |||
| b29f464322 | |||
| 171a9a9fc4 | |||
| d7bc041098 | |||
| 43a118ac47 | |||
| e540d7a2cf | |||
| 6948aea626 | |||
| 5dbb96b66a | |||
| 4fdcbf8f93 | |||
| e4b70ad252 | |||
| d7fd2b7b0b | |||
| 73cf57742e | |||
| bf7b8484cd | |||
| 86f51b66b3 | |||
| 1400b6c197 | |||
| c71978c0b3 | |||
| 4c38ce050b | |||
| 5520ed1950 | |||
| ad35aef1f4 | |||
| 88f0070674 | |||
| 7683287f71 | |||
| 33adaef85c | |||
| 6f3c804379 | |||
| 617b4e4dee | |||
| ea1eb76b2d | |||
| ad12925d6c | |||
| a5fcf898b9 | |||
| 14d544be39 | |||
| 3e994996c6 | |||
| 3341b9a2d2 | |||
| 815640b840 | |||
| acd3d91318 | |||
| ef5f4d8ee6 | |||
| d40217d1e6 | |||
| 17b593325a | |||
| 3456e848da | |||
| 723232ac35 | |||
| 5f5f9f35e7 | |||
| 86a6c4f5ff | |||
| 3082c2e4e5 | |||
| 062109e33d | |||
| fd88c9a45b | |||
| a8c4d5604e | |||
| ef4c657157 | |||
| 0c29e5a630 | |||
| 77a0dbfd44 | |||
| afa42ec851 | |||
| 8da86431da | |||
| 3d7f988973 | |||
| 5ed21d7dad | |||
| 54eff44d74 | |||
| 83d760deae | |||
| 5147b19e51 | |||
| 50959eeb01 | |||
| ac2ed69c0b | |||
| 2f7f707df0 | |||
| 94e5de4836 | |||
| 38f9a5587f | |||
| 6432711798 | |||
| 81c23a5134 | |||
| 6336c22293 | |||
| 6658122b03 | |||
| 7e8f8b5178 | |||
| d00e334738 | |||
| f48b0bae2e | |||
| d3d18cd4c2 | |||
| cead39b52f | |||
| 7d88e53182 | |||
| 8fe741e057 | |||
| b6ef936cca | |||
| 7c2bae9faf | |||
| 2b48eba784 | |||
| 5969f9faf6 | |||
| b70b484f5f | |||
| b250d71608 | |||
| 94457f8313 | |||
| 0cd0e7be6a | |||
| 2ececc1184 | |||
| b8bef1c3e1 | |||
| d9e56c3df8 | |||
| dc28050b8b | |||
| f53e7fb9ef | |||
| d34eb40187 | |||
| 2cbbb677f3 | |||
| f7267bc992 | |||
| 147d5b3f88 | |||
| da4881959e | |||
| 5e963c7546 | |||
| 41d8e06394 | |||
| 52d1245bad | |||
| 961dc515a0 | |||
| 73ec7c0641 | |||
| c60a5fde14 | |||
| 0bbae498c9 | |||
| 4c79e870af | |||
| dc4df8b9aa | |||
| 6bc11571b5 | |||
| d1b71a8562 | |||
| 19a6591410 | |||
| 25e0809c55 | |||
| e8d0399623 | |||
| c41d73e417 | |||
| 1532efea6d | |||
| 9bf2d51493 | |||
| 27ae6ca789 | |||
| 916c59d8f0 | |||
| 37bdf6586b | |||
| 13e9381e19 | |||
| b94e4af67e | |||
| 431d9ad64a | |||
| f5bbe35cfb | |||
| b82ce33c6c | |||
| 87a683ebdb | |||
| f048ea9eac | |||
| fc0fb05ec0 | |||
| 835e0b9549 | |||
| 507f172dae | |||
| fc595afd08 | |||
| 2f5305dc82 | |||
| 9f2b9c4ea9 | |||
| aea8421e49 | |||
| 81834c45ae | |||
| 01d2887b13 | |||
| 8b30d9a7d7 | |||
| 92327871d2 | |||
| b2556f99f4 | |||
| ec6372f4df | |||
| abb74ac178 | |||
| 71329fd595 | |||
| 106fe6ca7c | |||
| 630f2e2e7c | |||
| eb0b01f62a | |||
| fb00b7055c | |||
| 58b1f5c62b | |||
| d663070b02 | |||
| 8ff7d63744 | |||
| 5eb3bca47b | |||
| d0478bdc04 | |||
| d7fc65e282 | |||
| 0d737349be | |||
| dc94251b33 | |||
| 306155aa48 | |||
| 238f8cbc7e | |||
| fa043644cb | |||
| e06b3c1d7e | |||
| 5b052532ec | |||
| 18bce9e8c4 | |||
| 886042a875 | |||
| fca4ee28e0 | |||
| 7c37eced93 | |||
| a413d16038 | |||
| 440907e1cd | |||
| cb08473bdc | |||
| 71ef7e286c | |||
| 2a234b3bfe | |||
| 6442b938eb | |||
| c8d2b4448a | |||
| 3918efd8e9 | |||
| 4decd2c386 | |||
| 323ab8810e | |||
| fc6003c74e | |||
| ae54c3ef65 | |||
| b38c00bb0d | |||
| 20a7affb70 | |||
| 150e6ecd82 | |||
| 87ef578ad2 | |||
| ef5f197a4a | |||
| 250db946b0 | |||
| f0160bf5ab | |||
| 7d51a1331b | |||
| 22b335ce86 | |||
| f26f73f283 | |||
| 323c9e2bfe | |||
| 894df0e9e6 | |||
| ead76532de | |||
| da2f506f2e | |||
| e42e811c95 | |||
| 889450fb31 | |||
| 3c11e09c30 | |||
| 616daecdd0 | |||
| 9b4fd66de7 | |||
| b42f7a400e | |||
| 9e814860ae | |||
| a2a71b4d33 | |||
| 7d6b8f6943 | |||
| 3b4a5bbb09 | |||
| 58b7ec59e9 | |||
| 518b9ab381 | |||
| a9e48d33c6 | |||
| 1ff001994c | |||
| 234a37df6f | |||
| 6bcc6ef65f | |||
| d5e6c94246 | |||
| 63b6dee311 | |||
| 34697cf5ce |
+1
-1
@@ -1,5 +1,5 @@
|
||||
# SPDX-FileCopyrightText: 2024 Emil Velikov <emil.l.velikov@gmail.com>
|
||||
# SPDX-FileCopyrightText: 2024-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2024-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2013-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2013-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2019-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2019-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2023-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2023-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2020-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2020-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2023-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2023-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2023-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2023-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
+257
-186
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2020-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2020-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -11,6 +11,14 @@ on:
|
||||
- cron: '22 9 * * 2'
|
||||
|
||||
env:
|
||||
CHECK_DEPS_UBUNTU: >-
|
||||
curl
|
||||
gettext
|
||||
hunspell
|
||||
hunspell-en-us
|
||||
hunspell-fr
|
||||
pipx
|
||||
shellcheck
|
||||
WEECHAT_DEPS_UBUNTU: >-
|
||||
asciidoctor
|
||||
build-essential
|
||||
@@ -18,7 +26,6 @@ env:
|
||||
curl
|
||||
devscripts
|
||||
equivs
|
||||
flake8
|
||||
gem2deb
|
||||
guile-3.0-dev
|
||||
lcov
|
||||
@@ -29,7 +36,7 @@ env:
|
||||
libcurl4-gnutls-dev
|
||||
libgcrypt20-dev
|
||||
libgnutls28-dev
|
||||
liblua5.3-dev
|
||||
liblua5.4-dev
|
||||
libncurses-dev
|
||||
libperl-dev
|
||||
libphp-embed
|
||||
@@ -40,14 +47,11 @@ env:
|
||||
php-dev
|
||||
pipx
|
||||
pkgconf
|
||||
pylint
|
||||
python3-bandit
|
||||
python3-dev
|
||||
ruby-pygments.rb
|
||||
shellcheck
|
||||
tcl8.6-dev
|
||||
zlib1g-dev
|
||||
WEECHAT_DEPS_ROCKYLINUX: >-
|
||||
WEECHAT_DEPS_REDHAT: >-
|
||||
asciidoctor
|
||||
aspell-devel
|
||||
cjson-devel
|
||||
@@ -98,10 +102,53 @@ env:
|
||||
sudo
|
||||
tcl86
|
||||
zstd
|
||||
WEECHAT_DEPS_MACOS: >-
|
||||
asciidoctor
|
||||
aspell
|
||||
cjson
|
||||
guile
|
||||
lua
|
||||
pkg-config
|
||||
ruby
|
||||
|
||||
jobs:
|
||||
|
||||
tests_ubuntu:
|
||||
checks:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-24.04
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get --yes --no-install-recommends install ${{ env.CHECK_DEPS_UBUNTU }}
|
||||
pipx install msgcheck ruff
|
||||
cargo install --version 0.0.11 poexam
|
||||
|
||||
- name: Check gettext files (msgcheck)
|
||||
run: msgcheck po/*.po
|
||||
|
||||
- name: Check gettext files (poexam)
|
||||
run: poexam check --file-stats --rule-stats
|
||||
|
||||
- name: Check shell and Python scripts
|
||||
run: ./tools/check_scripts.sh
|
||||
|
||||
- name: Check Python stub file
|
||||
run: ./tools/generate_python_stub.py | diff src/plugins/python/weechat.pyi -
|
||||
|
||||
- name: Check Curl symbols
|
||||
run: curl --silent --show-error --fail --retry 10 https://raw.githubusercontent.com/curl/curl/master/docs/libcurl/symbols-in-versions | ./tools/check_curl_symbols.py
|
||||
|
||||
install:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
@@ -116,6 +163,10 @@ jobs:
|
||||
cc: "gcc"
|
||||
cxx: "g++"
|
||||
buildargs: "-G Ninja -DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
||||
- name: "gcc_release_hardened"
|
||||
cc: "gcc"
|
||||
cxx: "g++"
|
||||
buildargs: "-DENABLE_TESTS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=\"-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3\" -DCMAKE_CXX_FLAGS=\"-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3\""
|
||||
- name: "gcc_no_nls"
|
||||
cc: "gcc"
|
||||
cxx: "g++"
|
||||
@@ -141,12 +192,12 @@ jobs:
|
||||
cxx: "clang++"
|
||||
buildargs: "-DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
||||
|
||||
name: "${{ matrix.os }} (${{ matrix.config.name }})"
|
||||
name: "install (${{ matrix.os }}, ${{ matrix.config.name }})"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
@@ -154,19 +205,7 @@ jobs:
|
||||
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
|
||||
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
|
||||
sudo apt-get --yes purge php8.3-imagick
|
||||
pipx install msgcheck schemathesis
|
||||
|
||||
- name: Check gettext files
|
||||
run: msgcheck po/*.po
|
||||
|
||||
- name: Check shell and Python scripts
|
||||
run: ./tools/check_scripts.sh
|
||||
|
||||
- name: Check Python stub file
|
||||
run: ./tools/generate_python_stub.py | diff src/plugins/python/weechat.pyi -
|
||||
|
||||
- name: Check Curl symbols
|
||||
run: curl --silent --show-error --fail --retry 10 https://raw.githubusercontent.com/curl/curl/master/docs/libcurl/symbols-in-versions | ./tools/check_curl_symbols.py
|
||||
pipx install schemathesis
|
||||
|
||||
- name: Build and run tests
|
||||
env:
|
||||
@@ -214,6 +253,198 @@ jobs:
|
||||
lcov --list coverage.info
|
||||
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error'
|
||||
|
||||
install_fedora:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-24.04
|
||||
config:
|
||||
- name: "gcc"
|
||||
cc: "gcc"
|
||||
cxx: "g++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
||||
- name: "clang"
|
||||
cc: "clang"
|
||||
cxx: "clang++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
||||
|
||||
name: "install (fedora:43, ${{ matrix.config.name }})"
|
||||
runs-on: ${{ matrix.os }}
|
||||
container:
|
||||
image: fedora:43
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Install dependencies
|
||||
run: dnf install -y ${{ env.WEECHAT_DEPS_REDHAT }}
|
||||
|
||||
- name: Build and run tests
|
||||
env:
|
||||
CC: ${{ matrix.config.cc }}
|
||||
CXX: ${{ matrix.config.cxx }}
|
||||
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
|
||||
|
||||
- name: Run WeeChat
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
run: |
|
||||
weechat --help
|
||||
weechat-curses --help
|
||||
weechat --version
|
||||
weechat --build-info
|
||||
weechat --colors
|
||||
weechat --license
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
install_rockylinux:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-24.04
|
||||
config:
|
||||
- name: "gcc"
|
||||
cc: "gcc"
|
||||
cxx: "g++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
||||
- name: "clang"
|
||||
cc: "clang"
|
||||
cxx: "clang++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
||||
|
||||
name: "install (rockylinux:9, ${{ matrix.config.name }})"
|
||||
runs-on: ${{ matrix.os }}
|
||||
container:
|
||||
image: rockylinux:9
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
dnf install -y epel-release dnf-plugins-core
|
||||
dnf config-manager --set-enabled crb
|
||||
# pin a working ruby stream (ruby:4.0 has broken module metadata on Rocky 9.8)
|
||||
dnf module enable -y ruby:3.3
|
||||
dnf install -y ${{ env.WEECHAT_DEPS_REDHAT }}
|
||||
|
||||
- name: Build and run tests
|
||||
env:
|
||||
CC: ${{ matrix.config.cc }}
|
||||
CXX: ${{ matrix.config.cxx }}
|
||||
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
|
||||
|
||||
- name: Run WeeChat
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
run: |
|
||||
weechat --help
|
||||
weechat-curses --help
|
||||
weechat --version
|
||||
weechat --build-info
|
||||
weechat --colors
|
||||
weechat --license
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
install_freebsd:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-24.04
|
||||
config:
|
||||
# - name: "gcc"
|
||||
# cc: "gcc"
|
||||
# cxx: "g++"
|
||||
# buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
||||
- name: "clang"
|
||||
cc: "clang"
|
||||
cxx: "clang++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
||||
|
||||
name: "install (freebsd, ${{ matrix.config.name }})"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Install dependencies, build and run tests, run WeeChat
|
||||
uses: vmactions/freebsd-vm@v1
|
||||
env:
|
||||
CC: ${{ matrix.config.cc }}
|
||||
CXX: ${{ matrix.config.cxx }}
|
||||
TERM: xterm-256color
|
||||
with:
|
||||
envs: "CC CXX TERM"
|
||||
usesh: true
|
||||
prepare: pkg install -y ${{ env.WEECHAT_DEPS_FREEBSD }}
|
||||
run: |
|
||||
./tools/build_test.sh ${{ matrix.config.buildargs }}
|
||||
weechat --help
|
||||
weechat-curses --help
|
||||
weechat --version
|
||||
weechat --build-info
|
||||
weechat --colors
|
||||
weechat --license
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
install_macos:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- macos-14
|
||||
config:
|
||||
- name: "gcc"
|
||||
cc: "gcc"
|
||||
cxx: "g++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
|
||||
- name: "clang"
|
||||
cc: "clang"
|
||||
cxx: "clang++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
|
||||
|
||||
name: "install (${{ matrix.os }}, ${{ matrix.config.name }})"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
||||
- name: Setup Homebrew
|
||||
id: setup-homebrew
|
||||
uses: Homebrew/actions/setup-homebrew@main
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew update
|
||||
brew install ${{ env.WEECHAT_DEPS_MACOS }}
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
CC: ${{ matrix.config.cc }}
|
||||
CXX: ${{ matrix.config.cxx }}
|
||||
RUN_TESTS: "0"
|
||||
JOBS: "2"
|
||||
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
|
||||
|
||||
- name: Run WeeChat
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
run: |
|
||||
weechat --help
|
||||
weechat-curses --help
|
||||
weechat --version
|
||||
weechat --build-info
|
||||
weechat --colors
|
||||
weechat --license
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
build_debian:
|
||||
|
||||
strategy:
|
||||
@@ -221,12 +452,11 @@ jobs:
|
||||
os:
|
||||
- ubuntu-24.04
|
||||
|
||||
name: "${{ matrix.os }} (build Debian)"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
@@ -252,14 +482,13 @@ jobs:
|
||||
weechat --build-info
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
codeql-analysis:
|
||||
codeql_analysis:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-24.04
|
||||
|
||||
name: "${{ matrix.os }} (CodeQL)"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
permissions:
|
||||
@@ -270,7 +499,7 @@ jobs:
|
||||
steps:
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
@@ -278,7 +507,6 @@ jobs:
|
||||
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
|
||||
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
|
||||
sudo apt-get --yes purge php8.3-imagick
|
||||
pipx install msgcheck
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
@@ -292,160 +520,3 @@ jobs:
|
||||
uses: github/codeql-action/analyze@v3
|
||||
with:
|
||||
category: "/language:cpp"
|
||||
|
||||
tests_rockylinux:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-24.04
|
||||
config:
|
||||
- name: "gcc"
|
||||
cc: "gcc"
|
||||
cxx: "g++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
||||
- name: "clang"
|
||||
cc: "clang"
|
||||
cxx: "clang++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
||||
|
||||
name: "rockylinux-9 (${{ matrix.config.name }})"
|
||||
runs-on: ${{ matrix.os }}
|
||||
container:
|
||||
image: rockylinux:9
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
dnf install -y epel-release
|
||||
dnf config-manager --set-enabled crb
|
||||
dnf install -y ${{ env.WEECHAT_DEPS_ROCKYLINUX }}
|
||||
|
||||
- name: Build and run tests
|
||||
env:
|
||||
CC: ${{ matrix.config.cc }}
|
||||
CXX: ${{ matrix.config.cxx }}
|
||||
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
|
||||
|
||||
- name: Run WeeChat
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
run: |
|
||||
weechat --help
|
||||
weechat-curses --help
|
||||
weechat --version
|
||||
weechat --build-info
|
||||
weechat --colors
|
||||
weechat --license
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
tests_freebsd:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-24.04
|
||||
config:
|
||||
# - name: "gcc"
|
||||
# cc: "gcc"
|
||||
# cxx: "g++"
|
||||
# buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
||||
- name: "clang"
|
||||
cc: "clang"
|
||||
cxx: "clang++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
||||
|
||||
name: "freebsd-14 (${{ matrix.config.name }})"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies, build and run tests, run WeeChat
|
||||
uses: vmactions/freebsd-vm@v1
|
||||
env:
|
||||
CC: ${{ matrix.config.cc }}
|
||||
CXX: ${{ matrix.config.cxx }}
|
||||
TERM: xterm-256color
|
||||
with:
|
||||
envs: "CC CXX TERM"
|
||||
usesh: true
|
||||
prepare: pkg install -y ${{ env.WEECHAT_DEPS_FREEBSD }}
|
||||
run: |
|
||||
./tools/build_test.sh ${{ matrix.config.buildargs }}
|
||||
weechat --help
|
||||
weechat-curses --help
|
||||
weechat --version
|
||||
weechat --build-info
|
||||
weechat --colors
|
||||
weechat --license
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
tests_macos:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- macos-14
|
||||
config:
|
||||
- name: "gcc"
|
||||
cc: "gcc"
|
||||
cxx: "g++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
|
||||
- name: "clang"
|
||||
cc: "clang"
|
||||
cxx: "clang++"
|
||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
|
||||
|
||||
name: "${{ matrix.os }} (${{ matrix.config.name }})"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
||||
- name: Setup Homebrew
|
||||
id: setup-homebrew
|
||||
uses: Homebrew/actions/setup-homebrew@master
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew update
|
||||
# temporary fix, see: https://github.com/actions/setup-python/issues/577
|
||||
rm -f \
|
||||
/usr/local/bin/2to3 \
|
||||
/usr/local/bin/idle3 \
|
||||
/usr/local/bin/pydoc3 \
|
||||
/usr/local/bin/python3 \
|
||||
/usr/local/bin/python3-config \
|
||||
/usr/local/bin/2to3-3.11 \
|
||||
/usr/local/bin/idle3.11 \
|
||||
/usr/local/bin/pydoc3.11 \
|
||||
/usr/local/bin/python3.11 \
|
||||
/usr/local/bin/python3.11-config \
|
||||
;
|
||||
brew install asciidoctor aspell cjson guile lua pkg-config ruby
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
CC: ${{ matrix.config.cc }}
|
||||
CXX: ${{ matrix.config.cxx }}
|
||||
RUN_TESTS: "0"
|
||||
JOBS: "2"
|
||||
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
|
||||
|
||||
- name: Run WeeChat
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
run: |
|
||||
weechat --help
|
||||
weechat-curses --help
|
||||
weechat --version
|
||||
weechat --build-info
|
||||
weechat --colors
|
||||
weechat --license
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2025-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -16,7 +16,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: REUSE Compliance Check
|
||||
uses: fsfe/reuse-action@v4
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2007-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2007-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2014-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
+281
@@ -0,0 +1,281 @@
|
||||
Atheme
|
||||
Autojoin
|
||||
Charset
|
||||
Diffie-Hellman
|
||||
Esc
|
||||
FlashCode
|
||||
GnuTLS
|
||||
Hashtable
|
||||
Helleu
|
||||
IPs
|
||||
Sébastien
|
||||
WeeChat
|
||||
Xfer
|
||||
abc
|
||||
ack
|
||||
acks
|
||||
addcompletion
|
||||
addinput
|
||||
addoff
|
||||
addraw
|
||||
addreplace
|
||||
addreplacecompletion
|
||||
addword
|
||||
algo
|
||||
allchan
|
||||
allpv
|
||||
alnum
|
||||
andrew
|
||||
ansi
|
||||
api
|
||||
args
|
||||
argsN
|
||||
aspell
|
||||
autoconnect
|
||||
autojoin
|
||||
autoload
|
||||
autoloaded
|
||||
autoreconnect
|
||||
autorejoin
|
||||
bg
|
||||
bindctxt
|
||||
bitlbee
|
||||
bkl
|
||||
blocksize
|
||||
bool
|
||||
buflist
|
||||
cJSON
|
||||
calc
|
||||
ccc
|
||||
charset
|
||||
charsets
|
||||
chghost
|
||||
chmod
|
||||
cleartext
|
||||
clientinfo
|
||||
cmd
|
||||
codepoint
|
||||
concat
|
||||
cond
|
||||
config
|
||||
crypted
|
||||
ctcp
|
||||
ctrl
|
||||
ctrl-
|
||||
ctrl-c
|
||||
ctrl-h
|
||||
ctrl-n
|
||||
ctrl-x
|
||||
ctrl-y
|
||||
cutscr
|
||||
cxx
|
||||
darkgray
|
||||
deinit
|
||||
deldict
|
||||
deloutq
|
||||
delvar
|
||||
dhkey
|
||||
dirs
|
||||
dlclose
|
||||
eg
|
||||
enum
|
||||
enums
|
||||
env
|
||||
esc
|
||||
eval
|
||||
fd
|
||||
ffff
|
||||
fg
|
||||
fifo
|
||||
flashcode
|
||||
flashtux
|
||||
freebsd
|
||||
fset
|
||||
fsync
|
||||
gcrypt
|
||||
getrlimit
|
||||
getrusage
|
||||
gnutls
|
||||
grayscale
|
||||
gui
|
||||
gzip
|
||||
halfop
|
||||
halfops
|
||||
hashtable
|
||||
hdata
|
||||
hh
|
||||
horiz
|
||||
hostname
|
||||
hostnames
|
||||
hotlist
|
||||
hsignal
|
||||
http
|
||||
https
|
||||
hup
|
||||
ident
|
||||
ie
|
||||
il
|
||||
inclose
|
||||
infolist
|
||||
infolists
|
||||
infos
|
||||
installremove
|
||||
irc
|
||||
ison
|
||||
javascript
|
||||
json
|
||||
kf
|
||||
kickban
|
||||
killall
|
||||
lengthscr
|
||||
libera
|
||||
libgcrypt
|
||||
libs
|
||||
lightblue
|
||||
lightcyan
|
||||
lightgreen
|
||||
lightmagenta
|
||||
lightred
|
||||
linux
|
||||
listdefault
|
||||
listdict
|
||||
listdiff
|
||||
listfull
|
||||
listitems
|
||||
listrelay
|
||||
listvar
|
||||
lua
|
||||
mallinfo
|
||||
malloc
|
||||
mirc
|
||||
modelist
|
||||
msg
|
||||
msgN
|
||||
msgbuffer
|
||||
multiline
|
||||
ncurses
|
||||
newbuffer
|
||||
nf
|
||||
nickbot
|
||||
nicklist
|
||||
nickserv
|
||||
nl
|
||||
noautoload
|
||||
nobg
|
||||
nocl
|
||||
noflush
|
||||
nohelp
|
||||
nojoin
|
||||
noln
|
||||
nonblock
|
||||
nooption
|
||||
norc
|
||||
nostdin
|
||||
nosw
|
||||
noswitch
|
||||
notls
|
||||
num
|
||||
oc
|
||||
oerr
|
||||
oftc
|
||||
ok
|
||||
ol
|
||||
osinfo
|
||||
outqueue
|
||||
ovh
|
||||
paramN
|
||||
params
|
||||
perl
|
||||
permessage-deflate
|
||||
pgdn
|
||||
pgup
|
||||
pid
|
||||
prev
|
||||
privmsg
|
||||
ptr
|
||||
pv
|
||||
py
|
||||
quickstart
|
||||
rc
|
||||
realname
|
||||
recv
|
||||
reinitializing
|
||||
reop
|
||||
resetall
|
||||
resetctxt
|
||||
revindex
|
||||
revscr
|
||||
rgb
|
||||
rlimit
|
||||
rusage
|
||||
rw-rw-r--
|
||||
sasl
|
||||
setauto
|
||||
setdict
|
||||
setname
|
||||
setnew
|
||||
setrlimit
|
||||
setvar
|
||||
signon
|
||||
skipempty
|
||||
sockaddr
|
||||
splith
|
||||
splitv
|
||||
stderr
|
||||
stdin
|
||||
stdout
|
||||
strcasecmp
|
||||
strftime
|
||||
strftimeval
|
||||
strlen
|
||||
sublist
|
||||
subplugin
|
||||
sw
|
||||
sys
|
||||
tThe
|
||||
tcl
|
||||
tg
|
||||
tls
|
||||
tlscertkey
|
||||
toggleautoload
|
||||
togglecmd
|
||||
toto
|
||||
totp
|
||||
truncature
|
||||
un
|
||||
unalias
|
||||
unban
|
||||
unbindctxt
|
||||
undef
|
||||
unescaped
|
||||
unhide
|
||||
unhold
|
||||
unicode
|
||||
unix
|
||||
unmark
|
||||
unmerge
|
||||
unzoom
|
||||
uptime
|
||||
url
|
||||
urlserver
|
||||
usec
|
||||
userhost-in-names
|
||||
usr
|
||||
util
|
||||
valgrind
|
||||
versiongit
|
||||
waitpid
|
||||
wcswidth
|
||||
wctype
|
||||
wcwidth
|
||||
websocket
|
||||
websockets
|
||||
weechat
|
||||
whois
|
||||
www
|
||||
xdigit
|
||||
xfer
|
||||
xyz
|
||||
yy
|
||||
zlib
|
||||
zstd
|
||||
+612
@@ -0,0 +1,612 @@
|
||||
Atheme
|
||||
Autojoin
|
||||
Curl
|
||||
Curses
|
||||
Debug
|
||||
Dec
|
||||
Diffie-Hellman
|
||||
Filter
|
||||
FlashCode
|
||||
GnuTLS
|
||||
Guile
|
||||
Helleu
|
||||
IPs
|
||||
Lag
|
||||
Ping
|
||||
Protocol
|
||||
Relay
|
||||
Remote
|
||||
Reop
|
||||
Tab
|
||||
Trigger
|
||||
Triggers
|
||||
Typing
|
||||
URLs
|
||||
Wallops
|
||||
WeeChat
|
||||
Xfer
|
||||
account
|
||||
account-
|
||||
account-notify
|
||||
account-tag
|
||||
ack
|
||||
acks
|
||||
add
|
||||
addcompletion
|
||||
addinput
|
||||
addoff
|
||||
addraw
|
||||
addreplace
|
||||
addreplacecompletion
|
||||
addresse
|
||||
addword
|
||||
align
|
||||
all
|
||||
allchan
|
||||
allow
|
||||
allowed
|
||||
allpv
|
||||
alnum
|
||||
alt
|
||||
alt-c
|
||||
alt-k
|
||||
alt-s
|
||||
alt-v
|
||||
alt-z
|
||||
andrew
|
||||
ansi
|
||||
apply
|
||||
area
|
||||
args
|
||||
argsN
|
||||
aspell
|
||||
attributes
|
||||
auth
|
||||
autoconnect
|
||||
autojoin
|
||||
autoload
|
||||
autorejoin
|
||||
away
|
||||
away-notify
|
||||
backspace
|
||||
bare
|
||||
bash
|
||||
beep
|
||||
before
|
||||
beginning
|
||||
beyond
|
||||
bg
|
||||
bin
|
||||
bind
|
||||
bindctxt
|
||||
bitlbee
|
||||
bkl
|
||||
blue
|
||||
bold
|
||||
bool
|
||||
boolean
|
||||
both
|
||||
bottom
|
||||
bracketed
|
||||
brown
|
||||
buflist
|
||||
cJSON
|
||||
calc
|
||||
callbacks
|
||||
cap-notify
|
||||
capabilities
|
||||
capability
|
||||
ccc
|
||||
cert
|
||||
certs
|
||||
changed
|
||||
channel
|
||||
charset
|
||||
charsets
|
||||
check
|
||||
chghost
|
||||
chmod
|
||||
cipher
|
||||
clear
|
||||
clientinfo
|
||||
clipboard
|
||||
cmd
|
||||
color
|
||||
colors
|
||||
command
|
||||
commands
|
||||
complete
|
||||
completion
|
||||
concat
|
||||
cond
|
||||
confirm
|
||||
connect
|
||||
connected
|
||||
connecting
|
||||
control
|
||||
copy
|
||||
core
|
||||
count
|
||||
crypt
|
||||
ctcp
|
||||
ctrl
|
||||
ctrl-
|
||||
ctrl-c
|
||||
ctrl-h
|
||||
ctrl-n
|
||||
ctrl-x
|
||||
ctrl-y
|
||||
curl
|
||||
current
|
||||
cursor
|
||||
cut
|
||||
cutscr
|
||||
cxx
|
||||
d'ignore
|
||||
d'infolist
|
||||
daemon
|
||||
darkgray
|
||||
days
|
||||
debug
|
||||
decode
|
||||
decrypt
|
||||
default
|
||||
define
|
||||
deinit
|
||||
del
|
||||
deldict
|
||||
delete
|
||||
deloutq
|
||||
delvar
|
||||
desc
|
||||
describe
|
||||
dhkey
|
||||
dict
|
||||
diff
|
||||
dim
|
||||
dir
|
||||
dirs
|
||||
disable
|
||||
discard
|
||||
disconnect
|
||||
disconnected
|
||||
display
|
||||
displayed
|
||||
dlclose
|
||||
doc-gen
|
||||
down
|
||||
download
|
||||
draft
|
||||
dummy
|
||||
dump
|
||||
eat
|
||||
echo-message
|
||||
edge
|
||||
emphasized
|
||||
empty
|
||||
enable
|
||||
enabled
|
||||
end
|
||||
enum
|
||||
error
|
||||
esc
|
||||
eval
|
||||
example
|
||||
exclude
|
||||
exec
|
||||
extended-join
|
||||
external
|
||||
exts
|
||||
fail
|
||||
failed
|
||||
fast
|
||||
fd
|
||||
ffff
|
||||
fifo
|
||||
filter
|
||||
fingerprint
|
||||
first
|
||||
flashcode
|
||||
flashtux
|
||||
foo
|
||||
formatted
|
||||
free
|
||||
freebsd
|
||||
fset
|
||||
fsync
|
||||
gcrypt
|
||||
get
|
||||
getrlimit
|
||||
getrusage
|
||||
ghost
|
||||
giga-octets
|
||||
git
|
||||
glitch
|
||||
gnutls
|
||||
grab
|
||||
group
|
||||
gzip
|
||||
halfop
|
||||
halfops
|
||||
handshake
|
||||
hash
|
||||
hashtable
|
||||
hdata
|
||||
he
|
||||
headless
|
||||
help
|
||||
here
|
||||
hexa
|
||||
hh
|
||||
hidden
|
||||
hide
|
||||
highest
|
||||
highlight
|
||||
highlights
|
||||
history
|
||||
hold
|
||||
hook
|
||||
hooks
|
||||
horiz
|
||||
host
|
||||
hotlist
|
||||
hsignal
|
||||
hup
|
||||
ident
|
||||
identify
|
||||
ids
|
||||
ignored
|
||||
inclose
|
||||
include
|
||||
indent
|
||||
infolist
|
||||
infolistes
|
||||
infolists
|
||||
init
|
||||
install
|
||||
installremove
|
||||
int
|
||||
integer
|
||||
interval
|
||||
invite-notify
|
||||
irc
|
||||
ison
|
||||
iterations
|
||||
javascript
|
||||
join
|
||||
json
|
||||
jump
|
||||
keep
|
||||
key
|
||||
keys
|
||||
kf
|
||||
kickban
|
||||
kill
|
||||
killall
|
||||
l'autojoin
|
||||
l'id
|
||||
lag
|
||||
last
|
||||
layout
|
||||
leave
|
||||
left
|
||||
legacy
|
||||
length
|
||||
lengthscr
|
||||
level
|
||||
lib
|
||||
libera
|
||||
libgcrypt
|
||||
libs
|
||||
lightblue
|
||||
lightcyan
|
||||
lightgreen
|
||||
lightmagenta
|
||||
lightred
|
||||
limit
|
||||
line
|
||||
lines
|
||||
linux
|
||||
list
|
||||
listdefault
|
||||
listdict
|
||||
listdiff
|
||||
listen
|
||||
listfull
|
||||
listitems
|
||||
listrelay
|
||||
listvar
|
||||
load
|
||||
logger
|
||||
loggers
|
||||
lower
|
||||
lowest
|
||||
ls
|
||||
lua
|
||||
mallinfo
|
||||
malloc
|
||||
marked
|
||||
mask
|
||||
memory
|
||||
merge
|
||||
merged
|
||||
meta
|
||||
meta-
|
||||
method
|
||||
mirc
|
||||
missing
|
||||
modified
|
||||
mouse
|
||||
move
|
||||
msg
|
||||
msgN
|
||||
msgbuffer
|
||||
multi-prefix
|
||||
multiline
|
||||
my
|
||||
n-
|
||||
name
|
||||
names
|
||||
ncurses
|
||||
near
|
||||
network
|
||||
newbuffer
|
||||
newline
|
||||
next
|
||||
nf
|
||||
nick
|
||||
nickbot
|
||||
nicklist
|
||||
nicks
|
||||
nickserv
|
||||
no-connect
|
||||
noautoload
|
||||
nobg
|
||||
nocl
|
||||
noflush
|
||||
nohelp
|
||||
nojoin
|
||||
noln
|
||||
nonblock
|
||||
nooption
|
||||
norc
|
||||
nosh
|
||||
nostdin
|
||||
nosw
|
||||
noswitch
|
||||
notify
|
||||
notls
|
||||
null
|
||||
num
|
||||
number
|
||||
numeric
|
||||
object
|
||||
oerr
|
||||
of
|
||||
offline
|
||||
oftc
|
||||
ok
|
||||
ol
|
||||
ops
|
||||
osinfo
|
||||
ovh
|
||||
paramN
|
||||
params
|
||||
parted
|
||||
pass
|
||||
passphrase
|
||||
password
|
||||
password-store
|
||||
paste
|
||||
path
|
||||
paused
|
||||
pct
|
||||
pending
|
||||
perl
|
||||
permessage-deflate
|
||||
pgdn
|
||||
pgup
|
||||
pid
|
||||
ping
|
||||
pong
|
||||
pos
|
||||
prefix
|
||||
prev
|
||||
previous
|
||||
print
|
||||
priority
|
||||
private
|
||||
privmsg
|
||||
property
|
||||
ptr
|
||||
py
|
||||
quit
|
||||
quoted
|
||||
rafraichie
|
||||
rafraichir
|
||||
rafraichissement
|
||||
random
|
||||
raw
|
||||
rc
|
||||
realname
|
||||
reconnect
|
||||
recreate
|
||||
recv
|
||||
red
|
||||
redirected
|
||||
redo
|
||||
refresh
|
||||
regex
|
||||
register
|
||||
relay
|
||||
reload
|
||||
remote
|
||||
remove
|
||||
rename
|
||||
renumber
|
||||
reorder
|
||||
rep
|
||||
repeat
|
||||
reply
|
||||
req
|
||||
reset
|
||||
resetall
|
||||
resetctxt
|
||||
resize
|
||||
restart
|
||||
restore
|
||||
return
|
||||
rev
|
||||
revindex
|
||||
revscr
|
||||
rgb
|
||||
right
|
||||
rlimit
|
||||
root
|
||||
ruby
|
||||
run
|
||||
run-command
|
||||
runtime
|
||||
rusage
|
||||
rw-rw-r--
|
||||
réinit
|
||||
safe
|
||||
sasl
|
||||
save
|
||||
scheme
|
||||
screen
|
||||
scroll
|
||||
search
|
||||
secure
|
||||
selected
|
||||
send
|
||||
server
|
||||
server-time
|
||||
setauto
|
||||
setdict
|
||||
setname
|
||||
setnew
|
||||
setrlimit
|
||||
setvar
|
||||
sh
|
||||
share
|
||||
shift
|
||||
shift-
|
||||
shift-Tab
|
||||
size
|
||||
skipempty
|
||||
sockaddr
|
||||
sorted
|
||||
space
|
||||
speaking
|
||||
spell
|
||||
split
|
||||
splith
|
||||
splitv
|
||||
ss
|
||||
start
|
||||
status
|
||||
stderr
|
||||
stdin
|
||||
stdout
|
||||
str
|
||||
strcasecmp
|
||||
strftime
|
||||
strftimeval
|
||||
strip
|
||||
strlen
|
||||
sucks
|
||||
suffix
|
||||
suggest
|
||||
sum
|
||||
sw
|
||||
switch
|
||||
sys
|
||||
tLe
|
||||
tab
|
||||
target
|
||||
tcl
|
||||
term
|
||||
text
|
||||
tg
|
||||
time
|
||||
timeout
|
||||
timer
|
||||
tiny
|
||||
title
|
||||
tls
|
||||
tlscertkey
|
||||
to
|
||||
toggle
|
||||
toggleautoload
|
||||
togglecmd
|
||||
topic
|
||||
totp
|
||||
trigger
|
||||
triggers
|
||||
trim
|
||||
typing
|
||||
téra-octets
|
||||
unalias
|
||||
unavailable
|
||||
unban
|
||||
unbind
|
||||
unbindctxt
|
||||
undef
|
||||
undo
|
||||
unhide
|
||||
unicode
|
||||
unix
|
||||
unload
|
||||
unmerge
|
||||
unread
|
||||
unset
|
||||
up
|
||||
update
|
||||
upper
|
||||
url
|
||||
urlserver
|
||||
usec
|
||||
userhost-in-names
|
||||
username
|
||||
users
|
||||
usr
|
||||
util
|
||||
valer
|
||||
valgrind
|
||||
verbose
|
||||
verify
|
||||
versiongit
|
||||
visited
|
||||
voice
|
||||
wait
|
||||
waiting
|
||||
waitpid
|
||||
wallops
|
||||
wcswidth
|
||||
wctype
|
||||
wcwidth
|
||||
websocket
|
||||
websockets
|
||||
weechat
|
||||
where
|
||||
white
|
||||
whitespace
|
||||
whois
|
||||
width
|
||||
window
|
||||
windows
|
||||
without
|
||||
word
|
||||
words
|
||||
xdigit
|
||||
xfer
|
||||
xxx
|
||||
xyz
|
||||
yellow
|
||||
yes
|
||||
yy
|
||||
zero
|
||||
zlib
|
||||
zstd
|
||||
Échap
|
||||
@@ -0,0 +1,24 @@
|
||||
# SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
[check]
|
||||
select = [
|
||||
"checks",
|
||||
]
|
||||
ignore = [
|
||||
"acronyms",
|
||||
"brackets",
|
||||
"double-quotes",
|
||||
"double-words",
|
||||
"functions",
|
||||
"html-tags",
|
||||
"paths",
|
||||
"unchanged",
|
||||
"urls",
|
||||
]
|
||||
path_words = "."
|
||||
langs = [
|
||||
"en_US",
|
||||
"fr",
|
||||
]
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
-->
|
||||
|
||||
+103
-7
@@ -1,21 +1,110 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
-->
|
||||
|
||||
# WeeChat ChangeLog
|
||||
|
||||
## Version 4.8.0 (2025-11-30)
|
||||
## Version 4.10.0 (under dev)
|
||||
|
||||
_If you are upgrading: please see [UPGRADING.md](UPGRADING.md)._
|
||||
### Changed
|
||||
|
||||
- core: add condition on connected relay api clients in default value of option weechat.look.hotlist_add_conditions
|
||||
- core: add `/mute` in default command for key `Alt`+`=` (toggle filters)
|
||||
- relay/api: add field "last_read_line_id" in GET /api/buffers
|
||||
|
||||
### Added
|
||||
|
||||
- core: add option weechat.completion.cycle
|
||||
- core: add hdata for hooks
|
||||
- api: add functions util_parse_int, util_parse_long and util_parse_longlong
|
||||
- buflist: add variable `${index_displayed}`
|
||||
- core: add `/theme` command with subcommands `list`, `apply`, `reset`, `save`, `rename`, `delete`, `info`, automatic backup of current themable options before apply, and built-in "light" theme
|
||||
- core: detect terminal background on first start and automatically apply the built-in "light" theme when a light terminal is detected
|
||||
- core: add `themable` flag on configuration options (auto-set for color options; explicit opt-in for string options containing `${color:...}` references via the `type|themable` syntax)
|
||||
- core: add option weechat.look.theme (informational, set by `/theme apply`)
|
||||
- core: add option weechat.look.theme_backup (boolean, default `on`)
|
||||
- api: add function `theme_register` (available to plugins and to all script languages)
|
||||
- fset: add filter `t:themable` (matches every themable option regardless of type)
|
||||
- relay: add option relay.network.unix_socket_permissions ([#2317](https://github.com/weechat/weechat/issues/2317))
|
||||
|
||||
### Fixed
|
||||
|
||||
- core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals ([#1742](https://github.com/weechat/weechat/issues/1742))
|
||||
- api: fix infinite loop in function string_replace when the search string is empty
|
||||
- irc: fix tag in message with list of names when joining a channel
|
||||
- fset: remove error displayed in core buffer when clicking with the mouse below the last option displayed
|
||||
- irc: limit size of data received from the server to prevent memory exhaustion
|
||||
- irc: fix out-of-bounds read on incoming DCC command with a quoted filename ending the message ([#2322](https://github.com/weechat/weechat/issues/2322))
|
||||
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3))
|
||||
- relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
|
||||
- relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
|
||||
- relay: fix timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
|
||||
- relay: fix out-of-bounds read in dump of data ([#2324](https://github.com/weechat/weechat/issues/2324))
|
||||
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
|
||||
- xfer: replace directory separator in remote nick by underscore in download filename to prevent writing the file outside the download directory ([#2321](https://github.com/weechat/weechat/issues/2321))
|
||||
- xfer: fix out-of-bounds read when receiving empty line in DCC chat ([#2323](https://github.com/weechat/weechat/issues/2323))
|
||||
|
||||
## Version 4.9.2 (2026-06-07)
|
||||
|
||||
### Fixed
|
||||
|
||||
- api: fix infinite loop in function string_replace when the search string is empty
|
||||
- irc: limit size of data received from the server to prevent memory exhaustion
|
||||
- irc: fix out-of-bounds read on incoming DCC command with a quoted filename ending the message ([#2322](https://github.com/weechat/weechat/issues/2322))
|
||||
- relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
|
||||
- relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
|
||||
- relay: fix out-of-bounds read in dump of data ([#2324](https://github.com/weechat/weechat/issues/2324))
|
||||
- xfer: replace directory separator in remote nick by underscore in download filename to prevent writing the file outside the download directory ([#2321](https://github.com/weechat/weechat/issues/2321))
|
||||
- xfer: fix out-of-bounds read when receiving empty line in DCC chat ([#2323](https://github.com/weechat/weechat/issues/2323))
|
||||
|
||||
## Version 4.9.1 (2026-05-31)
|
||||
|
||||
### Fixed
|
||||
|
||||
- core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals ([#1742](https://github.com/weechat/weechat/issues/1742))
|
||||
- irc: fix tag in message with list of names when joining a channel
|
||||
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3))
|
||||
- relay: fix timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
|
||||
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
|
||||
|
||||
## Version 4.9.0 (2026-03-29)
|
||||
|
||||
### Changed
|
||||
|
||||
- core: add option `-e` to evaluate all commands before executing them in command `/eval`
|
||||
- xfer: evaluate option xfer.network.own_ip
|
||||
|
||||
### Added
|
||||
|
||||
- typing: add option typing.look.item_text ([#2305](https://github.com/weechat/weechat/issues/2305))
|
||||
|
||||
### Fixed
|
||||
|
||||
- core: fix crash with `/eval` when the current buffer is closed in a command
|
||||
- core: fix buffer size in function util_parse_time, causing buffer overflow error in unit tests
|
||||
- irc: fix display of CTCP query sent multiple times to the same user when capability echo-message is enabled ([#2309](https://github.com/weechat/weechat/issues/2309))
|
||||
- irc: fix unit of server option `anti_flood` from seconds to milliseconds in output of `/server listfull`
|
||||
- irc: fix creation of irc.msgbuffer option without a server name
|
||||
- irc: ignore self join if the channel is already joined ([#2291](https://github.com/weechat/weechat/issues/2291))
|
||||
- relay/api: fix memory leaks in resources "ping" and "sync"
|
||||
- relay/api: fix memory leak in receive of message from remote WeeChat
|
||||
|
||||
## Version 4.8.2 (2026-03-06)
|
||||
|
||||
### Fixed
|
||||
|
||||
- irc: ignore self join if the channel is already joined ([#2291](https://github.com/weechat/weechat/issues/2291))
|
||||
- relay/api: fix memory leaks in resources "ping" and "sync"
|
||||
- relay/api: fix memory leak in receive of message from remote WeeChat
|
||||
|
||||
## Version 4.8.1 (2025-12-01)
|
||||
|
||||
### Fixed
|
||||
|
||||
- core: fix buffer size in function util_parse_time, causing buffer overflow error in unit tests
|
||||
- irc: fix creation of irc.msgbuffer option without a server name
|
||||
|
||||
## Version 4.8.0 (2025-11-30)
|
||||
|
||||
_If you are upgrading: please see [UPGRADING.md](UPGRADING.md)._
|
||||
|
||||
### Removed
|
||||
|
||||
@@ -39,6 +128,13 @@ _If you are upgrading: please see [UPGRADING.md](UPGRADING.md)._
|
||||
- build: require Enchant v2 ([#2268](https://github.com/weechat/weechat/issues/2268))
|
||||
- build: require Lua ≥ 5.3 ([#2268](https://github.com/weechat/weechat/issues/2268))
|
||||
|
||||
### Added
|
||||
|
||||
- core: add option weechat.completion.cycle
|
||||
- core: add hdata for hooks
|
||||
- api: add functions util_parse_int, util_parse_long and util_parse_longlong
|
||||
- buflist: add variable `${index_displayed}`
|
||||
|
||||
### Fixed
|
||||
|
||||
- core: display an error message in case of invalid parameters in commands `/bar`, `/buffer`, `/cursor`, `/print` and `/window`
|
||||
|
||||
+36
-38
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2007-2008 Julien Louis <ptitlouis@sysif.net>
|
||||
# SPDX-FileCopyrightText: 2008-2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||
#
|
||||
@@ -28,6 +28,7 @@ project(weechat C)
|
||||
# CMake options
|
||||
set(CMAKE_VERBOSE_MAKEFILE OFF)
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
set(CMAKE_SKIP_RPATH ON)
|
||||
|
||||
# compiler options
|
||||
@@ -52,16 +53,8 @@ else()
|
||||
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
||||
endif()
|
||||
|
||||
# license
|
||||
set(LICENSE "GPL3")
|
||||
|
||||
# add definitions for version and license
|
||||
if(COMMAND cmake_policy)
|
||||
cmake_policy(SET CMP0005 NEW)
|
||||
add_definitions(-DWEECHAT_VERSION="${VERSION}" -DWEECHAT_LICENSE="${LICENSE}")
|
||||
else()
|
||||
add_definitions(-DWEECHAT_VERSION='"${VERSION}"' -DWEECHAT_LICENSE='"${LICENSE}"')
|
||||
endif()
|
||||
add_definitions(-DWEECHAT_VERSION="${VERSION}" -DWEECHAT_LICENSE="GPL3")
|
||||
|
||||
# package string
|
||||
set(PKG_STRING "${PROJECT_NAME} ${VERSION}")
|
||||
@@ -192,15 +185,6 @@ set(WEECHAT_HOME "${WEECHAT_HOME}" CACHE
|
||||
FORCE)
|
||||
mark_as_advanced(CLEAR WEECHAT_HOME)
|
||||
|
||||
if(COMMAND cmake_policy)
|
||||
if(POLICY CMP0003)
|
||||
cmake_policy(SET CMP0003 NEW)
|
||||
endif()
|
||||
if(POLICY CMP0017)
|
||||
cmake_policy(SET CMP0017 NEW)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_definitions(-DHAVE_CONFIG_H)
|
||||
|
||||
include(FindPkgConfig)
|
||||
@@ -258,22 +242,29 @@ list(APPEND EXTRA_LIBS ${GNUTLS_LDFLAGS})
|
||||
|
||||
# Check for zlib
|
||||
find_package(ZLIB REQUIRED)
|
||||
list(APPEND EXTRA_LIBS ${ZLIB_LIBRARY})
|
||||
|
||||
# Check for zstd
|
||||
if(ENABLE_ZSTD)
|
||||
pkg_check_modules(LIBZSTD REQUIRED libzstd)
|
||||
pkg_check_modules(LIBZSTD REQUIRED libzstd>=1.4.0)
|
||||
include_directories(${LIBZSTD_INCLUDE_DIRS})
|
||||
list(APPEND EXTRA_LIBS ${LIBZSTD_LDFLAGS})
|
||||
add_definitions(-DHAVE_ZSTD)
|
||||
endif()
|
||||
|
||||
# Check for cJSON
|
||||
if(ENABLE_CJSON)
|
||||
pkg_check_modules(LIBCJSON REQUIRED libcjson)
|
||||
include_directories(${LIBCJSON_INCLUDE_DIRS})
|
||||
add_definitions(-DHAVE_CJSON)
|
||||
endif()
|
||||
|
||||
# Check for iconv
|
||||
find_package(Iconv)
|
||||
if(ICONV_FOUND)
|
||||
if(ICONV_LIBRARY)
|
||||
list(APPEND EXTRA_LIBS ${ICONV_LIBRARY})
|
||||
endif()
|
||||
add_definitions(-DHAVE_ICONV)
|
||||
endif()
|
||||
|
||||
@@ -283,18 +274,15 @@ pkg_check_modules(LIBCURL REQUIRED libcurl>=7.68.0)
|
||||
include_directories(${LIBCURL_INCLUDE_DIRS})
|
||||
list(APPEND EXTRA_LIBS ${LIBCURL_LDFLAGS})
|
||||
|
||||
find_library(DL_LIBRARY
|
||||
NAMES dl
|
||||
PATHS /lib /usr/lib /usr/libexec /usr/local/lib /usr/local/libexec
|
||||
)
|
||||
if(DL_LIBRARY)
|
||||
list(APPEND EXTRA_LIBS ${DL_LIBRARY})
|
||||
endif()
|
||||
list(APPEND EXTRA_LIBS ${CMAKE_DL_LIBS})
|
||||
|
||||
add_subdirectory(icons)
|
||||
|
||||
if(ENABLE_NLS)
|
||||
find_package(Gettext REQUIRED)
|
||||
if(LIBINTL_LIBRARY)
|
||||
list(APPEND EXTRA_LIBS ${LIBINTL_LIBRARY})
|
||||
endif()
|
||||
find_package(Intl REQUIRED)
|
||||
include_directories(${Intl_INCLUDE_DIRS})
|
||||
list(APPEND EXTRA_LIBS "${Intl_LIBRARIES}")
|
||||
@@ -303,20 +291,30 @@ else()
|
||||
add_custom_target(translations COMMAND true)
|
||||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
|
||||
find_library(EXECINFO_LIB_PATH execinfo /usr/local/lib)
|
||||
check_function_exists(backtrace HAVE_BACKTRACE)
|
||||
list(APPEND EXTRA_LIBS "execinfo")
|
||||
else()
|
||||
check_symbol_exists(backtrace "execinfo.h" HAVE_BACKTRACE)
|
||||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "Haiku")
|
||||
list(APPEND EXTRA_LIBS "network")
|
||||
else()
|
||||
list(APPEND EXTRA_LIBS "pthread")
|
||||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
|
||||
list(APPEND EXTRA_LIBS "socket" "nsl")
|
||||
endif()
|
||||
|
||||
list(APPEND EXTRA_LIBS "m")
|
||||
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(doc)
|
||||
|
||||
if(ENABLE_TESTS)
|
||||
find_package(CppUTest)
|
||||
if(CPPUTEST_FOUND)
|
||||
enable_testing()
|
||||
else()
|
||||
message(SEND_ERROR "CppUTest not found")
|
||||
endif()
|
||||
else()
|
||||
enable_testing()
|
||||
add_test(NAME notests COMMAND true)
|
||||
endif()
|
||||
enable_testing()
|
||||
add_subdirectory(tests)
|
||||
|
||||
configure_file(config.h.cmake config.h @ONLY)
|
||||
|
||||
+2
-3
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
SPDX-FileCopyrightText: 2014-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
-->
|
||||
@@ -19,8 +19,7 @@ First, some basic things:
|
||||
|
||||
### Security reports
|
||||
|
||||
Please **DO NOT** file a GitHub issue for security related problems, but send an
|
||||
email to [security@weechat.org](mailto:security@weechat.org) instead.
|
||||
Please **DO NOT** file a GitHub issue for security related problems; see [SECURITY.md](SECURITY.md) instead.
|
||||
|
||||
### Required info
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
-->
|
||||
@@ -11,10 +11,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
</p>
|
||||
|
||||
[](https://hostux.social/@weechat)
|
||||
[](https://diasp.eu/u/weechat)
|
||||
[](https://x.com/WeeChatClient)
|
||||
[](https://blog.weechat.org/)
|
||||
[](https://www.slant.co/topics/1323/~best-irc-clients-for-linux)
|
||||
[](https://weechat.org/donate/)
|
||||
|
||||
[](https://github.com/weechat/weechat/actions)
|
||||
@@ -29,11 +27,11 @@ Homepage: [https://weechat.org/](https://weechat.org/)
|
||||
## Features
|
||||
|
||||
- **Modular chat client**: WeeChat has a lightweight core and optional [plugins](https://weechat.org/doc/weechat/user/#plugins). All plugins (including [IRC](https://weechat.org/doc/weechat/user/#irc)) are independent and can be unloaded.
|
||||
- **Multi-platform**: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (Bash/Ubuntu and Cygwin).
|
||||
- **Multi-protocols**: WeeChat is designed to support multiple protocols by plugins, like IRC.
|
||||
- **Multi-platform**: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (WSL and Cygwin).
|
||||
- **Multi-protocol**: WeeChat is designed to support multiple protocols via plugins, like IRC.
|
||||
- **Standards-compliant**: the IRC plugin is compliant with RFCs [1459](https://datatracker.ietf.org/doc/html/rfc1459), [2810](https://datatracker.ietf.org/doc/html/rfc2810), [2811](https://datatracker.ietf.org/doc/html/rfc2811), [2812](https://datatracker.ietf.org/doc/html/rfc2812), [2813](https://datatracker.ietf.org/doc/html/rfc2813) and [7194](https://datatracker.ietf.org/doc/html/rfc7194).
|
||||
- **Small, fast, and very light**: the core is and should stay as light and fast as possible.
|
||||
- **Customizable and extensible**: there are a lot of options to customize WeeChat, and it is extensible with C plugins and [scripts](https://weechat.org/scripts/) ([Perl](https://weechat.org/scripts/language/perl/), [Python](https://weechat.org/scripts/language/python/), [Ruby](https://weechat.org/scripts/language/ruby), [Lua](https://weechat.org/scripts/language/lua/), [Tcl](https://weechat.org/scripts/language/tcl/), [Scheme](https://weechat.org/scripts/language/guile/), [JavaScript](https://weechat.org/scripts/language/javascript/) and [PHP](https://weechat.org/scripts/language/php/)).
|
||||
- **Customizable and extensible**: there are a lot of options to customize WeeChat, and it is extensible with C plugins and [scripts](https://weechat.org/scripts/) ([Perl](https://weechat.org/scripts/language/perl/), [Python](https://weechat.org/scripts/language/python/), [Ruby](https://weechat.org/scripts/language/ruby/), [Lua](https://weechat.org/scripts/language/lua/), [Tcl](https://weechat.org/scripts/language/tcl/), [Scheme](https://weechat.org/scripts/language/guile/), [JavaScript](https://weechat.org/scripts/language/javascript/) and [PHP](https://weechat.org/scripts/language/php/)).
|
||||
- **Fully documented**: there is comprehensive [documentation](https://weechat.org/doc/weechat/), which is [translated](https://weechat.org/doc/weechat/dev/#translations) into several languages.
|
||||
- **Developed from scratch**: WeeChat was built from scratch and is not based on any other client.
|
||||
- **Free software**: WeeChat is released under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html).
|
||||
@@ -51,12 +49,12 @@ For detailed instructions, please check the [WeeChat user's guide](https://weech
|
||||
|
||||
## Semantic versioning
|
||||
|
||||
WeeChat is following a "practical" semantic versioning, see file [CONTRIBUTING.md](CONTRIBUTING.md#semantic-versioning).
|
||||
WeeChat follows "practical" semantic versioning; see [CONTRIBUTING.md](CONTRIBUTING.md#semantic-versioning).
|
||||
|
||||
## Copyright
|
||||
|
||||
<!-- REUSE-IgnoreStart -->
|
||||
Copyright © 2003-2025 [Sébastien Helleu](https://github.com/flashcode)
|
||||
Copyright © 2003-2026 [Sébastien Helleu](https://github.com/flashcode)
|
||||
|
||||
This file is part of WeeChat, the extensible chat client.
|
||||
|
||||
|
||||
+10
-2
@@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2025-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -17,5 +17,13 @@ path = [
|
||||
"weechat.pc.in",
|
||||
]
|
||||
precedence = "override"
|
||||
SPDX-FileCopyrightText = "2003-2025 Sébastien Helleu <flashcode@flashtux.org>"
|
||||
SPDX-FileCopyrightText = "2003-2026 Sébastien Helleu <flashcode@flashtux.org>"
|
||||
SPDX-License-Identifier = "GPL-3.0-or-later"
|
||||
|
||||
[[annotations]]
|
||||
path = [
|
||||
".poexam/*.dic",
|
||||
]
|
||||
precedence = "override"
|
||||
SPDX-FileCopyrightText = "2026 Sébastien Helleu <flashcode@flashtux.org>"
|
||||
SPDX-License-Identifier = "GPL-3.0-or-later"
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
-->
|
||||
|
||||
# Security Policy
|
||||
|
||||
## Supported versions
|
||||
|
||||
Only the latest stable version of WeeChat is supported.
|
||||
|
||||
| Version | Supported | Notes |
|
||||
| -------------- | ------------------ | --------------------------------------------------- |
|
||||
| Latest stable | :white_check_mark: | Fully supported. |
|
||||
| Older releases | :x: | Not supported. Contact us in case of specific need. |
|
||||
|
||||
However, we may help to backport fixes on older versions, especially when they are used in released distributions with no way to upgrade to the latest stable release (please contact us).
|
||||
|
||||
## Reporting a vulnerability
|
||||
|
||||
Please report security issues using <https://github.com/weechat/weechat/security/advisories/new>.
|
||||
|
||||
Alternatively, if you are not able to use this form, you can send an email to [security@weechat.org](mailto:security@weechat.org) instead.
|
||||
|
||||
We will investigate all legitimate reports and do our best to quickly fix the problem.
|
||||
+27
-1
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
-->
|
||||
@@ -13,6 +13,19 @@ When upgrading from version X to Y, please read and apply all instructions from
|
||||
|
||||
For a list of all changes in each version, please see [CHANGELOG.md](CHANGELOG.md).
|
||||
|
||||
## Version 4.10.0
|
||||
|
||||
### Command on mouse click in fset buffer
|
||||
|
||||
The command executed when clicking in the fset buffer has been updated to prevent
|
||||
errors on the core buffer when the click is done below the last option.
|
||||
|
||||
To reset the key and use the new default command:
|
||||
|
||||
```text
|
||||
/reset weechat.key_mouse.@chat(fset.fset):button1
|
||||
```
|
||||
|
||||
## Version 4.8.0
|
||||
|
||||
### IRC temporary servers
|
||||
@@ -24,6 +37,19 @@ converted to a standard server, and thus is saved in configuration file `irc.con
|
||||
|
||||
Servers can easily be removed with `/server del <name>`.
|
||||
|
||||
### IRC SASL EXTERNAL
|
||||
|
||||
When server option `sasl_mechanism` is set to `external`, WeeChat now sends the
|
||||
username defined in option `sasl_username` to the IRC server
|
||||
(see issue [#2270](https://github.com/weechat/weechat/issues/2270)).
|
||||
|
||||
If you use the EXTERNAL mechanism and the username is set, you could either:
|
||||
|
||||
- reset `sasl_username` to an empty string, if the username is **not** needed on this server:
|
||||
`/reset irc.server.xxx.sasl_username`
|
||||
- set `sasl_username` to your actual username, if the username **is** required on this server:
|
||||
`/set irc.server.xxx.sasl_username "user"`
|
||||
|
||||
### New time format in log files
|
||||
|
||||
The time format used in log files now uses UTC and precision of microsecond
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2014-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2007 Julien Louis <ptitlouis@sysif.net>
|
||||
# SPDX-FileCopyrightText: 2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2011-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2011-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2017 Adam Saponara <as@php.net>
|
||||
# SPDX-FileCopyrightText: 2017-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2017-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2015-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2015-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
SPDX-FileCopyrightText: 2007-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
SPDX-FileCopyrightText: 2007-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
Source: weechat-devel
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
|
||||
Build-Depends:
|
||||
asciidoctor (>= 1.5.4),
|
||||
@@ -13,7 +12,7 @@ Build-Depends:
|
||||
libperl-dev,
|
||||
python3-dev,
|
||||
libaspell-dev,
|
||||
liblua5.3-dev,
|
||||
liblua5.4-dev,
|
||||
tcl8.6-dev,
|
||||
guile-3.0-dev,
|
||||
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
|
||||
@@ -24,7 +23,7 @@ Build-Depends:
|
||||
libzstd-dev,
|
||||
zlib1g-dev,
|
||||
libcjson-dev
|
||||
Standards-Version: 4.7.2
|
||||
Standards-Version: 4.7.3
|
||||
Homepage: https://weechat.org/
|
||||
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
|
||||
Vcs-Browser: https://salsa.debian.org/kolter/weechat
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
weechat (4.8.1-1) unstable; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
* Bump Standards-Version to 4.7.3
|
||||
* Update debian/copyright file (new year)
|
||||
* Remove redundant priority optional field from debian/control
|
||||
|
||||
-- Emmanuel Bouthenot <kolter@debian.org> Fri, 23 Jan 2026 22:02:31 +0000
|
||||
|
||||
weechat (4.7.2-1) unstable; urgency=medium
|
||||
|
||||
* New upstream release (Closes: #1119787)
|
||||
@@ -40,6 +49,12 @@ weechat (4.4.2-1) unstable; urgency=medium
|
||||
* New upstream release
|
||||
- fix crash where exiting (Closes: #1076532)
|
||||
- fix a minor security issue (Closes: #1081942)
|
||||
* Fix possible privacy breach with html documentation which includes
|
||||
stylesheets and fonts (font-awesome) hosted on remote CDN (Cloudflare)
|
||||
by replacing them during build process by the ones provided in
|
||||
fonts-font-awesome package (also added as dependency on weechat-doc).
|
||||
* Refresh weechat-doc with minor changes and add some documentation in
|
||||
Serbian and Czech.
|
||||
* Bump Standards-Version to 4.7.0
|
||||
|
||||
-- Emmanuel Bouthenot <kolter@debian.org> Sun, 22 Sep 2024 13:08:28 +0000
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
Source: weechat
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
|
||||
Build-Depends:
|
||||
asciidoctor (>= 1.5.4),
|
||||
@@ -13,7 +12,7 @@ Build-Depends:
|
||||
libperl-dev,
|
||||
python3-dev,
|
||||
libaspell-dev,
|
||||
liblua5.3-dev,
|
||||
liblua5.4-dev,
|
||||
tcl8.6-dev,
|
||||
guile-3.0-dev,
|
||||
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
|
||||
@@ -24,7 +23,7 @@ Build-Depends:
|
||||
libzstd-dev,
|
||||
zlib1g-dev,
|
||||
libcjson-dev
|
||||
Standards-Version: 4.7.2
|
||||
Standards-Version: 4.7.3
|
||||
Homepage: https://weechat.org/
|
||||
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
|
||||
Vcs-Browser: https://salsa.debian.org/kolter/weechat
|
||||
|
||||
@@ -4,7 +4,7 @@ Upstream-Contact: Sébastien Helleu <flashcode@flashtux.org>
|
||||
Source: https://weechat.org/
|
||||
|
||||
Files: *
|
||||
Copyright: 2003-2025, Sébastien Helleu <flashcode@flashtux.org>
|
||||
Copyright: 2003-2026, Sébastien Helleu <flashcode@flashtux.org>
|
||||
License: GPL-3+
|
||||
|
||||
Files: src/core/core-command.c
|
||||
|
||||
+37
-12
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# SPDX-FileCopyrightText: 2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -30,12 +30,37 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
||||
set(SCRIPTING_LANG de en fr it ja pl sr)
|
||||
set(FAQ_LANG de en es fr it ja pl sr)
|
||||
set(QUICKSTART_LANG cs de en es fr it ja pl ru sr)
|
||||
set(RELAY_API_LANG en fr)
|
||||
set(RELAY_API_LANG en fr sr)
|
||||
set(RELAY_WEECHAT_LANG en fr ja sr)
|
||||
set(DEV_LANG en fr ja sr)
|
||||
|
||||
find_package(Asciidoctor)
|
||||
if(ASCIIDOCTOR_FOUND)
|
||||
# Asciidoctor embeds the light style automatically; the dark stylesheet
|
||||
# is generated below and scoped via @media in docinfo.html.in.
|
||||
set(PYGMENTS_LIGHT_STYLE "default")
|
||||
set(PYGMENTS_DARK_STYLE "monokai")
|
||||
find_program(PYGMENTIZE_EXECUTABLE pygmentize)
|
||||
set(PYGMENTS_DARK_CSS "")
|
||||
if(PYGMENTIZE_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND "${PYGMENTIZE_EXECUTABLE}" -O "classprefix=tok-" -f html -a "pre.pygments" -S "${PYGMENTS_DARK_STYLE}"
|
||||
OUTPUT_VARIABLE PYGMENTS_DARK_CSS
|
||||
RESULT_VARIABLE _pygmentize_result
|
||||
)
|
||||
if(NOT _pygmentize_result EQUAL 0)
|
||||
message(WARNING "Failed to generate pygments CSS for dark theme (style: ${PYGMENTS_DARK_STYLE}); doc will be built without dark theme syntax highlighting")
|
||||
set(PYGMENTS_DARK_CSS "")
|
||||
endif()
|
||||
else()
|
||||
message(WARNING "pygmentize not found (install python3-pygments); doc will be built without syntax highlighting colors")
|
||||
endif()
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||
@ONLY
|
||||
)
|
||||
|
||||
# common asciidoctor arguments
|
||||
set(ASCIIDOCTOR_ARGS
|
||||
-v
|
||||
@@ -46,8 +71,8 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
||||
-a revnumber="${VERSION}"
|
||||
-a sectanchors
|
||||
-a source-highlighter=pygments
|
||||
-a pygments-style=native
|
||||
-a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
-a pygments-style=${PYGMENTS_LIGHT_STYLE}
|
||||
-a docinfodir="${CMAKE_CURRENT_BINARY_DIR}"
|
||||
-a autogendir="${CMAKE_CURRENT_BINARY_DIR}/autogen"
|
||||
)
|
||||
|
||||
@@ -205,7 +230,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_user.${lang}.html"
|
||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_USER_ARGS} -o "weechat_user.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
|
||||
DEPENDS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc"
|
||||
@@ -226,7 +251,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.${lang}.html"
|
||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_PLUGIN_API_ARGS} -o "weechat_plugin_api.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
|
||||
DEPENDS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||
doc-autogen
|
||||
@@ -250,7 +275,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.${lang}.html"
|
||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_SCRIPTING_ARGS} -o "weechat_scripting.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
|
||||
DEPENDS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||
doc-autogen
|
||||
@@ -268,7 +293,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.${lang}.html"
|
||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_FAQ_ARGS} -o "weechat_faq.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
|
||||
DEPENDS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
@@ -283,7 +308,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.${lang}.html"
|
||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_QUICKSTART_ARGS} -o "weechat_quickstart.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
|
||||
DEPENDS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
@@ -298,7 +323,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_api.${lang}.html"
|
||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_RELAY_API_ARGS} -o "weechat_relay_api.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_api.${lang}.adoc"
|
||||
DEPENDS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_api.${lang}.adoc"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
|
||||
@@ -314,7 +339,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_weechat.${lang}.html"
|
||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_RELAY_WEECHAT_ARGS} -o "weechat_relay_weechat.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_weechat.${lang}.adoc"
|
||||
DEPENDS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_weechat.${lang}.adoc"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
|
||||
@@ -330,7 +355,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.${lang}.html"
|
||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_DEV_ARGS} -o "weechat_dev.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
|
||||
DEPENDS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
||||
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
||||
//
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
||||
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
||||
//
|
||||
@@ -107,7 +107,7 @@ WeeChat je napsán Sébastienem Helleu a přispěvovateli (kompletní seznam je
|
||||
souboru AUTHORS.md).
|
||||
|
||||
// REUSE-IgnoreStart
|
||||
Copyright (C) 2003-2025 {author}
|
||||
Copyright (C) 2003-2026 {author}
|
||||
// REUSE-IgnoreEnd
|
||||
|
||||
WeeChat is free software; you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
||||
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
||||
//
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
||||
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
||||
//
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -105,7 +105,7 @@ WeeChat wird programmiert von Sébastien Helleu und weiteren Beteiligten (eine v
|
||||
findet man in der AUTHORS.md Datei).
|
||||
|
||||
// REUSE-IgnoreStart
|
||||
Copyright (C) 2003-2025 {author}
|
||||
Copyright (C) 2003-2026 {author}
|
||||
// REUSE-IgnoreEnd
|
||||
|
||||
WeeChat is free software; you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2009 Juergen Descher <jhdl@gmx.net>
|
||||
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
||||
//
|
||||
@@ -458,7 +458,7 @@ für weitere Informationen die das Farbmanagement betreffen.
|
||||
[[search_text]]
|
||||
=== Wie kann ich in einem Buffer nach einem Text suchen (vergleichbar /lastlog in irssi)?
|
||||
|
||||
Die Standardtastenbelegung lautet kbd:[Ctrl+r]
|
||||
Die Standardtastenbelegung lautet kbd:[Ctrl+s]
|
||||
(der dazugehörige Befehl: `+/input search_text_here+`).
|
||||
Um zu Highlight-Nachrichten zu springen:
|
||||
kbd:[Alt+p] für vorherige, kbd:[Alt+n] für die nächste Nachricht.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2006 Frank Zacharias <frank_zacharias@web.de>
|
||||
// SPDX-FileCopyrightText: 2009 Juergen Descher <jhdl@gmx.net>
|
||||
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
+148
-2
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -212,7 +212,7 @@ WeeChat optional sind:
|
||||
| asciidoctor | ≥ 1.5.4
|
||||
| zum Erstellen der man page und der Dokumentation.
|
||||
|
||||
| ruby-pygments.rb |
|
||||
| python3-pygments, ruby-pygments.rb |
|
||||
| Build Dokumentation.
|
||||
|
||||
| libcpputest-dev | ≥ 3.4
|
||||
@@ -2197,6 +2197,152 @@ Um der Vordergrundfarbe des Terminals das Attribut "fett" zuzuordnen:
|
||||
/set weechat.color.status_time *99999
|
||||
----
|
||||
|
||||
// TRANSLATION MISSING
|
||||
[[themes]]
|
||||
=== Themen
|
||||
|
||||
A theme is a named bundle of option overrides that can be applied with
|
||||
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
||||
`"light"` theme tuned for light-background terminals and supports
|
||||
user-defined themes loaded transiently from files.
|
||||
|
||||
[[themes_themable_options]]
|
||||
==== Themable options
|
||||
|
||||
Themes can only set options marked as _themable_. All `*.color.*`
|
||||
options are themable by default; a few string options that hold format
|
||||
expressions with `+${color:...}+` references (such as
|
||||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
||||
`+buflist.format.*+` formats) are explicitly opted in.
|
||||
|
||||
You can list the full themable surface area from the
|
||||
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
||||
|
||||
[[themes_apply]]
|
||||
==== Applying a theme
|
||||
|
||||
To switch to the built-in light-background theme:
|
||||
|
||||
----
|
||||
/theme apply light
|
||||
----
|
||||
|
||||
The current state of every themable option is saved beforehand to a
|
||||
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
||||
directory `+themes+` inside the WeeChat configuration directory, so the
|
||||
previous look can be restored at any time with:
|
||||
|
||||
----
|
||||
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
||||
----
|
||||
|
||||
Backup creation can be disabled (not recommended):
|
||||
|
||||
----
|
||||
/set weechat.look.theme_backup off
|
||||
----
|
||||
|
||||
If backup is enabled and the backup file cannot be written, the apply
|
||||
is aborted before any option is changed.
|
||||
|
||||
The name of the last applied theme is stored in
|
||||
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
||||
|
||||
[[themes_reset]]
|
||||
==== Resetting to defaults
|
||||
|
||||
To restore the look shipped with WeeChat, reset every themable option
|
||||
to its default value:
|
||||
|
||||
----
|
||||
/theme reset
|
||||
----
|
||||
|
||||
A backup is written first (same gate as `+/theme apply+`); on backup
|
||||
failure the reset is aborted before any option is changed.
|
||||
`+weechat.look.theme+` is cleared too.
|
||||
|
||||
[[themes_save_delete]]
|
||||
==== Saving and deleting user themes
|
||||
|
||||
Save the current themable options as a new user theme file:
|
||||
|
||||
----
|
||||
/theme save mytheme
|
||||
----
|
||||
|
||||
Every themable option is written, so the file is self-contained and
|
||||
applies the exact same look on any WeeChat, regardless of its current
|
||||
configuration.
|
||||
|
||||
Reserved names (built-in theme names like `+light+` and any name
|
||||
starting with `+backup-+`) are refused. Files live at
|
||||
`+${weechat_config_dir}/themes/<name>.theme+`.
|
||||
|
||||
Rename a user theme (typical use: keep a useful automatic backup
|
||||
under a meaningful name):
|
||||
|
||||
----
|
||||
/theme rename backup-20260525-094210-123456 mybackup
|
||||
----
|
||||
|
||||
Built-in themes have no file and cannot be renamed; the target name
|
||||
cannot match a built-in name or start with `+backup-+`, and the
|
||||
target file must not already exist. The `+[info]+` `+name+` field
|
||||
inside the file is rewritten so `/theme info` reports the new name
|
||||
consistently.
|
||||
|
||||
Delete a user theme:
|
||||
|
||||
----
|
||||
/theme delete mytheme
|
||||
----
|
||||
|
||||
This removes the file on disk; built-in themes cannot be deleted.
|
||||
|
||||
[[themes_file_format]]
|
||||
==== Theme file format
|
||||
|
||||
A theme file is INI-like with two sections:
|
||||
|
||||
----
|
||||
[info]
|
||||
name = "solarized_light"
|
||||
description = "Light-background theme inspired by Solarized"
|
||||
date = "2026-05-25 09:42:10"
|
||||
weechat = "4.10.0-dev"
|
||||
|
||||
[options]
|
||||
weechat.color.chat = "darkgray"
|
||||
weechat.color.separator = "blue"
|
||||
irc.color.input_nick = "magenta"
|
||||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
||||
----
|
||||
|
||||
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
||||
holds the actual overrides; keys are the full option names that would
|
||||
appear in `/set`. String values can be enclosed in double or single
|
||||
quotes; quotes are stripped at parse time. Non-themable options listed
|
||||
in a theme file are refused at apply time and logged to the core
|
||||
buffer (so a `.theme` file imported from an untrusted source cannot
|
||||
overwrite passwords, autoload lists, or startup commands).
|
||||
|
||||
User theme files are never cached: on every `/theme apply <name>` the
|
||||
file is parsed, applied, and freed.
|
||||
|
||||
[[themes_resolution]]
|
||||
==== Resolution order
|
||||
|
||||
When `+/theme apply <name>+` is run:
|
||||
|
||||
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
||||
is parsed and used (it shadows any built-in with the same name).
|
||||
* Otherwise the built-in theme registry is consulted; built-ins are
|
||||
registered programmatically by core, plugins and scripts (see the
|
||||
plugin and scripting documentation for `+weechat_theme_register+`).
|
||||
|
||||
If neither source provides the name, the apply is refused.
|
||||
|
||||
[[charset]]
|
||||
=== Charset
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2016-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
SPDX-FileCopyrightText: 2016-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
-->
|
||||
@@ -26,9 +26,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
--header-details-color: #aaa;
|
||||
--border: 1px solid #444;
|
||||
--code-bg-color: #252525;
|
||||
--pre-color: #ddd;
|
||||
--pre-bg-color: #202020;
|
||||
--pre-code-bg-color: #202020;
|
||||
--keyseq-color: #777;
|
||||
--kbd-bg-color: #252525;
|
||||
--kbd-border: 1px solid #333;
|
||||
@@ -39,7 +36,11 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
--icon-caution-color: #bf3400;
|
||||
--icon-important-color: #f44336;
|
||||
--mark-bg-color: #007;
|
||||
--pre-bevel-light: #3e3e3e;
|
||||
--pre-bevel-dark: #2a2a2a;
|
||||
--pre-bevel-bg: #1f1f1f;
|
||||
}
|
||||
@PYGMENTS_DARK_CSS@
|
||||
}
|
||||
|
||||
@media (not (prefers-color-scheme: dark)), (prefers-color-scheme: light) {
|
||||
@@ -59,9 +60,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
--border: 1px solid #dddddf;
|
||||
--code-bg-color: #f7f7f8;
|
||||
--keyseq-color: #333c;
|
||||
--pre-color: #353535;
|
||||
--pre-bg-color: #f7f7f8;
|
||||
--pre-code-bg-color: #202020;
|
||||
--kbd-bg-color: #f7f7f7;
|
||||
--kbd-border: 1px solid #ccc;
|
||||
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #fff;
|
||||
@@ -71,6 +69,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
--icon-caution-color: #ff0000;
|
||||
--icon-important-color: #bf0000;
|
||||
--mark-bg-color: #9df;
|
||||
--pre-bevel-light: #e5e5e7;
|
||||
--pre-bevel-dark: #b4b4b8;
|
||||
--pre-bevel-bg: #f6f6f7;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,6 +146,10 @@ code, .prettyprint {
|
||||
|
||||
pre {
|
||||
color: var(--pre-color) !important;
|
||||
border: 1px solid;
|
||||
border-color: var(--pre-bevel-light) var(--pre-bevel-dark) var(--pre-bevel-dark) var(--pre-bevel-light);
|
||||
border-radius: 3px;
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
pre > code {
|
||||
@@ -162,8 +167,8 @@ kbd {
|
||||
color: var(--body-color);
|
||||
}
|
||||
|
||||
.literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "] {
|
||||
background-color: var(--pre-bg-color);
|
||||
.literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "], pre.pygments {
|
||||
background-color: var(--pre-bg-color, var(--pre-bevel-bg));
|
||||
color: var(--body-color);
|
||||
}
|
||||
|
||||
@@ -200,24 +205,6 @@ mark {
|
||||
color: var(--body-color);
|
||||
}
|
||||
|
||||
/* syntax highlighting tuning */
|
||||
|
||||
pre.pygments {
|
||||
color: #ddd !important;
|
||||
}
|
||||
|
||||
pre.pygments .tok-cp {
|
||||
color: #44cfaf;
|
||||
}
|
||||
|
||||
pre.pygments .tok-nc, pre.pygments .tok-nf {
|
||||
color: #649fef;
|
||||
}
|
||||
|
||||
pre.pygments .tok-gu, pre.pygments .tok-nc, pre.pygments .tok-nn {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* asciidoctor styles tuning */
|
||||
|
||||
#header, #content, #footnotes, #footer {
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -105,7 +105,7 @@ WeeChat is written by Sébastien Helleu and contributors (complete list is in
|
||||
the AUTHORS.md file).
|
||||
|
||||
// REUSE-IgnoreStart
|
||||
Copyright (C) 2003-2025 {author}
|
||||
Copyright (C) 2003-2026 {author}
|
||||
// REUSE-IgnoreEnd
|
||||
|
||||
WeeChat is free software; you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -128,6 +128,7 @@ WeeChat "core" is located in following directories:
|
||||
|===
|
||||
| Path/file | Description
|
||||
| core/ | Core functions: entry point, internal structures.
|
||||
| core-args.c | Command-line arguments.
|
||||
| core-arraylist.c | Array lists.
|
||||
| core-backtrace.c | Display a backtrace after a crash.
|
||||
| core-calc.c | Calculate result of expressions.
|
||||
@@ -615,7 +616,7 @@ Example in C:
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2025 Your Name <your@email.com>
|
||||
* SPDX-FileCopyrightText: 2026 Your Name <your@email.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
@@ -655,9 +656,9 @@ Example:
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Checks if a string with boolean value is valid.
|
||||
* Check if a string with boolean value is valid.
|
||||
*
|
||||
* Returns:
|
||||
* Return:
|
||||
* 1: boolean value is valid
|
||||
* 0: boolean value is NOT valid
|
||||
*/
|
||||
@@ -932,9 +933,9 @@ Example: creation of a new window (from _src/gui/gui-window.c_):
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Creates a new window.
|
||||
* Create a new window.
|
||||
*
|
||||
* Returns pointer to new window, NULL if error.
|
||||
* Return pointer to new window, NULL if error.
|
||||
*/
|
||||
|
||||
struct t_gui_window *
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -441,7 +441,7 @@ for more information about colors management.
|
||||
[[search_text]]
|
||||
=== How can I search text in buffer (like /lastlog in irssi)?
|
||||
|
||||
The default key is kbd:[Ctrl+r] (command is: `+/input search_text_here+`).
|
||||
The default key is kbd:[Ctrl+s] (command is: `+/input search_text_here+`).
|
||||
And jump to highlights: kbd:[Alt+p] / kbd:[Alt+n].
|
||||
|
||||
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^^]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -9627,6 +9627,89 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
||||
# ...
|
||||
----
|
||||
|
||||
[[themes]]
|
||||
=== Themes
|
||||
|
||||
Functions to contribute color (and other themable option) overrides to
|
||||
built-in themes. See the
|
||||
link:weechat_user.en.html#themes[user's guide / Themes] section for the
|
||||
end-user side and the `+/theme+` command.
|
||||
|
||||
==== theme_register
|
||||
|
||||
_WeeChat ≥ 4.10.0._
|
||||
|
||||
Register a contribution of option overrides under a named theme. The
|
||||
caller's plugin is the owner of the contribution; subsequent calls
|
||||
with the same theme name from the same plugin merge into the existing
|
||||
contribution (later keys win for duplicates).
|
||||
|
||||
When the calling plugin is unloaded, all its contributions are
|
||||
automatically dropped from every theme.
|
||||
|
||||
Prototype:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
struct t_theme *weechat_theme_register (const char *name,
|
||||
struct t_hashtable *overrides);
|
||||
----
|
||||
|
||||
Arguments:
|
||||
|
||||
* _name_: theme name (for example `+light+` or a custom name)
|
||||
* _overrides_: hashtable mapping full option names
|
||||
(e.g. `+irc.color.input_nick+`) to their string values; the caller
|
||||
retains ownership and may free the hashtable right after the call
|
||||
|
||||
Return value:
|
||||
|
||||
* pointer to the registered theme (existing or newly created), NULL on
|
||||
error
|
||||
|
||||
C example:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
struct t_hashtable *overrides = weechat_hashtable_new (
|
||||
8,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
NULL, NULL);
|
||||
if (overrides)
|
||||
{
|
||||
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
||||
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
||||
weechat_theme_register ("light", overrides);
|
||||
weechat_hashtable_free (overrides);
|
||||
}
|
||||
----
|
||||
|
||||
Script (Python):
|
||||
|
||||
[source,python]
|
||||
----
|
||||
# prototype
|
||||
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
||||
|
||||
# example
|
||||
weechat.theme_register("light", {
|
||||
"irc.color.input_nick": "cyan",
|
||||
"irc.color.topic_old": "darkgray",
|
||||
})
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
Only options that have the _themable_ flag will be set by `/theme apply`.
|
||||
All `*.color.*` options are themable by default; string options that
|
||||
hold `+${color:...}+` references are explicitly opted in. Entries
|
||||
targeting non-themable options are silently skipped at apply-time with
|
||||
a warning logged to the _core_ buffer.
|
||||
|
||||
[NOTE]
|
||||
When called from a script, the contribution is automatically dropped
|
||||
when the script unloads (no manual cleanup is needed).
|
||||
|
||||
[[key_bindings]]
|
||||
=== Key bindings
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -541,7 +541,8 @@ HTTP/1.1 200 OK
|
||||
"plugin": "core",
|
||||
"name": "weechat"
|
||||
},
|
||||
"keys": []
|
||||
"keys": [],
|
||||
"last_read_line_id": -1
|
||||
},
|
||||
{
|
||||
"id": 1709932823423765,
|
||||
@@ -571,7 +572,8 @@ HTTP/1.1 200 OK
|
||||
"tls_version": "TLS1.3",
|
||||
"host": "~alice@example.com"
|
||||
},
|
||||
"keys": []
|
||||
"keys": [],
|
||||
"last_read_line_id": -1
|
||||
},
|
||||
{
|
||||
"id": 1709932823649069,
|
||||
@@ -599,7 +601,8 @@ HTTP/1.1 200 OK
|
||||
"nick": "alice",
|
||||
"host": "~alice@example.com"
|
||||
},
|
||||
"keys": []
|
||||
"keys": [],
|
||||
"last_read_line_id": -1
|
||||
}
|
||||
]
|
||||
----
|
||||
@@ -655,7 +658,8 @@ HTTP/1.1 200 OK
|
||||
"message": "Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, javascript, logger, lua, perl, php, python, relay, ruby, script, spell, tcl, trigger, typing, xfer",
|
||||
"tags": []
|
||||
}
|
||||
]
|
||||
],
|
||||
"last_read_line_id": -1
|
||||
}
|
||||
----
|
||||
|
||||
@@ -702,6 +706,7 @@ HTTP/1.1 200 OK
|
||||
"host": "~alice@example.com"
|
||||
},
|
||||
"keys": [],
|
||||
"last_read_line_id": -1,
|
||||
"nicklist_root": {
|
||||
"id": 0,
|
||||
"parent_group_id": -1,
|
||||
@@ -900,7 +905,8 @@ HTTP/1.1 200 OK
|
||||
"key": "up",
|
||||
"command": "/fset -up"
|
||||
}
|
||||
]
|
||||
],
|
||||
"last_read_line_id": -1
|
||||
}
|
||||
----
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
+147
-2
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -210,7 +210,7 @@ WeeChat:
|
||||
| asciidoctor | ≥ 1.5.4
|
||||
| Build man page and documentation.
|
||||
|
||||
| ruby-pygments.rb |
|
||||
| python3-pygments, ruby-pygments.rb |
|
||||
| Build documentation.
|
||||
|
||||
| libcpputest-dev | ≥ 3.4
|
||||
@@ -2185,6 +2185,151 @@ Example of bold with terminal foreground color:
|
||||
/set weechat.color.status_time *99999
|
||||
----
|
||||
|
||||
[[themes]]
|
||||
=== Themes
|
||||
|
||||
A theme is a named bundle of option overrides that can be applied with
|
||||
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
||||
`"light"` theme tuned for light-background terminals and supports
|
||||
user-defined themes loaded transiently from files.
|
||||
|
||||
[[themes_themable_options]]
|
||||
==== Themable options
|
||||
|
||||
Themes can only set options marked as _themable_. All `*.color.*`
|
||||
options are themable by default; a few string options that hold format
|
||||
expressions with `+${color:...}+` references (such as
|
||||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
||||
`+buflist.format.*+` formats) are explicitly opted in.
|
||||
|
||||
You can list the full themable surface area from the
|
||||
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
||||
|
||||
[[themes_apply]]
|
||||
==== Applying a theme
|
||||
|
||||
To switch to the built-in light-background theme:
|
||||
|
||||
----
|
||||
/theme apply light
|
||||
----
|
||||
|
||||
The current state of every themable option is saved beforehand to a
|
||||
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
||||
directory `+themes+` inside the WeeChat configuration directory, so the
|
||||
previous look can be restored at any time with:
|
||||
|
||||
----
|
||||
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
||||
----
|
||||
|
||||
Backup creation can be disabled (not recommended):
|
||||
|
||||
----
|
||||
/set weechat.look.theme_backup off
|
||||
----
|
||||
|
||||
If backup is enabled and the backup file cannot be written, the apply
|
||||
is aborted before any option is changed.
|
||||
|
||||
The name of the last applied theme is stored in
|
||||
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
||||
|
||||
[[themes_reset]]
|
||||
==== Resetting to defaults
|
||||
|
||||
To restore the look shipped with WeeChat, reset every themable option
|
||||
to its default value:
|
||||
|
||||
----
|
||||
/theme reset
|
||||
----
|
||||
|
||||
A backup is written first (same gate as `+/theme apply+`); on backup
|
||||
failure the reset is aborted before any option is changed.
|
||||
`+weechat.look.theme+` is cleared too.
|
||||
|
||||
[[themes_save_delete]]
|
||||
==== Saving and deleting user themes
|
||||
|
||||
Save the current themable options as a new user theme file:
|
||||
|
||||
----
|
||||
/theme save mytheme
|
||||
----
|
||||
|
||||
Every themable option is written, so the file is self-contained and
|
||||
applies the exact same look on any WeeChat, regardless of its current
|
||||
configuration.
|
||||
|
||||
Reserved names (built-in theme names like `+light+` and any name
|
||||
starting with `+backup-+`) are refused. Files live at
|
||||
`+${weechat_config_dir}/themes/<name>.theme+`.
|
||||
|
||||
Rename a user theme (typical use: keep a useful automatic backup
|
||||
under a meaningful name):
|
||||
|
||||
----
|
||||
/theme rename backup-20260525-094210-123456 mybackup
|
||||
----
|
||||
|
||||
Built-in themes have no file and cannot be renamed; the target name
|
||||
cannot match a built-in name or start with `+backup-+`, and the
|
||||
target file must not already exist. The `+[info]+` `+name+` field
|
||||
inside the file is rewritten so `/theme info` reports the new name
|
||||
consistently.
|
||||
|
||||
Delete a user theme:
|
||||
|
||||
----
|
||||
/theme delete mytheme
|
||||
----
|
||||
|
||||
This removes the file on disk; built-in themes cannot be deleted.
|
||||
|
||||
[[themes_file_format]]
|
||||
==== Theme file format
|
||||
|
||||
A theme file is INI-like with two sections:
|
||||
|
||||
----
|
||||
[info]
|
||||
name = "solarized_light"
|
||||
description = "Light-background theme inspired by Solarized"
|
||||
date = "2026-05-25 09:42:10"
|
||||
weechat = "4.10.0-dev"
|
||||
|
||||
[options]
|
||||
weechat.color.chat = "darkgray"
|
||||
weechat.color.separator = "blue"
|
||||
irc.color.input_nick = "magenta"
|
||||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
||||
----
|
||||
|
||||
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
||||
holds the actual overrides; keys are the full option names that would
|
||||
appear in `/set`. String values can be enclosed in double or single
|
||||
quotes; quotes are stripped at parse time. Non-themable options listed
|
||||
in a theme file are refused at apply time and logged to the core
|
||||
buffer (so a `.theme` file imported from an untrusted source cannot
|
||||
overwrite passwords, autoload lists, or startup commands).
|
||||
|
||||
User theme files are never cached: on every `/theme apply <name>` the
|
||||
file is parsed, applied, and freed.
|
||||
|
||||
[[themes_resolution]]
|
||||
==== Resolution order
|
||||
|
||||
When `+/theme apply <name>+` is run:
|
||||
|
||||
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
||||
is parsed and used (it shadows any built-in with the same name).
|
||||
* Otherwise the built-in theme registry is consulted; built-ins are
|
||||
registered programmatically by core, plugins and scripts (see the
|
||||
plugin and scripting documentation for `+weechat_theme_register+`).
|
||||
|
||||
If neither source provides the name, the apply is refused.
|
||||
|
||||
[[charset]]
|
||||
=== Charset
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2021 Victorhck <victorhck.mailbox.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -454,7 +454,7 @@ información sobre la gestión de los colores.
|
||||
[[search_text]]
|
||||
=== ¿Cómo busco texto en un buffer (como /lastlog en irssi)?
|
||||
|
||||
La tecla predeterminada es kbd:[Ctrl+r] (el comando es: `+/input texto_a_buscar_aquí+`).
|
||||
La tecla predeterminada es kbd:[Ctrl+s] (el comando es: `+/input texto_a_buscar_aquí+`).
|
||||
Y para saltar a los textos resaltados: kbd:[Alt+p] / kbd:[Alt+n].
|
||||
|
||||
Vea la link:weechat_user.en.html#key_bindings[Guía del usuario / Atajos de teclado ^↗^^]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2012 Lázaro A. <uranio-235@myopera.com>
|
||||
// SPDX-FileCopyrightText: 2021 Victorhck <victorhck@mailbox.org>
|
||||
//
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -9,7 +9,7 @@ https://weechat.org/doc/[guide utilisateur de WeeChat].
|
||||
|
||||
Avec l'extension irc, vous pouvez vous connecter à un serveur avec une URL, comme ceci :
|
||||
|
||||
irc[6][s]://[[pseudo][:motdepasse]@]serveur[:port][/#canal1[,#canal2...]]
|
||||
irc[6][s]://[[pseudo][:mot_de_passe]@]serveur[:port][/#canal1[,#canal2...]]
|
||||
|
||||
Pour rejoindre le canal IRC de support WeeChat avec le pseudo "monpseudo" :
|
||||
|
||||
@@ -106,7 +106,7 @@ WeeChat est écrit par Sébastien Helleu et des contributeurs (la liste complèt
|
||||
est dans le fichier AUTHORS.md).
|
||||
|
||||
// REUSE-IgnoreStart
|
||||
Copyright (C) 2003-2025 {author}
|
||||
Copyright (C) 2003-2026 {author}
|
||||
// REUSE-IgnoreEnd
|
||||
|
||||
WeeChat est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -129,6 +129,7 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|
||||
|===
|
||||
| Chemin/fichier | Description
|
||||
| core/ | Fonctions du cœur : point d'entrée, structures internes.
|
||||
| core-args.c | Paramètres de ligne de commande.
|
||||
| core-arraylist.c | Listes avec tableau (« arraylists »).
|
||||
| core-backtrace.c | Afficher une trace après un plantage.
|
||||
| core-calc.c | Calcul du résultat d'expressions.
|
||||
@@ -616,7 +617,7 @@ Exemple en C :
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2025 Your Name <your@email.com>
|
||||
* SPDX-FileCopyrightText: 2026 Your Name <your@email.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
@@ -659,9 +660,9 @@ Exemple :
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Checks if a string with boolean value is valid.
|
||||
* Check if a string with boolean value is valid.
|
||||
*
|
||||
* Returns:
|
||||
* Return:
|
||||
* 1: boolean value is valid
|
||||
* 0: boolean value is NOT valid
|
||||
*/
|
||||
@@ -942,9 +943,9 @@ Exemple : création d'une nouvelle fenêtre (de _src/gui/gui-window.c_) :
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Creates a new window.
|
||||
* Create a new window.
|
||||
*
|
||||
* Returns pointer to new window, NULL if error.
|
||||
* Return pointer to new window, NULL if error.
|
||||
*/
|
||||
|
||||
struct t_gui_window *
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -457,7 +457,7 @@ pour plus d'information sur la gestion des couleurs.
|
||||
[[search_text]]
|
||||
=== Comment puis-je chercher du texte dans le tampon (comme /lastlog dans irssi) ?
|
||||
|
||||
La touche par défaut est kbd:[Ctrl+r] (la commande est : `+/input search_text_here+`).
|
||||
La touche par défaut est kbd:[Ctrl+s] (la commande est : `+/input search_text_here+`).
|
||||
Et sauter aux highlights : kbd:[Alt+p] / kbd:[Alt+n].
|
||||
|
||||
Voir le link:weechat_user.fr.html#key_bindings[Guide utilisateur / Raccourcis clavier par défaut ^↗^^]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -9771,6 +9771,95 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
||||
# ...
|
||||
----
|
||||
|
||||
[[themes]]
|
||||
=== Thèmes
|
||||
|
||||
Fonctions permettant de contribuer des surcharges d'options de couleur
|
||||
(et autres options modifiables par un thème) à des thèmes intégrés.
|
||||
Voir la section
|
||||
link:weechat_user.fr.html#themes[guide utilisateur / Thèmes] pour le
|
||||
côté utilisateur final et la commande `+/theme+`.
|
||||
|
||||
==== theme_register
|
||||
|
||||
_WeeChat ≥ 4.10.0._
|
||||
|
||||
Enregistrer une contribution de surcharges d'options sous un thème
|
||||
nommé. L'extension appelante est le propriétaire de la contribution ;
|
||||
les appels suivants avec le même nom de thème depuis la même extension
|
||||
sont fusionnés dans la contribution existante (en cas de doublons, les
|
||||
dernières clés gagnent).
|
||||
|
||||
Lorsque l'extension appelante est déchargée, toutes ses contributions
|
||||
sont automatiquement retirées de tous les thèmes.
|
||||
|
||||
Prototype :
|
||||
|
||||
[source,c]
|
||||
----
|
||||
struct t_theme *weechat_theme_register (const char *name,
|
||||
struct t_hashtable *overrides);
|
||||
----
|
||||
|
||||
Paramètres :
|
||||
|
||||
* _name_ : nom du thème (par exemple `+light+` ou un nom personnalisé)
|
||||
* _overrides_ : table de hachage associant des noms d'options complets
|
||||
(par exemple `+irc.color.input_nick+`) à leurs valeurs chaîne ;
|
||||
l'appelant en conserve la propriété et peut la libérer juste après
|
||||
l'appel
|
||||
|
||||
Valeur de retour :
|
||||
|
||||
* pointeur vers le thème enregistré (existant ou nouvellement créé),
|
||||
NULL en cas d'erreur
|
||||
|
||||
Exemple en C :
|
||||
|
||||
[source,c]
|
||||
----
|
||||
struct t_hashtable *overrides = weechat_hashtable_new (
|
||||
8,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
NULL, NULL);
|
||||
if (overrides)
|
||||
{
|
||||
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
||||
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
||||
weechat_theme_register ("light", overrides);
|
||||
weechat_hashtable_free (overrides);
|
||||
}
|
||||
----
|
||||
|
||||
Script (Python) :
|
||||
|
||||
[source,python]
|
||||
----
|
||||
# prototype
|
||||
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
||||
|
||||
# exemple
|
||||
weechat.theme_register("light", {
|
||||
"irc.color.input_nick": "cyan",
|
||||
"irc.color.topic_old": "darkgray",
|
||||
})
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
Seules les options possédant le flag _themable_ seront modifiées par
|
||||
`/theme apply`. Toutes les options `*.color.*` sont modifiables par
|
||||
défaut ; les options de type chaîne contenant des références
|
||||
`+${color:...}+` sont explicitement déclarées comme modifiables. Les
|
||||
entrées ciblant des options non modifiables sont silencieusement
|
||||
ignorées au moment de l'application avec un avertissement écrit sur
|
||||
le tampon _core_.
|
||||
|
||||
[NOTE]
|
||||
Lorsqu'elle est appelée depuis un script, la contribution est
|
||||
automatiquement retirée lorsque le script est déchargé (aucun nettoyage
|
||||
manuel n'est nécessaire).
|
||||
|
||||
[[key_bindings]]
|
||||
=== Associations de touches
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -551,7 +551,8 @@ HTTP/1.1 200 OK
|
||||
"plugin": "core",
|
||||
"name": "weechat"
|
||||
},
|
||||
"keys": []
|
||||
"keys": [],
|
||||
"last_read_line_id": -1
|
||||
},
|
||||
{
|
||||
"id": 1709932823423765,
|
||||
@@ -580,7 +581,8 @@ HTTP/1.1 200 OK
|
||||
"tls_version": "TLS1.3",
|
||||
"host": "~alice@example.com"
|
||||
},
|
||||
"keys": []
|
||||
"keys": [],
|
||||
"last_read_line_id": -1
|
||||
},
|
||||
{
|
||||
"id": 1709932823649069,
|
||||
@@ -607,7 +609,8 @@ HTTP/1.1 200 OK
|
||||
"nick": "alice",
|
||||
"host": "~alice@example.com"
|
||||
},
|
||||
"keys": []
|
||||
"keys": [],
|
||||
"last_read_line_id": -1
|
||||
}
|
||||
]
|
||||
----
|
||||
@@ -663,7 +666,8 @@ HTTP/1.1 200 OK
|
||||
"message": "Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, javascript, logger, lua, perl, php, python, relay, ruby, script, spell, tcl, trigger, typing, xfer",
|
||||
"tags": []
|
||||
}
|
||||
]
|
||||
],
|
||||
"last_read_line_id": -1
|
||||
}
|
||||
----
|
||||
|
||||
@@ -709,6 +713,7 @@ HTTP/1.1 200 OK
|
||||
"host": "~alice@example.com"
|
||||
},
|
||||
"keys": [],
|
||||
"last_read_line_id": -1,
|
||||
"nicklist_root": {
|
||||
"id": 0,
|
||||
"parent_group_id": -1,
|
||||
@@ -906,7 +911,8 @@ HTTP/1.1 200 OK
|
||||
"key": "up",
|
||||
"command": "/fset -up"
|
||||
}
|
||||
]
|
||||
],
|
||||
"last_read_line_id": -1
|
||||
}
|
||||
----
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
+170
-10
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -208,7 +208,7 @@ Le tableau suivant liste les paquets optionnels pour compiler WeeChat :
|
||||
| asciidoctor | ≥ 1.5.4
|
||||
| Construction de la page man et de la documentation.
|
||||
|
||||
| ruby-pygments.rb |
|
||||
| python3-pygments, ruby-pygments.rb |
|
||||
| Construction de la documentation.
|
||||
|
||||
| libcpputest-dev | ≥ 3.4
|
||||
@@ -2227,6 +2227,166 @@ Exemple de gras avec la couleur de texte du terminal :
|
||||
/set weechat.color.status_time *99999
|
||||
----
|
||||
|
||||
[[themes]]
|
||||
=== Thèmes
|
||||
|
||||
Un thème est un ensemble nommé de surcharges d'options qui peut être
|
||||
appliqué par la commande <<command_weechat_theme,/theme>>. WeeChat est
|
||||
livré avec un thème intégré `"light"` adapté aux terminaux à fond clair
|
||||
et permet de charger temporairement des thèmes utilisateur depuis des
|
||||
fichiers.
|
||||
|
||||
[[themes_themable_options]]
|
||||
==== Options modifiables par un thème
|
||||
|
||||
Les thèmes ne peuvent modifier que les options marquées comme
|
||||
_themable_ (modifiables par un thème). Toutes les options `*.color.*`
|
||||
le sont par défaut ; certaines options de type chaîne contenant des
|
||||
références `+${color:...}+` (par exemple
|
||||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` ou les
|
||||
formats `+buflist.format.*+`) sont explicitement déclarées comme
|
||||
modifiables.
|
||||
|
||||
La liste complète des options modifiables peut être affichée depuis le
|
||||
tampon <<command_fset_fset,/fset>> avec le filtre `+t:themable+`.
|
||||
|
||||
[[themes_apply]]
|
||||
==== Appliquer un thème
|
||||
|
||||
Pour basculer vers le thème intégré pour fond clair :
|
||||
|
||||
----
|
||||
/theme apply light
|
||||
----
|
||||
|
||||
L'état actuel de toutes les options modifiables est sauvegardé au
|
||||
préalable dans un fichier de sauvegarde nommé
|
||||
`+backup-AAAAMMJJ-HHMMSS-uuuuuu+` dans le répertoire `+themes+` du
|
||||
répertoire de configuration de WeeChat. L'apparence précédente peut
|
||||
ainsi être restaurée à tout moment avec :
|
||||
|
||||
----
|
||||
/theme apply backup-AAAAMMJJ-HHMMSS-uuuuuu
|
||||
----
|
||||
|
||||
La création de la sauvegarde peut être désactivée (déconseillé) :
|
||||
|
||||
----
|
||||
/set weechat.look.theme_backup off
|
||||
----
|
||||
|
||||
Si la sauvegarde est activée et que le fichier ne peut pas être écrit,
|
||||
l'application est annulée avant qu'aucune option ne soit modifiée.
|
||||
|
||||
Le nom du dernier thème appliqué est conservé dans
|
||||
`+weechat.look.theme+` (à titre informatif uniquement ; il n'est pas
|
||||
ré-appliqué au démarrage).
|
||||
|
||||
[[themes_reset]]
|
||||
==== Réinitialiser aux valeurs par défaut
|
||||
|
||||
Pour rétablir l'apparence d'origine livrée avec WeeChat, réinitialiser
|
||||
toutes les options modifiables à leur valeur par défaut :
|
||||
|
||||
----
|
||||
/theme reset
|
||||
----
|
||||
|
||||
Une sauvegarde est écrite au préalable (même garde-fou que
|
||||
`+/theme apply+`) ; si la sauvegarde échoue, la réinitialisation est
|
||||
annulée avant qu'aucune option ne soit modifiée. L'option
|
||||
`+weechat.look.theme+` est également remise à vide.
|
||||
|
||||
[[themes_save_delete]]
|
||||
==== Sauvegarder et supprimer des thèmes utilisateur
|
||||
|
||||
Sauvegarder l'état actuel des options modifiables en tant que nouveau
|
||||
thème utilisateur :
|
||||
|
||||
----
|
||||
/theme save monTheme
|
||||
----
|
||||
|
||||
Toutes les options modifiables sont écrites, donc le fichier est
|
||||
autonome et applique exactement le même aspect sur n'importe quel
|
||||
WeeChat, quelle que soit sa configuration actuelle.
|
||||
|
||||
Les noms réservés (noms de thèmes intégrés comme `+light+` et tout nom
|
||||
commençant par `+backup-+`) sont refusés. Les fichiers sont placés
|
||||
dans `+${weechat_config_dir}/themes/<nom>.theme+`.
|
||||
|
||||
Renommer un thème utilisateur (usage typique : conserver une
|
||||
sauvegarde automatique utile sous un nom plus parlant) :
|
||||
|
||||
----
|
||||
/theme rename backup-20260525-094210-123456 maSauvegarde
|
||||
----
|
||||
|
||||
Les thèmes intégrés n'ont pas de fichier et ne peuvent pas être
|
||||
renommés ; le nom cible ne peut pas correspondre à un nom intégré ni
|
||||
commencer par `+backup-+`, et le fichier cible ne doit pas déjà
|
||||
exister. Le champ `+name+` de la section `+[info]+` à l'intérieur du
|
||||
fichier est réécrit afin que `/theme info` affiche le nouveau nom de
|
||||
manière cohérente.
|
||||
|
||||
Supprimer un thème utilisateur :
|
||||
|
||||
----
|
||||
/theme delete monTheme
|
||||
----
|
||||
|
||||
Cela supprime le fichier sur le disque ; les thèmes intégrés ne
|
||||
peuvent pas être supprimés.
|
||||
|
||||
[[themes_file_format]]
|
||||
==== Format du fichier de thème
|
||||
|
||||
Un fichier de thème est de type INI avec deux sections :
|
||||
|
||||
----
|
||||
[info]
|
||||
name = "solarized_light"
|
||||
description = "Thème fond clair inspiré de Solarized"
|
||||
date = "2026-05-25 09:42:10"
|
||||
weechat = "4.10.0-dev"
|
||||
|
||||
[options]
|
||||
weechat.color.chat = "darkgray"
|
||||
weechat.color.separator = "blue"
|
||||
irc.color.input_nick = "magenta"
|
||||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
||||
----
|
||||
|
||||
`+[info]+` est une section de métadonnées informatives affichées par
|
||||
`/theme info`. `+[options]+` contient les surcharges réelles ; les clés
|
||||
sont les noms complets d'options tels qu'affichés par `/set`. Les
|
||||
valeurs de type chaîne peuvent être encadrées par des guillemets
|
||||
simples ou doubles ; les guillemets sont retirés à l'analyse. Les
|
||||
options non modifiables par un thème listées dans un fichier sont
|
||||
refusées au moment de l'application et signalées sur le tampon _core_
|
||||
(ainsi, un fichier `.theme` importé depuis une source non fiable ne
|
||||
peut pas écraser des mots de passe, des listes d'auto-chargement ou
|
||||
des commandes de démarrage).
|
||||
|
||||
Les fichiers de thème utilisateur ne sont jamais mis en cache : à
|
||||
chaque `/theme apply <nom>`, le fichier est analysé, appliqué, puis
|
||||
libéré.
|
||||
|
||||
[[themes_resolution]]
|
||||
==== Ordre de résolution
|
||||
|
||||
Lors de l'exécution de `+/theme apply <nom>+` :
|
||||
|
||||
* Si `+${weechat_config_dir}/themes/<nom>.theme+` existe, le fichier
|
||||
est analysé et utilisé (il masque tout thème intégré du même nom).
|
||||
* Sinon, le registre des thèmes intégrés est consulté ; les thèmes
|
||||
intégrés sont enregistrés par programmation par le cœur, les
|
||||
extensions et les scripts (voir la documentation des extensions et
|
||||
des scripts pour `+weechat_theme_register+`).
|
||||
|
||||
Si aucune des deux sources ne fournit le nom, l'application est
|
||||
refusée.
|
||||
|
||||
[[charset]]
|
||||
=== Charset
|
||||
|
||||
@@ -3351,7 +3511,7 @@ Pour ajouter une donnée sécurisée, utilisez la commande `/secure set`, par
|
||||
exemple un mot de passe pour le serveur IRC _libera_ :
|
||||
|
||||
----
|
||||
/secure set libera motdepasse
|
||||
/secure set libera mot_de_passe
|
||||
----
|
||||
|
||||
Pour plus de confort, les données sécurisées peuvent être affichées dans un
|
||||
@@ -4712,7 +4872,7 @@ Il est fortement recommandé de définir un mot de passe pour le relai, avec ces
|
||||
commandes :
|
||||
|
||||
----
|
||||
/secure set relay motdepasse
|
||||
/secure set relay mot_de_passe
|
||||
/set relay.network.password "${sec.data.relay}"
|
||||
----
|
||||
|
||||
@@ -4793,7 +4953,7 @@ le nom interne du serveur dans la commande IRC "PASS", avec le format
|
||||
(voir l'exemple ci-dessous) :
|
||||
|
||||
----
|
||||
PASS serveur:motdepasse
|
||||
PASS serveur:mot_de_passe
|
||||
----
|
||||
|
||||
Exemple : proxy IRC avec TLS pour tout serveur (le client choisira) :
|
||||
@@ -4809,7 +4969,7 @@ Exemple : proxy IRC sans TLS seulement pour le serveur "libera" :
|
||||
----
|
||||
|
||||
Maintenant vous pouvez vous connecter sur le port 8000 avec n'importe quel
|
||||
client IRC en utilisant le mot de passe "motdepasse" (ou "libera:motdepasse"
|
||||
client IRC en utilisant le mot de passe "mot_de_passe" (ou "libera:mot_de_passe"
|
||||
si aucun serveur n'a été spécifié dans le relai).
|
||||
|
||||
Par exemple si vous utilisez WeeChat comme client IRC du relai, avec un serveur
|
||||
@@ -4822,7 +4982,7 @@ avec ces commandes :
|
||||
----
|
||||
|
||||
[[relay_api_protocol]]
|
||||
=== API protocol
|
||||
=== Protocole API
|
||||
|
||||
L'extension Relay peut envoyer les données à un autre WeeChat ou une interface
|
||||
distante avec un protocol HTTP de type API REST.
|
||||
@@ -4840,12 +5000,12 @@ Par exemple :
|
||||
----
|
||||
|
||||
Maintenant vous pouvez vous connecter sur le port 9000 avec une interface
|
||||
distante en utilisant le mot de passe "motdepasse".
|
||||
distante en utilisant le mot de passe "mot_de_passe".
|
||||
|
||||
Pour vous connecter à un relai _api_ avec WeeChat :
|
||||
|
||||
----
|
||||
/remote add weechat http://localhost:9000 -password=motdepasse
|
||||
/remote add weechat http://localhost:9000 -password=mot_de_passe
|
||||
/remote connect weechat
|
||||
----
|
||||
|
||||
@@ -4882,7 +5042,7 @@ Par exemple :
|
||||
----
|
||||
|
||||
Maintenant vous pouvez vous connecter sur le port 9500 avec une interface
|
||||
distante en utilisant le mot de passe "motdepasse".
|
||||
distante en utilisant le mot de passe "mot_de_passe".
|
||||
|
||||
[[relay_websocket]]
|
||||
=== WebSocket
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -108,7 +108,7 @@ WeeChat is written by Sébastien Helleu and contributors (complete list is in
|
||||
the AUTHORS.md file).
|
||||
|
||||
// REUSE-IgnoreStart
|
||||
Copyright (C) 2003-2025 {author}
|
||||
Copyright (C) 2003-2026 {author}
|
||||
// REUSE-IgnoreEnd
|
||||
|
||||
WeeChat is free software; you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2009-2013 Marco Paolone <marcopaolone@gmail.com>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -490,7 +490,7 @@ for more information about colors management.
|
||||
[[search_text]]
|
||||
=== Come posso cercare testo nel buffer (come /lastlog con irssi)?
|
||||
|
||||
Il tasto predefinito è kbd:[Ctrl+r] (il comando è: `+/input search_text_here+`).
|
||||
Il tasto predefinito è kbd:[Ctrl+s] (il comando è: `+/input search_text_here+`).
|
||||
E per passare alle notifiche: kbd:[Alt+p] / kbd:[Alt+n].
|
||||
|
||||
// TRANSLATION MISSING
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2010-2012 Marco Paolone <marcopaolone@gmail.com>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -9967,6 +9967,90 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
||||
# ...
|
||||
----
|
||||
|
||||
// TRANSLATION MISSING
|
||||
[[themes]]
|
||||
=== Themes
|
||||
|
||||
Functions to contribute color (and other themable option) overrides to
|
||||
built-in themes. See the
|
||||
link:weechat_user.it.html#themes[user's guide / Themes] section for the
|
||||
end-user side and the `+/theme+` command.
|
||||
|
||||
==== theme_register
|
||||
|
||||
_WeeChat ≥ 4.10.0._
|
||||
|
||||
Register a contribution of option overrides under a named theme. The
|
||||
caller's plugin is the owner of the contribution; subsequent calls
|
||||
with the same theme name from the same plugin merge into the existing
|
||||
contribution (later keys win for duplicates).
|
||||
|
||||
When the calling plugin is unloaded, all its contributions are
|
||||
automatically dropped from every theme.
|
||||
|
||||
Prototype:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
struct t_theme *weechat_theme_register (const char *name,
|
||||
struct t_hashtable *overrides);
|
||||
----
|
||||
|
||||
Arguments:
|
||||
|
||||
* _name_: theme name (for example `+light+` or a custom name)
|
||||
* _overrides_: hashtable mapping full option names
|
||||
(e.g. `+irc.color.input_nick+`) to their string values; the caller
|
||||
retains ownership and may free the hashtable right after the call
|
||||
|
||||
Return value:
|
||||
|
||||
* pointer to the registered theme (existing or newly created), NULL on
|
||||
error
|
||||
|
||||
C example:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
struct t_hashtable *overrides = weechat_hashtable_new (
|
||||
8,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
NULL, NULL);
|
||||
if (overrides)
|
||||
{
|
||||
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
||||
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
||||
weechat_theme_register ("light", overrides);
|
||||
weechat_hashtable_free (overrides);
|
||||
}
|
||||
----
|
||||
|
||||
Script (Python):
|
||||
|
||||
[source,python]
|
||||
----
|
||||
# prototype
|
||||
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
||||
|
||||
# example
|
||||
weechat.theme_register("light", {
|
||||
"irc.color.input_nick": "cyan",
|
||||
"irc.color.topic_old": "darkgray",
|
||||
})
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
Only options that have the _themable_ flag will be set by `/theme apply`.
|
||||
All `*.color.*` options are themable by default; string options that
|
||||
hold `+${color:...}+` references are explicitly opted in. Entries
|
||||
targeting non-themable options are silently skipped at apply-time with
|
||||
a warning logged to the _core_ buffer.
|
||||
|
||||
[NOTE]
|
||||
When called from a script, the contribution is automatically dropped
|
||||
when the script unloads (no manual cleanup is needed).
|
||||
|
||||
[[key_bindings]]
|
||||
=== Combinazione tasti
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2009-2013 Marco Paolone <marcopaolone@gmail.com>
|
||||
// SPDX-FileCopyrightText: 2023 Mattia Ronchi <ronchimattia03@gmail.com>
|
||||
//
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2010-2013 Marco Paolone <marcopaolone@gmail.com>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
+148
-2
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -245,7 +245,7 @@ WeeChat:
|
||||
| Build man page and documentation.
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| ruby-pygments.rb |
|
||||
| python3-pygments, ruby-pygments.rb |
|
||||
| Build documentation.
|
||||
|
||||
// TRANSLATION MISSING
|
||||
@@ -2439,6 +2439,152 @@ Esempio di grassetto con il colore di primo piano del terminale:
|
||||
/set weechat.color.status_time *99999
|
||||
----
|
||||
|
||||
// TRANSLATION MISSING
|
||||
[[themes]]
|
||||
=== Themes
|
||||
|
||||
A theme is a named bundle of option overrides that can be applied with
|
||||
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
||||
`"light"` theme tuned for light-background terminals and supports
|
||||
user-defined themes loaded transiently from files.
|
||||
|
||||
[[themes_themable_options]]
|
||||
==== Themable options
|
||||
|
||||
Themes can only set options marked as _themable_. All `*.color.*`
|
||||
options are themable by default; a few string options that hold format
|
||||
expressions with `+${color:...}+` references (such as
|
||||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
||||
`+buflist.format.*+` formats) are explicitly opted in.
|
||||
|
||||
You can list the full themable surface area from the
|
||||
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
||||
|
||||
[[themes_apply]]
|
||||
==== Applying a theme
|
||||
|
||||
To switch to the built-in light-background theme:
|
||||
|
||||
----
|
||||
/theme apply light
|
||||
----
|
||||
|
||||
The current state of every themable option is saved beforehand to a
|
||||
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
||||
directory `+themes+` inside the WeeChat configuration directory, so the
|
||||
previous look can be restored at any time with:
|
||||
|
||||
----
|
||||
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
||||
----
|
||||
|
||||
Backup creation can be disabled (not recommended):
|
||||
|
||||
----
|
||||
/set weechat.look.theme_backup off
|
||||
----
|
||||
|
||||
If backup is enabled and the backup file cannot be written, the apply
|
||||
is aborted before any option is changed.
|
||||
|
||||
The name of the last applied theme is stored in
|
||||
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
||||
|
||||
[[themes_reset]]
|
||||
==== Resetting to defaults
|
||||
|
||||
To restore the look shipped with WeeChat, reset every themable option
|
||||
to its default value:
|
||||
|
||||
----
|
||||
/theme reset
|
||||
----
|
||||
|
||||
A backup is written first (same gate as `+/theme apply+`); on backup
|
||||
failure the reset is aborted before any option is changed.
|
||||
`+weechat.look.theme+` is cleared too.
|
||||
|
||||
[[themes_save_delete]]
|
||||
==== Saving and deleting user themes
|
||||
|
||||
Save the current themable options as a new user theme file:
|
||||
|
||||
----
|
||||
/theme save mytheme
|
||||
----
|
||||
|
||||
Every themable option is written, so the file is self-contained and
|
||||
applies the exact same look on any WeeChat, regardless of its current
|
||||
configuration.
|
||||
|
||||
Reserved names (built-in theme names like `+light+` and any name
|
||||
starting with `+backup-+`) are refused. Files live at
|
||||
`+${weechat_config_dir}/themes/<name>.theme+`.
|
||||
|
||||
Rename a user theme (typical use: keep a useful automatic backup
|
||||
under a meaningful name):
|
||||
|
||||
----
|
||||
/theme rename backup-20260525-094210-123456 mybackup
|
||||
----
|
||||
|
||||
Built-in themes have no file and cannot be renamed; the target name
|
||||
cannot match a built-in name or start with `+backup-+`, and the
|
||||
target file must not already exist. The `+[info]+` `+name+` field
|
||||
inside the file is rewritten so `/theme info` reports the new name
|
||||
consistently.
|
||||
|
||||
Delete a user theme:
|
||||
|
||||
----
|
||||
/theme delete mytheme
|
||||
----
|
||||
|
||||
This removes the file on disk; built-in themes cannot be deleted.
|
||||
|
||||
[[themes_file_format]]
|
||||
==== Theme file format
|
||||
|
||||
A theme file is INI-like with two sections:
|
||||
|
||||
----
|
||||
[info]
|
||||
name = "solarized_light"
|
||||
description = "Light-background theme inspired by Solarized"
|
||||
date = "2026-05-25 09:42:10"
|
||||
weechat = "4.10.0-dev"
|
||||
|
||||
[options]
|
||||
weechat.color.chat = "darkgray"
|
||||
weechat.color.separator = "blue"
|
||||
irc.color.input_nick = "magenta"
|
||||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
||||
----
|
||||
|
||||
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
||||
holds the actual overrides; keys are the full option names that would
|
||||
appear in `/set`. String values can be enclosed in double or single
|
||||
quotes; quotes are stripped at parse time. Non-themable options listed
|
||||
in a theme file are refused at apply time and logged to the core
|
||||
buffer (so a `.theme` file imported from an untrusted source cannot
|
||||
overwrite passwords, autoload lists, or startup commands).
|
||||
|
||||
User theme files are never cached: on every `/theme apply <name>` the
|
||||
file is parsed, applied, and freed.
|
||||
|
||||
[[themes_resolution]]
|
||||
==== Resolution order
|
||||
|
||||
When `+/theme apply <name>+` is run:
|
||||
|
||||
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
||||
is parsed and used (it shadows any built-in with the same name).
|
||||
* Otherwise the built-in theme registry is consulted; built-ins are
|
||||
registered programmatically by core, plugins and scripts (see the
|
||||
plugin and scripting documentation for `+weechat_theme_register+`).
|
||||
|
||||
If neither source provides the name, the apply is refused.
|
||||
|
||||
[[charset]]
|
||||
=== Charset
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -107,7 +107,7 @@ WeeChat は Sébastien Helleu さんと貢献者によって作成されてい
|
||||
(完全なリストは AUTHORS.md ファイルを参照してください)。
|
||||
|
||||
// REUSE-IgnoreStart
|
||||
著作権 (C) 2003-2025 {author}
|
||||
著作権 (C) 2003-2026 {author}
|
||||
// REUSE-IgnoreEnd
|
||||
|
||||
WeeChat はフリーソフトウェアです。あなたはこれを、フリーソフトウェア財団によって発行された
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2014-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -140,6 +140,8 @@ WeeChat "core" は以下のディレクトリに配置されています:
|
||||
|===
|
||||
| パス/ファイル名 | 説明
|
||||
| core/ | コア関数: エントリポイント、内部構造体
|
||||
// TRANSLATION MISSING
|
||||
| core-args.c | Command-line arguments.
|
||||
| core-arraylist.c | 配列リスト
|
||||
| core-backtrace.c | クラッシュした際にバックトレースを表示
|
||||
// TRANSLATION MISSING
|
||||
@@ -766,7 +768,7 @@ Example in C:
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2025 Your Name <your@email.com>
|
||||
* SPDX-FileCopyrightText: 2026 Your Name <your@email.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
@@ -808,9 +810,9 @@ C 言語のコードを書く際には以下の基本的なルールを *必ず*
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Checks if a string with boolean value is valid.
|
||||
* Check if a string with boolean value is valid.
|
||||
*
|
||||
* Returns:
|
||||
* Return:
|
||||
* 1: boolean value is valid
|
||||
* 0: boolean value is NOT valid
|
||||
*/
|
||||
@@ -1083,9 +1085,9 @@ struct t_gui_window *gui_current_window = NULL; /* current window */
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Creates a new window.
|
||||
* Create a new window.
|
||||
*
|
||||
* Returns pointer to new window, NULL if error.
|
||||
* Return pointer to new window, NULL if error.
|
||||
*/
|
||||
|
||||
struct t_gui_window *
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -451,7 +451,7 @@ with command `/color`).
|
||||
[[search_text]]
|
||||
=== どうすればバッファ内の文字列を検索できますか (irssi の /lastlog の様に)。
|
||||
|
||||
デフォルトのキーは kbd:[Ctrl+r] です (コマンドは: `+/input search_text_here+`)。
|
||||
デフォルトのキーは kbd:[Ctrl+s] です (コマンドは: `+/input search_text_here+`)。
|
||||
ハイライト部分へのジャンプは: kbd:[Alt+p] / kbd:[Alt+n]
|
||||
|
||||
この機能に関するより詳しい情報はlink:weechat_user.ja.html#key_bindings[ユーザーズガイド / デフォルトのキー割り当て ^↗^^]を参照してください
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2014-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -9746,6 +9746,90 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
||||
# ...
|
||||
----
|
||||
|
||||
// TRANSLATION MISSING
|
||||
[[themes]]
|
||||
=== Themes
|
||||
|
||||
Functions to contribute color (and other themable option) overrides to
|
||||
built-in themes. See the
|
||||
link:weechat_user.ja.html#themes[user's guide / Themes] section for the
|
||||
end-user side and the `+/theme+` command.
|
||||
|
||||
==== theme_register
|
||||
|
||||
_WeeChat ≥ 4.10.0._
|
||||
|
||||
Register a contribution of option overrides under a named theme. The
|
||||
caller's plugin is the owner of the contribution; subsequent calls
|
||||
with the same theme name from the same plugin merge into the existing
|
||||
contribution (later keys win for duplicates).
|
||||
|
||||
When the calling plugin is unloaded, all its contributions are
|
||||
automatically dropped from every theme.
|
||||
|
||||
Prototype:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
struct t_theme *weechat_theme_register (const char *name,
|
||||
struct t_hashtable *overrides);
|
||||
----
|
||||
|
||||
Arguments:
|
||||
|
||||
* _name_: theme name (for example `+light+` or a custom name)
|
||||
* _overrides_: hashtable mapping full option names
|
||||
(e.g. `+irc.color.input_nick+`) to their string values; the caller
|
||||
retains ownership and may free the hashtable right after the call
|
||||
|
||||
Return value:
|
||||
|
||||
* pointer to the registered theme (existing or newly created), NULL on
|
||||
error
|
||||
|
||||
C example:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
struct t_hashtable *overrides = weechat_hashtable_new (
|
||||
8,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
NULL, NULL);
|
||||
if (overrides)
|
||||
{
|
||||
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
||||
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
||||
weechat_theme_register ("light", overrides);
|
||||
weechat_hashtable_free (overrides);
|
||||
}
|
||||
----
|
||||
|
||||
Script (Python):
|
||||
|
||||
[source,python]
|
||||
----
|
||||
# prototype
|
||||
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
||||
|
||||
# example
|
||||
weechat.theme_register("light", {
|
||||
"irc.color.input_nick": "cyan",
|
||||
"irc.color.topic_old": "darkgray",
|
||||
})
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
Only options that have the _themable_ flag will be set by `/theme apply`.
|
||||
All `*.color.*` options are themable by default; string options that
|
||||
hold `+${color:...}+` references are explicitly opted in. Entries
|
||||
targeting non-themable options are silently skipped at apply-time with
|
||||
a warning logged to the _core_ buffer.
|
||||
|
||||
[NOTE]
|
||||
When called from a script, the contribution is automatically dropped
|
||||
when the script unloads (no manual cleanup is needed).
|
||||
|
||||
[[key_bindings]]
|
||||
=== キー割り当て
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||
// SPDX-FileCopyrightText: 2009-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user